Ein kurzer Überblick: Ich habe ein Skript, das mein Quellcode-Repository täglich von SVN in einem Tarball für diesen Tag sichert. Ich habe das Skript getestet und es funktioniert sehr gut, solange ich es als sudo ausführe, da es das Ausgabeverzeichnis besitzt.
Das Problem ist also, dass ich dies täglich ausführen möchte, also habe ich einen Link dazu in das Verzeichnis /etc/cron.daily eingefügt. Hier ist der Inhalt des Verzeichnisses.
thom@spenser:/etc/cron.daily$ ls -l
total 60
-rwxr-xr-x 1 root root 189 2011-09-14 02:21 apport
-rwxr-xr-x 1 root root 15535 2011-10-06 11:30 apt
-rwxr-xr-x 1 root root 314 2011-08-08 16:57 aptitude
lrwxrwxrwx 1 root root 24 2012-02-28 11:05 backup -> /usr/local/bin/backup.sh
-rwxr-xr-x 1 root root 502 2011-06-08 11:48 bsdmainutils
-rwxr-xr-x 1 root root 256 2011-10-06 04:04 dpkg
-rwxr-xr-x 1 root root 372 2011-10-04 16:50 logrotate
-rwxr-xr-x 1 root root 1353 2011-07-27 07:17 man-db
-rwxr-xr-x 1 root root 606 2011-08-17 09:16 mlocate
-rwxr-xr-x 1 root root 249 2011-06-24 05:36 passwd
-rwxr-xr-x 1 root root 2417 2011-07-01 17:25 popularity-contest
-rwxr-xr-x 1 root root 383 2011-09-30 15:09 samba
-rwxr-xr-x 1 root root 3594 2011-09-19 20:07 standard
thom@spenser:/etc/cron.daily$
Das Problem ist, dass es einfach nie läuft. Hier sind die Berechtigungen für dieses Skript:
thom@spenser:/etc/cron.daily$ ls -l /usr/local/bin/backup.sh
-rwxr-xr-x 1 root root 260 2012-02-28 11:03 /usr/local/bin/backup.sh
Ideen?
Antworten:
Versuchte dies
Es wurde festgestellt, dass meine Datei update.ubuntu nicht angezeigt wurde. Auch bemerkt, dass meine Datei eine Erweiterung hatte (hat Punkt darin).
Schritte, um dies zu beheben.
run-parts --test /etc/cron.daily
, diesmal kam meine Datei!quelle
Könnte eines von mehreren Dingen sein:
Wurzelpfad:
src: https://help.ubuntu.com/community/CronHowto
Oder verwenden Sie einfach vollständige Pfade zu jedem Befehl in Ihrem Skript:
/bin/ls
stattls
zum Beispiel. (which ls
an der Kommandozeile für Pfade).Es gibt einen seltsamen Fehler bei Punkten im hier angegebenen Dateinamen . Kann sich auf die Datei erstrecken, auf die Sie verlinken, obwohl dies unwahrscheinlich erscheint.
Speichern Sie die Ausgabe aus der Sicherungsdatei? Setzen Sie so etwas in die erste Zeile, um festzustellen, ob es überhaupt nicht läuft oder läuft, aber irgendwann fehlschlägt.
/bin/echo "Attempting to run backup" >> /path-to-home/backup.log
Versuchen Sie alternativ, das Skript direkt zur crontab-Datei hinzuzufügen:
läuft jeden Tag um 15:30 Uhr, wenn die Maschine eingeschaltet ist. Verwenden Sie * * * * * während des Tests, um einmal pro Minute zu laufen, bis Sie es zum Laufen bringen.
quelle
Suchen Sie in Ihrem Syslog nach Nachrichten wie:
Die Dateien müssen auf 644 beschränkt sein (ist ausreichend):
quelle