crontab

SQL Query in Crontab

Written by  on April 16, 2017

Soll ein Cronjob eine SQL Query ausführen, läuft man schnell in ein Problem. Das Prozenzeichen % hat eine Sonderbedeutung in der Crontab. Es erzeugt einen Zeilenumbruch. Das folgende Beispiel funktioniert niemals, weil der Suchbegriff falsch interpretiert wird und ausserdem alles nach dem Suchbegriff abgeschnitten wird:
Hier ein Beispiel:

mysql -e "SELECT * FROM users WHERE name LIKE a%;" database

Ich konnte diesen nicht wirklich schönen Workaround dafür finden.

echo "SELECT * FROM users WHERE name LIKE a\%;" | sed -e 's|\\||g' | mysql database

Das Prozenzeichen wird vor Cron geschützt. sed löscht das quote Zeichen wieder, bevor es an die Datenbank weitergeschickt wird.
Für ganz einfache Dinge reicht das. Ich empfehle aber trotzdem gleich ein Script zu erstellen. Dadurch wird dieser komplexe Teil unnötig und insgesamt besser lesbar.

Priorität der Update Prozesse unter SuSE Linux 10.3 herabsetzen

Written by  on Januar 19, 2008

Dies ist eine Art Fortsetzung zum Post "Priorität der Update Prozesse unter SuSE Linux 10.2 herabsetzen".
Da unter openSuSE 10.3 ja mittlerweile der Zypper auch sehr herumzicken kann (z.B. kein normales Surfen mehr möglich, weil genau dieser Prozess austickt) hab ich mir dafür ebenso einen Cronjob geschaffen, der einfach die Priorität dieser Prozesse auf ein Minimum reduziert. Die sollte dem restlichem System nicht weh tun, da hier normalerweise nur die Überprüfung auf Onlineupdates läuft:

/etc/crontab

-* * * * *      root    ps aux | grep [z]ypper | awk '{print $2}' | xargs -i renice 19 {}

Priorität der Update Prozesse unter SuSE Linux 10.2 herabsetzen

Written by  on Juni 7, 2007

Da unter openSuSE der ZMD Update oft jede Menge Resourcen frisst, hab ich mir jetzt einen kleinen, feinen Cronjob gebastelt der die Priorität herabsetzt und somit auch das System unmittelbar nach dem Start schneller benutzbar macht.

Der simple Eintrag in der /etc/crontab lautet:

-* * * * *      root  ps aux | egrep 'update-status|parse-metadata' | grep -v grep | awk '{print $2}' | xargs renice 19

Die Funktion sollte woch für jeden Linux-"Laien" ziemlich ersichtlich sein 😉