Kategori bash
Mittwoch, Februar 1st, 2012
Heute musste ich den ganzen Tag ein Logfile überwachen. Damit das nicht zu anstrengend wird und man Fehler nicht übersieht, habe ich das Logfile einfach eingefärbt.
tail -F file.log | awk '
/FATAL/ {print "\033[31m" $0 "\033[39m"}
/WARN/ {print "\033[33m" $0 "\033[39m"}
/INFO/ {print "\033[32m" $0 "\033[39m"}
'
Veröffentlicht am: 01.02.2012 | publiziert in: bash
Mittwoch, Juli 20th, 2011
Wenn man Dateien mit Leerzeichen in eine Variabel einlesen möchte braucht man ls -b und read -r
ls -b > .tmp
while read -r datei; do
echo $datei
done < .tmp
Veröffentlicht am: 20.07.2011 | publiziert in: bash
Mittwoch, Juni 15th, 2011
Um rekursiv ionice zu vererben haben wir mal eben ein rionice geschrieben.
#!/bin/bash
ionice -c 3 -p $(pstree -p $1 | tr "(" "\n" | cut -d ")" -f 1 | egrep "^[0-9]+\$")
exit 0
Um es aufzurufen muss man die PID des Mutterprozesses rionice übergeben. Dies macht man am besten mit ps -xf. Dann übergibt man rionice 1234.
Veröffentlicht am: 15.06.2011 | publiziert in: bash, Linux
Montag, Mai 16th, 2011
Was mich an meisten an upsatart, abgesehen davon das es schlecht zu Debuggen ist, gestört hat ist die fehlende bash tab completion.
Auf launchpad.net habe ich aber den passenden Burgreport gefunden und den dazugehörigen Patch, den man folgendermaßen verwenden kann:
sudo wget -O /etc/bash_completion.d/upstart https://launchpadlibrarian.net/40624366/upstart
(weiterlesen …)
Veröffentlicht am: 16.05.2011 | publiziert in: bash, Ubuntu
Montag, April 11th, 2011
Da ich mit meiner neuen Kamera derzeit viele Fotos mit 18 Mega Pixeln mache, brauchte ich ein Batch Script das viele Bilder gleichzeitig resizen kann. So bin ich auf das Parkte imagemagick gestoßen.
Mein Script erstellt nun einen Ordner namens Web und erstellt in diesem verkleinerte Bilder mit maximal 800px Länge oder Breite.
#!/bin/bash
mkdir web
ls -1 *.JPG *.jpg | while read file;
do {
echo $file
convert $file -resize '800x800>' web/$file
}
done
exit 0
Mehr Infos: wiki.ubuntuusers.de
Veröffentlicht am: 11.04.2011 | publiziert in: bash, Computer
Samstag, April 2nd, 2011
Hier mal was gegen die Langeweile vor der Shell:
while true; do pwgen -ys $COLUMNS $(($RANDOM % 4 + 1)); sleep 0.2;done
Veröffentlicht am: 02.04.2011 | publiziert in: bash, Linux
Sonntag, Januar 23rd, 2011
Da ich auch hier nach jedes mal wieder suche hier für alle:
Diese Zeile löscht alle Dateien die Älter als 3 Tage sind.
find '/home/user/' -type f -mtime +3 -exec rm {} \;
Veröffentlicht am: 23.01.2011 | publiziert in: bash, Linux
Freitag, November 26th, 2010
Damit man die bash Umgebungsvariablen wie z.b.:
0 0 * * * /sbin/shutdown -r +$(($RANDOM \% 60))
in crontab nutzen kann, kann man nicht einfach bach "befelh" davor schreiben. Man muss erst die dash konfigurieren:
sudo dpkg-reconfigure dash

Quelle: Shiva6
Veröffentlicht am: 26.11.2010 | publiziert in: bash, Ubuntu
Mittwoch, Oktober 6th, 2010
Hier habe ich ein Ausschnitt eins Skripts zum setzen eines User Passwortes. Zuerst erzeuge ich ein zufälliges 12 stelliges Passwort mit dem Programm pwgen dann verwende ich mit Hilfe von bash befehlen das Programm passwd um das Passwort zu setzen.
#!/bin/bash
PW=$(pwgen -1 12)
passwd user <<EOF
$PW
$PW
EOF
Veröffentlicht am: 06.10.2010 | publiziert in: bash, Linux
Dienstag, September 7th, 2010
Da es ja ein mount -r gibt habe ich mir mal ein rumount geschrieben.
./rumount pfad
#!/bin/bash
cat /proc/mounts | grep $1 | cut -d " " -f2 | tac | xargs -n1 umount
exit 0
Veröffentlicht am: 07.09.2010 | publiziert in: bash, Linux
Samstag, April 3rd, 2010
Zur Doku poste ich mal mein mklvm.sh Skript. Mit dem man Automacht neue LVs erstellen, formatieren und mounten kann.
Abzulegen ist das Skript in: /usr/local/sbin/mklvm.sh
#!/bin/bash
NAME=$1
VOLUMEN=$2
lvcreate -n $NAME -L $VOLUMEN vg # vg durch den Volumen Groupe Namen ersetzen!!!
mkfs -t ext3 /dev/$NAME
mkdir /mnt/$NAME
mount /dev/$NAME /mnt/$NAME
echo "/dev/$NAME /mnt/$NAME ext3 relatime,errors=remount-ro 0 0" >> /etc/fstab
mount -a
exit 0
Dann kann man mit folgenden Befehl LVs anlegen:
mklvm.sh neue_lv_name 25G
Veröffentlicht am: 03.04.2010 | publiziert in: bash, Linux
Donnerstag, März 26th, 2009
Da man mit sudo gut auf die Nasse fallen kann wie man im folgenden Beispiel sieht...
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied
... gibt tee dabei Abhilfe
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
tee liest dabei von "Standard input" und schreib es nach "Standard output" oder in diesem Fall in eine Datei.
Veröffentlicht am: 26.03.2009 | publiziert in: bash, Linux