Hier sammle ich kleine nützliche Einzeiler für die Kommendozeile (= “Command line one-liner”):
((Work in progress…))
Squid Access-Log mit Uhrzeiten versehen:
grep -h 'suchstring' /var/log/squid3/access.log* | \
perl -p -e 's/^([0-9]*)/"[".localtime($1)."]"/e'
Interpretiert die am Anfang jeder Zeile stehenden Ziffern als Unix-Zeitstempel und konvertiert die in ein lesbares Format.
Beim grep das -h
nicht vergessen – das führt dazu, dass der Dateiname nicht mit ausgegeben wird, was das Perl-Skripchen durcheinander bringen würde.
Eigene IP via Kommandozeile herausfinden
dig +short myip.opendns.com @resolver1.opendns.com
ggf. dig
installieren mit apt-get install dnsutils
o.ä.
Oder: (viel kürzer – und leichter zu merken)
curl ifconfig.co
OpenWrt (oder LEDE): Alle Packages upgraden
opkg list-upgradable | awk '{ print $1; }' | xargs opkg upgrade
Neuestes File im Dateibaum finden
find . -type f -printf "%T@ %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1 | xargs -d'\n' ls -la
(s.a. hier).
Docker
s.a. hier
Docker Images und Container aufräumen
docker ps -aqf status=exited | xargs docker rm
docker images -qf dangling=true | xargs docker rmi
Docker-Umgebungsvariable löschen
…damit man nach Verwendung von docker-machine wieder auf den lokalen docker-Dämon zugreift:
eval $(set | grep DOCKER | gawk -F '=' '{ print $1; }' | xargs echo unset)
Speicherbelegung der Docker-Container ausgeben
…sortiert nach Größe:
docker stats --no-stream $(docker ps --format "{{.Names}}") | sed 's/\.[0-9]*\([kGM]i*B \)/\1/' | sort -h -k 4
Geänderte Festplattengröße erkennen
echo 1 > /sys/block/sda/device/rescan
Partition-Table neu einlesen
partprobe /dev/sda
Disk Image vergrößern
Nicht mit dd sondern mit truncate. Geht auch auf remote smb-Laufwerken.
truncate -s 40G /srv/storage/crypted-disk.dd
(Vgl. Kommentar unter Verschlüsselte Partition automatisch mounten.)
JPG Bilder anhand EXIF-Datum umbenennen
exiftool '-filename<DateTimeOriginal' -d %Y-%m-%d_%H-%M-%S%%-c.%%le .
-> Dann heißen sie z.B. “2020-02-01_17-09-58.jpg”.
Anschließend kann man sie z.B. nach Datum durchnummerieren:
exiftool -filename='%03c.jpg' .
-> Dann heißen sie “001.jpg”…
(s.a. hier im nerdblog und hier)
Leerzeichen aus Dateinamen im ganze Verzeichnisbaum entfernen
find . -name '* *' | while read file ; do mv -- "$file" "${file// /_}" ; done
Alle PDFs im Verzeichnisbaum aneinanderhängen (concatenate)
Ggf. vorher die Leerzeichen entfernen (siehe vorheriger Abschnitt).
pdftk $(find . -type f -name '*.pdf' | sort) cat output all.pdf
Mit Ansible sofort ein adhoc Command an alle Hosts schicken
ansible all -m shell -u root -a "who am i"
Statt “who am i” ist natürlich das gewünsche Kommando einzusetzen.
Digital Ocean: Unbenutzte Volumes löschen
doctl compute volume list -o json \
| jq -r '.[] | select(.droplet_ids | length == 0) | select(.name | startswith("pvc-")) | .id' \
| xargs -L 1 --no-run-if-empty doctl compute volume delete --force
SSL/TLS Zertifikat-Gültigkeit einer https-Seite überprüfen
openssl s_client -connect nerdblog.steinkopf.net:443 2>/dev/null | openssl x509 -noout -dates
Mehr dazu hier.