Victor's Liste hilfreicher Linux Befehle
Allgemein
Laufende Prozesse auflisten
ps -au
... und auch die auflisten, die von Daemons stammen ...
ps -aux
Prozess(e) killen
Nach PID...
kill <PID>
... nach Name (alle die matchen) ...
killall <Name>
... oder mit SIGKILL, wenn nix mehr geht ...
kill -9 <PID>
killall -9 <Name>
Show live TCP network traffic for specific port
Any network interface
tcpdump -ni any port 443
Specific network interface
tcpdump -ni enp1s0 port 443
Datenträger sicher entfernen
sudo umount /dev/sdX sudo udisksctl power-off -b /dev/sdX
USB Device Tree
lsusb -t
List block devices (HDDs, SSDs, USB-Stick, etc.)
lsblk
Mit Dateisystem Infos
lsblk -f
List disk vendor and serial number
lsblk -o name,vendor,serial,rev,type
Restliche Akkukapazität abfragen
cat /sys/class/power_supply/BAT1/capacity
Add execute permissions
chmod +x <filepath>
Advanced: Only for User and Group
chmod -R u=rwx,g=rx,o=- file.txt
List directory sizes
du -sh /*
Check listening ports (TCP, UDP and it's PID)
sudo netstat -tunlp
Check for bad blocks
Read-Only mode
sudo badblocks -sv /dev/sdX
Read-Write mode (DESTRUCTIVE! Wipes your data!)
sudo badblocks -wsv /dev/sdX
Specify block size 4096 (for most HDDs)
sudo badblocks -wsv -b 4096 /dev/sdX
Find file by filename
find /home/username/ -name "*.err"
Find string in files
grep -iRl "string" /home/user
Split File based on String
csplit -z file.txt /YOUR_STRING_HERE/ '{*}'
Log-Datei öffnen und verfolgen
tail -f /mnt/data/linuxgsm/sfserver/log/console/sfserver-console.log
Log-Dateien älter als 30 Tage löschen
find /var/log -name "*.log" -type f -mtime +30 -delete
Die 20 größten Dateien anzeigen
sudo du -a /dir/ | sort -n -r | head -n 20
Create new system account/user
sudo useradd -r -U -d /mnt/data/linuxgsm/gmodserver gmodserver
Linux Swap-Schwelle/Empfindlichkeit einstellen (swappiness)
Aktueller Wert abrufen
sysctl vm.swappiness
Sofort ändern
sudo sysctl vm.swappiness=[neuer Wert]
Dauerhafte Änderung (bleibt nach Neustart)
sudo vim /etc/sysctl.conf Neue Zeile: vm.swappiness=[neuer Wert]
Dateisysteme beim nächsten Bootvorgang prüfen
sudo touch /forcefsck
Alle nicht benötigten Softwarepakete löschen (Debian)
sudo apt-get autoremove
Increase / decrease audio volume
Set volume to 10%
pactl set-sink-volume @DEFAULT_SINK@ 10%
Increase volume by 10%
pactl set-sink-volume @DEFAULT_SINK@ +10%
Create ramdisk (only uses memory if needed)
sudo mount -t ramfs ramfs /mnt/ramdisk
RAM Infos ausgeben (z.B. Geschwindigkeit)
sudo dmidecode --type 17
Temperaturen auslesen (lm-sensors)
sensors
Für ständige Aktualisierung
watch --interval 2 sensors
CPU Taktfrequenz anzeigen
watch --interval 2 'cat /proc/cpuinfo | grep MHz'
Rsync
Verzeichnisse synchronisieren
Zeitstempel und Größe vergleichen...
rsync -rtvu --delete-during source_folder/ destination_folder/
oder Vergleich mit Checksumme
rsync -rtvuc --delete-during source_folder/ destination_folder/
Full (System) Backup (alle Datei-Metadaten beibehalten)
Kopiert Inhalt von "source_folder" in "destination_folder" (endet mit "/").
rsync -aAXHSv --one-file-system source_folder/ destination_folder
Erstellt "source_folder" in "destination_folder" (endet nicht mit "/").
rsync -aAXHSv --one-file-system source_folder destination_folder
Während System läuft (kopiert Inhalt von "source_folder" in "destination_folder")
rsync -aAXHSv --one-file-system --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/swapfile"} source_folder/ destination_folder
ETA anzeigen lassen
rsync -rtvuc --delete-during --info=progress2 source_folder/ destination_folder/
Archives (zip, tar.gz, etc...)
Tar.gz directory
tar -vczf /mnt/backup/minecraft/server/Cycasc_S3/server-$(date +%F-%H-%M).tar.gz /mnt/data/minecraft/server/Cycasc_S3
Untar.gz archive (does not create target dir)
tar -vxzf /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.tar.gz
List tar.gz contents
tar -tvzf /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.tar.gz
Extract only one file from tar.gz
tar -vxzf /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.tar.gz in/archive/file.txt
Zip directory
zip -r /mnt/backup/minecraft/server/Cycasc_S3/server-$(date +%F-%H-%M).zip /mnt/data/minecraft/server/Cycasc_S3
Unzip archive (does not create target dir)
unzip /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.zip
List zip Content
unzip -l /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.zip
Extract only one file from zip
unzip /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.zip in/archive/file.txt
Dateisysteme
Force filesystem check
sudo umount /dev/sde1 sudo e2fsck -fv /dev/sde1
Image von EXT4 erstellen
Sparsefile: Datei wird so groß wie Dateisystem selbst - benötigt jedoch nicht den angegebenen Speicherplatz
sudo e2image -arp /dev/disk/by-label/data data.img
Set XFS Label
sudo xfs_admin -L "backup" /dev/sdXN
Grow Filesystem to maximum
sudo xfs_growfs /dev/sdXN
XFS Dump
Create full backup (level 0)
sudo xfsdump -l 0 -f /mnt/backup/data.xfsdump /mnt/data
create consequent incremental backup (level 1 - 9)
sudo xfsdump -l 1 -f /mnt/backup/data.xfsdump /mnt/data sudo xfsdump -l 2 -f /mnt/backup/data.xfsdump /mnt/data sudo xfsdump -l 3 -f /mnt/backup/data.xfsdump /mnt/data etc...
XFS Restore
From full backup
sudo xfsrestore -f /mnt/backup/data.xfsdump /mnt/data/
from incremental backup
sudo xfsrestore -r -f /mnt/backup/data.xfsdump /mnt/data/
Images
Image file mounten
sudo mount -o loop path-to-image.img /mnt/image
Image mit mehreren Partitionen mounten
sudo kpartx -v -a path-to-image.img sudo mount /dev/mapper/loopXpY /mnt/image
Partclone
XFS Dateisystem ohne Komprimierung als Image klonen
sudo partclone.xfs -c -s /dev/sdXY -o /mnt/data/image.img
Als RAW-Image (kann möglicherweise als loop device gemountet werden)
sudo partclone.xfs -c -s /dev/sdXY --restore_raw_file -o /mnt/data/image.img
ClamAV
Multi Threaded Scan mit Daemon
clamdscan --multiscan --fdpass --infected /directory/to/scan
Standalone scan (braucht kein Daemon, aber Singe Threaded)
clamscan --recursive --infected /directory/to/scan
Viren-Datenbank updaten
freshclam
Systemd
Service units auflisten
sudo systemctl list-units --type=service
Reboot in UEFI Setup
sudo systemctl reboot --firmware-setup
Systemd Log in Echtzeit ausgeben
sudo journalctl -u minecraft-server.service -f
KVM
List OS Variants (benötigt libosinfo)
osinfo-query os
List all VMs
sudo virsh list --all
Get VM Info
sudo virsh dominfo <name>
Shutdown VM
sudo virsh shutdown <name>
Start VM
sudo virsh start <name>
Rebooting VM
sudo virsh reboot <name>
Destroy VM
sudo virsh destroy <name>
Suspend VM
sudo virsh suspend <name>
Resume VM
sudo virsh resume <name>
mdadm
MDs auflisten
cat /proc/mdstat
RAID Status prüfen
sudo mdadm -D /dev/md/mdX
RAID 1 erstellen
mdadm --create /dev/md/md_raid1_backup1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
RAID Check / Repair
Check
sudo bash -c 'echo check > /sys/block/mdX/md/sync_action'
Repair (danach Check ausführen, um festzustellen, ob weiterhin Mismatches vorhanden sind)
sudo bash -c 'echo repair > /sys/block/mdX/md/sync_action'
Vorgang prüfen mit
cat /proc/mdstat
Vorgang abbrechen
sudo bash -c 'echo idle > /sys/block/mdX/md/sync_action'
S.M.A.R.T. (smartmontools)
Prüfen, ob Gerät S.M.A.R.T. unterstützt und aktiv ist
sudo smartctl -i /dev/sdX
SMART Werte ausgeben
Alle
sudo smartctl --all /dev/sda
Nur Errors
sudo smartctl --quietmode=errorsonly --all /dev/sda
NVMe SSDs ohne namespace angeben!
sudo smartctl --all /dev/nvme0
Test starten
Background mode (keine Unterbrechung während des Betriebs)
short = normalerweise 2 min.
long = ~200 bis 900 min. (herstellerabhängig)
sudo smartctl -t <short|long> /dev/sdX
Foreground mode (nur zu empfehlen, wenn nicht darauf zugegriffen wird)
sudo smartctl -t <short|long> -C /dev/sdX
Testergebnisse anzeigen
sudo smartctl -l selftest /dev/sdX
Parted
Parted mit einer bestimmten Disk starten
parted /dev/sde
Infos der Disk ausgeben
Neue GPT Partitionierungstabelle erstellen (löscht alle Daten auf der ausgewählten Disk!)
mklabel gpt
Partition über den gesamten Speicherplatz der Disk erstellen
mkpart primary 0% 100%
Partition bis zum maximal verfügbaren Speicherplatz vergrößern
resizepart 1 100%
LVM
Volume Groups anzeigen
sudo vgdisplay
Logical Volumes anzeigen
sudo lvdisplay
Neue VG anlegen
sudo vgcreate vg_data1 /dev/sdb1 /dev/sdc1
Neues LV erstellen
Angabe in Prozent des freien Speichers
sudo lvcreate -n lv_data1 -l100%FREE vg_data1
Angabe in Prozent des verfügbaren Speichers
sudo lvcreate -n lv_data1 -l100%VG vg_data1
Absolute Größenangabe
sudo lvcreate -n lv_data1 -l10G vg_data1
LV bis auf Maximum vergrößern
"-r" vergrößert das Filesystem gleich mit
sudo lvextend -r -l +100%FREE /dev/mapper/vg_data1-lv_data1
Check LVM Raid Status
sudo lvs -a -o name,copy_percent,health_status,devices vgroup
Check (scrub) LVM RAID
Check
sudo lvchange --syncaction check vg/raid_lv
Repair
sudo lvchange --syncaction repair vg/raid_lv
Status
sudo lvs -o +raid_sync_action,raid_mismatch_count vg/raid_lv
DD
Abbild einers kompletten Datenträgers erstellen und mittels GZip komprimieren
sudo dd bs=4M if=/dev/sda | gzip > /home/victor/nsu-monitoring1_2021-08-19.img.gz
GZip komprimiertes Abbild auf Datenträger schreiben
sudo gzip -dc /home/victor/nsu-monitoring1_2021-08-19.img.gz | dd bs=4M of=/dev/sda
Unkomprimiertes Abbild erstellen
sudo dd if=/dev/sda of=image.img bs=4M status=progress
Cdparanoia
Rip all tracks of Audio CD to individual files
cdparanoia -B
Eine E-Mail versenden
echo "THIS IS A TEST EMAIL" | mail -s "Enter the subject" user1@domain.com,user2@domain.com
Zeiteinstellungen
Zeiteinstellungen abfragen
timedatectl
Verfügbare Zeitzonen abfragen
timedatectl list-timezones
Zeitzone festlegen
sudo timedatectl set-timezone Europe/Berlin
Nmap
Scanne 1000 wichtigsten Ports eines Hosts
sudo nmap <host>
Scanne TCP 25565
sudo nmap -p T:25565 <host>
Scanne mit Service- und Versionserkennung
sudo nmap -sV <host>
Scanne nach bekannten Sicherheitslücken
sudo nmap -sV --script vulners <host>
Oder nur Sicherheitslücken höherstufig CVSS 5.0
sudo nmap -sV --script vulners --script-args mincvss=5.0 <host>
Ciphers eines Services auflisten
nmap -sV --script ssl-enum-ciphers -p 443 www.cycasc.net
GPG
Neues Schlüsselpaar generieren
gpg --full-generate-key
Öffentlicher Schlüssel extrahieren
gpg --output /mnt/temp/public.pgp --armor --export webmaster@cycasc.net
Privater Schlüssel extrahieren
gpg --output /mnt/temp/public.pgp --armor --export-secret-key webmaster@cycasc.net
Certbot
Certifikate für Apache Webserver von Let's Encrypt anfordern
sudo certbot --apache
Ohne die Apache Config zu verändern (evtl. muss der Cert-Pfad in der Config händisch angepasst werden)
sudo certbot --apache certonly
Certs von Certbot auflisten
sudo certbot certificates
Nvidia
Primäre GPU wechseln (PRIME)
sudo prime-select <nvidia|intel> sudo reboot
No Comments