Ok, also ich habe mein Skript gemacht, ich habe es abgelegt, /etc/cron.hourly
dann habe ich chmod 777
die Datei, aber es wird nicht (automatisch) ausgeführt. Wenn ich es manuell ausführe, funktioniert es einwandfrei. Muss ich noch etwas tun?
cron-jobs
command-line
crontab
cron
Switchkick
quelle
quelle
Antworten:
Warum nicht crontab (/ etc / crontab) verwenden und im Stundenfeld * / 1 verwenden? Ich habe dies verwendet, um alle 5 Minuten ein Skript auszuführen, und es funktioniert gut:
quelle
cron.daily
und Freunde funktioniert ein bisschen besser, wenn die Maschine nicht die ganze Zeit läuft, weil Anacron versucht, den richtigen Zeitplan zu approximieren, während Cron sie einfach nicht laufen lässt, wenn die Maschine nicht die ganze Nacht läuft. Für Stundenjobs ist dies wahrscheinlich nicht so wichtig./etc/crontab
: zu sehen istcron.daily
,cron.weekly
undcron.monthly
stündlich mit anacron (sofern verfügbar) ausführenrun-parts --report /etc/cron.hourly
.Einträge in
cron.hourly
werden vom Laufteilemechanismus ausgeführt (man run-parts
für weitere Informationen). Undrun-parts
ist wählerisch, welche Dateinamen es für gültig hält.Wenn Sie Ihrem Skript beispielsweise eine Erweiterung zuweisen, wird es ungültig und der Job wird nicht ausgeführt.
[a-zA-Z0-9_-]
sind die gültigen Zeichen, also das '.' macht es ungültig.Testen Sie beim Hinzufügen eines Jobs zu
/etc/cron.hourly
(oder.daily
,.weekly
usw.) immer danach, dass errun-parts
tatsächlich ausgeführt wird, indem Sie den folgenden Befehl eingeben:Wenn durch Ausführen dieses Befehls Ihre Datei angezeigt wird, bedeutet dies, dass sie funktioniert hat. Andernfalls ist Ihr Dateiname ungültig, wenn nichts angezeigt wird.
Wie hieß dein Drehbuch?
quelle
giving your script an extension will make it invalid and result in the job not being run
--report
, um die Skripte tatsächlich auszuführen.Ihr Problem liegt wahrscheinlich an den zu offenen Berechtigungen, mit denen jeder Ihre Datei bearbeiten kann. Versuchen Sie es
755
stattdessen.Ein Blick in die Cron-Einträge in Ihrer Syslog-Ausgabe sollte dies bestätigen.
quelle
DaithiFs Antwort sollte die richtige sein.
Auch mein Skript hatte nicht
#!/bin/bash
in der ersten Zeile. Obwohl das Skript mit der Befehlszeile ausgeführt werden konnte, wurde es mit derrun-parts
Meldung "Exec format error" abgelehnt.Durch Ändern des Dateinamens von
scriptname.sh
inscriptname
und Hinzufügen der#!/bin/bash
ersten Zeile konnte mein Skript stündlich ausgeführt werden.quelle
Wenn du rennst
Ist diese Aufgabe auf der Liste?
Wenn nicht, füge es hinzu
füge diese Zeile hinzu
Wenn es in dieser Liste enthalten ist, versuchen Sie, den Pfad der Programmiersprache oben in Ihrem Skript einzufügen
Beispiel:
Diese 2 Dinge haben meine Probleme immer gelöst :)
quelle