Linux

Logcheck rule additions to Debian Jessie 8.
Logcheck rule additions to Debian Stretch 9.
Logcheck rule additions to Debian Buster 10.
Logcheck rule additions to Debian Bullseye 11.

Handige Linux commando's:

Bash parsing

cat -                   cat standaard input (het gaat hier om het streepje)
''                      alle karakters tussen '' worden letterlijk genomen.
""                      alle karakters tussen "" worden letterlijk genomen, behalve: $`"
!commando               voert laatste  uit.
$?                      geeft exit code van laatste commando.
alias			alias naar een commando configureren, ook bv met een default optie
help 			display information about builtin commands.
CtrL + R		search in bash history (CtrL + Shift + R reverse)

File system

ls -lh                  ls: human readable size
lsof			open files van een proces (-p) of welke PID's hebben een file of dir. geopend.
fuser                   welke gebruiker gebruikt een bepaalde file of dir.
umount -f               force unmount
mkisofs                 is om cd ISO images te maken.
dd if=/dev/hdc of=image.iso     
                        maak van een CD of DVD een ISO image.
mount -o loop image.iso /mnt
                        mount een ISO image.
tar clpf - . | (cd /mnt/floppy; tar xpvf -)
                        kopieert huidige direktorie naar nieuwe direktorie op andere HD.
whereis			locate the binary, source, and manual page files for a command
whatis/apropos		zoek commando's
which			locate a command, vooral handig met scripting
tune2fs -l device	geeft partitie informatie
tune2fs			wijzig filesysteem (bv max mount count en root reserved blocks)
resize2fs
/sbin/blkid		info van alle filesystemen met UUID
ddrescue		disk recovery (zie package: gddrescue), eerst met optie -n voor snelle gemakkelijke data, daarna zonder -n voor de moeilijke rest.
tree			geeft files weer in tree mode
findmnt			geeft duidelijk overzicht mounted file systemen, beter dan mount

Systemd

locate --regex ctl$|grep bin	welke systemd commando's zijn op het systeem aanwezig?
systemctl		main command: systemctl status/start/stop/restart/disable/list-dependencies (--reverse) apache2.service
journalctl		logfiles: journalctl -u ssh.service / journalctl --dmesg (-k) / journalctl --PID=
hostnamectl		host informatie/beheer: hostname, kernel, Linux version, architecture.
localectl		taal configuratie/beheer.
loginctl		ingelogde gebruikers en beheer
networkctl		
apache2ctl
systemd-analyze		systeem boot performance. systemd-analyze blame/crtitical-chain.

Processes

kill -SIGHUP 'proc_id'  herstart proces of reload configuratie files, proc_id blijft hetzelfde.
lsof			open files van een proces (-p) of welke PID's hebben een file of dir. geopend.

Network

iptraf			grafisch netwerk gebruik
ethtool                 netwerk tool, ethtool -i geeft ook driver / firmware info
netstat -tulp           poorten met processen weergave
netstat-nat             op de firewall: alle NAT connecties weergeven.
conntrack		connection tracking lijst beheren
mtr			continue traceroute
ntpq -p localhost	geeft gebruikte NTP servers weer met stats.
netstat -tulp   	poorten met processen weergave
ssh -D8080 hostname	SOCKS5 proxy server via server hostname, zet webbrowser op SOCKS5 http://localhost:8080
curl --head url		HTTP header info van een website
sslscan --no-failed	SSL Scanner, determine the ciphers that are supported

Packages (Debian)

aptitude show package           package info
aptitude search packagename	zoek op packagename
aptitude search ~description	zoek op package description
aptitude why                    waarom is package geinstalleerd (ivm dependencies en automatische installatie)
apt-cache showpkg 'packname'	package info
apt-file search 'filename'	zoek package met een bepaalde file, of 'dpkg -S'
dpkg -l			alle geinstalleerde packages + info (-p 'packagename' meer info en -L voor bestanden) 

Performance

iostat / iotop
htop			interactive process viewer
ionice                  IO scheduler
vmstat -n 5		geeft elke 5 sec virt. mem. statistieken (disk io, swap, mem)
dstat			stats overzicht (CPU / disk / net / paging / system)

Users

id			huidige user informatie: ID's en groepen

Tools

grep -v                 inversie, dus alles wat niet matched.
grep -c                 telt aantal matched regels.
egrep "x|y"             geeft regels weer die zowel x als y bevatten.
head / tail
sed                     handig in scripts om tekst te wijzigen.
xargs                   zorgt voor niet teveel argumenten op commandline,
                        bv verwijderen van 100000 files kan met: 'ls|xargs rm' ipv 'rm *'
wkhtmltopdf url pdf     converteer website via een url naar een pdf file.

Scheduling

at                      eenmalig gescheduleerd commando (sluit met CTRL-d).

System info

uname                   systeem informatie
dmesg                   geeft boot messages
lsb_release -a		geeft informatie over Linux systeem (versie, dist)
/etc/issue		geeft vaak Linux versie
who -r			huidig runlevel
lshw			hardware informatie
lscpu			geeft CPU info

Kopieer OS disk naar een nieuwe disk

  • Voeg nieuwe disk toe
  • Nieuwe partitie indeling + formateren
  • Mount partities op /mnt. Maak ook de subdir's aan en mount deze ook
  • Kopieer data: tar clpf - -X /root/excl / | (cd /mnt/; tar xpvf -)
  • /selinux kan weg, aanmaken op nieuwe disk: /mnt /proc /sys /dev /run
  • mkswap /dev/sdb7
  • Wijzig nieuwe fstab naar nieuwe UUID’s: blkid
  • Boot manager naar nieuwe disk. Voer kopje hieronder uit.
  • Umount alles onder /mnt
  • Shutdown en oude disk verwijderen.

excl file:

/proc
/sys
/dev
/mnt
/run

Nieuwe boot disk

mount /dev/sdb1 /mnt (sdb1 is de nieuwe root disk met de /boot dir.)
grub-install --boot-directory=/mnt/boot /dev/sdb
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /dev /mnt/dev
chroot /mnt update-grub

Standaard diskruimte

Vergroot waar nodig:
#1 prim			1 GB		/
#5 log			6.1 GB		/usr
#6 log			2.9 GB		/var
#7 log			1 GB		swap
#8 log			512 MB		/tmp
#9 log			rest		/home

Video streaming

streamer
ffmpeg

Overig

> /dev/pts/1            output naar ander console
last                    laatst ingelogde gebruikers
sysctl                  kernel parameters lezen/wijzigen (ook sysctl.conf)
linphonec               commandline SIP
regular expression:     ^ (begin regel), $ (eind regel)

DNS

dig @A.ROOT-SERVERS.NET . ns > /etc/bind/db.root                updaten BIND root DNS servers

Postgres

backup database:
pg_dump -f support.db -Fc support

restore database:
pg_restore -d support support.db

MySQL

Create a new database:
mysqladmin -u root -p create databasename

Log in and set the access database rights:
mysql -u root -p

At the MySQL prompt, set the permissions using the following command: 
GRANT ALL ON `user`.* TO 'user'@'localhost' IDENTIFIED BY 'passwd';

Change passwd:
mysqladmin -u user_name -h host_name password "newpwd"

Backup database:
mysqldump -u user -p --databases databasename > sql-script

Restore database:
mysql -u user -p databasename