Heute schauen wir uns das Crontab-Beispiel an, um alle 5 Minuten ein Skript auszuführen.
Crontab-Beispiel
Kürzlich habe ich den Memcached-Server auf dem CentOS-Betriebssystem installiert, um ihn als Caching-Mechanismus für mein VBulletin-Forum zu verwenden. Um sicherzustellen, dass es immer läuft, habe ich ein Shell-Skript geschrieben, um den Prozessstatus zu überprüfen und neu zu starten, wenn es nicht läuft. Um nun sicherzustellen, dass dieses Skript in einem bestimmten Intervall ausgeführt wird, habe ich crontab
verwendet .
Crontab-Beispiel-Shellskript
Das Shell-Skript ist erweiterbar und Sie können ein ähnliches Skript schreiben, um jeden Dienst oder Prozess in Unix-Systemen neu zu starten.
Hier ist das Shell-Skript zum automatischen Neustart des Dienstes, das ich in meinem crontab-Beispiel verwende.
memcached_restart.sh
#!/bin/bash
ps -eaf | grep 11211 | grep memcached
# if not found - equals to 1, start it
if [ $? -eq 1 ]
then
/usr/local/bin/memcached -d -u nobody -p 11211 -U 11211 -l 127.0.0.1
else
echo "eq 0 - memcached running - do nothing"
fi
Der Hauptbefehl in diesem Skript besteht darin, den Prozess zu überprüfen. Verwenden Sie den Befehl „ps“ mit grep, um sicherzustellen, dass nur der gewünschte Dienst zurückgegeben wird und nichts zurückgegeben wird, wenn der Dienst nicht ausgeführt wird.
Sobald Sie den zu verwendenden Befehl gefunden haben, müssen Sie nur noch einen Startbefehl erteilen, um den Dienst auszuführen.
Testen Sie das Skript, um sicherzustellen, dass es wie erwartet funktioniert, bevor Sie es mit crontab so einstellen, dass es in regelmäßigen Abständen ausgeführt wird.
Crontab alle 5 Minuten Beispiel
Sobald Sie mit dem Skript fertig sind, müssen Sie einen Cron-Job einrichten, um dieses Skript in regelmäßigen Abständen auszuführen.
Ich habe den folgenden Eintrag verwendet, um dieses Skript alle 5 Minuten auszuführen.
*/5 * * * * /Users/pankaj/Downloads/memcached_restart.sh > /Users/pankaj/Downloads/memcache_restart.log 2>&1
Crontab-Fehler – Befehl nicht gefunden
Beachten Sie, dass crontab keine Umgebungsvariablen wie PATH berücksichtigt, sodass Sie immer den absoluten Pfad für jedes Programm oder jeden Verzeichnisort angeben müssen. Wenn Sie beim Ausführen eines Befehls in einem crontab-Shell-Skript den Fehler „Befehl nicht gefunden“ erhalten und dieser problemlos ausgeführt wird, wenn Sie ihn selbst ausführen, dann ist die Verwendung des relativen Pfads das Problem.
Referenz:Wikipedia