Deinem Skript fehlt ein #! Zeile am Anfang, das ist die Magie, die der Kernel interpretiert, um zu sagen, welcher Befehlsinterpreter für das Skript verwendet werden soll.
Lass es so aussehen:
#!/bin/sh notify-send "hi welcome"
und stellen Sie sicher, dass das Skript ausführbar ist:
ls -l home/hacks/notify.sh chmod +x home/hacks/notify.sh ls -l home/hacks/notify.sh
Ist die Zeitzone der Crontab mit Ihrer eigenen Zeitzone identisch, da Sie dies nur einmal am Tag wünschen? Möglicherweise finden Sie dies um 14 Uhr GMT vor.
+1 Diese Antwort ist großartig - vor allem, wenn man bedenkt, dass das Skript ausführbar sein muss! Vielen Dank!
FXQuantTrader vor 9 Jahren
0
Sehr subtile Erklärung. Meine positive Meinung
Fokwa Best vor 8 Jahren
0
18
Aravind
Crontab zum Laufen zu bringen ist nur einfach. Hier werde ich sagen, wie man Crontab-Jobs ausführt. Es ist nützlich für alle, die auf Crontab festsitzen.
*/1 * * * * cd /home/hacks && sh notify.sh
Um das Skript ausführbar zu machen, müssen wir Folgendes tun:
chmod +x home/hacks/notify.sh
Hier führe ich dieses Skript jede Minute aus ... Wenn Sie das folgende Skript ausführen, können Sie es in eine Protokolldatei schreiben, um herauszufinden, ob es funktioniert
Protokoll schreiben
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log
E-Mail senden
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log | mail -s "Hi this is example" user@domain.com
kann "* / 1 * * * * sh /home/hacks/notify.sh" auch funktionieren?
user1179459 vor 9 Jahren
2
5
lorenzog
4 Hypothese:
der Cron-Daemon läuft nicht (mache ps axfww | grep cronund überprüfe)
Der Benachrichtigungssender versucht, die Ausgabe an ein Terminal oder eine X-Sitzung zu senden - er wird jedoch aus der cronUmgebung heraus ausgeführt und weiß nicht, mit wem er sprechen soll.
Ihr Skript ist nicht ausführbar
Der home/Pfad im crontab-Skript ist relativ zum Benutzer, unter dem die Skripts ausgeführt werden. Versuchen Sie es mit dem vollständigen Pfad
1
W_Whalley
Fügen Sie export DISPLAY=:0über der Benachrichtigungssendezeile in Ihrem Skript hinzu. Damit wird der zweite Punkt von Lornezog angesprochen.
0
3498DB
Sie müssen crontab mit dem folgenden Befehl öffnen:
crontab -u username -e (to edit) -l(to list) -r(to remove) 10(minutes) 8-15(hours) *(Day of month) *(month) 1,3,5(days of week) /path/to/script/script_name.sh
Dadurch wird Ihr Skript einmal pro Stunde von 8.00 Uhr bis 03.00 Uhr 10 Minuten nach der vollen Stunde jeden Montag, Mittwoch und Freitag ausgeführt.
0
kunal
Zuallererst müssen wir die crontab mit Command bearbeiten crontab -eund dann Crontabdas Path of Executable-Skript und in Ihrem Fall so hinzufügen * 14 * * * home/hacks/notify.sh >/dev/null 2>&1.