darf ein cronjob keine Ordner erstellen?

stefkey

Member
Hallo,

ich habe folgenden cronjob als root eingerichtet:
00 4 * * * /usr/local/bin/duply test backup >/var/log/duply/test.log 2>&1

Das backup wurde nicht aus geführt. Das Verzeichnis duply habe ich vorher nicht erstellt. Im syslog finde ich folgenden Eintrag:
(CRON) error (grandchild #5577 failed with exit status 2)


Ich vermute das der Ordner existieren muss. Aber warum darf der cron den nicht einfach erstellen? Oder gibt's da eine Ergänzung im cronjob die das dann macht?
 
Die Datei würde glaube ich erstellt werden, nicht aber der Ordner



Mkdir "Pfad" ; "Befehl"

Dann wird der Ordner angelegt
 
Im Cronjob: teste vorher auf Existenz des Ordners, erzeugen ihn bei Nichtvorhandensein. Starte dann duply.
Das sind alles ein paar Shellbefehle, in einer Zeile geschrieben ;)
Das weißt du doch welche Shellbefehle gemeint sind?

Oder auch so:
Code:
(mkdir -p /var/log/duply/ && /usr/local/bin/duply test backup >/var/log/duply/test.log) 2>&1
 
okay, danke für den cron mit dem mkdir .... und &&

ich verstehe das auch alles, ich komme schon zurecht, alles easy. Aber trotzdem wundert es mich das der cronjob kein Verzeichniss anlegen darf.

Wenn ich zb

mv tralala.tar nach /var/www/123/abc verschiebe und 123/abc ist nicht vorhanden wird's einfach erzeugt. So hätte ich das gerne bei cronjobs auch :-)
[edit: nein, voriges ist blödsinn. Hab was dazu gelernt! ]

Der cronjob kümmert sich doch darum das die Ausgabe in eine Datei geschrieben wird und legt diese ggf. auch an (ja das tut er, schon geprüft), nur ein Verzeichnis legt er nicht an :-(

Ist das sinnvoll? Ich gehe mal davon aus, oder ist es einfach Zufall das es nicht geht... egal!

Danke vielmals!!!
 
Last edited by a moderator:
Da missverstehst du cron. Ein Cronjob legt nix an sondern führt nur Programme/Shellskripte/Shellbefehle aus.

Die Shell legt auch keine Verzeichnisse so an, wenn sie nicht existieren.
 
@Joe User: Habe ich auch noch nie gehört und Guugel brachte auch nichts zu dem.

@stefkey: Wenn ich ein mv tralala.tar nach /var/www/123/abc mache, und /var/www/123 nicht existiert, wird ein "No such file or directory" ausgegeben. Wenn /var/www/123 aber nicht /var/www/123/abc existiert, wird tralala.tar nach /var/www/123 verschoben und nach "abc" umbenannt.
 
aber der cron schreibt doch etwas in das logfile. Oder macht das duply?
Ne, der cron macht das doch?!?
Was soll cron machen?
Cron startet m. E. eine Shell, welche die Befehle im Crontab abarbeitet. Also wer erzeugt dann das Log? Die Shell.
 
@GwenDragon: Er meint die Logeinträge, welche in /var/log/syslog auftauchen mit den Infos, dass ein Cronjob nicht mit exit 0 beendet wurde.

/Edit: ... exited with return code x
 
aber der cron schreibt doch etwas in das logfile. Oder macht das duply?
Ne, der cron macht das doch?!?
Damit wir nicht noch mehr rätseln: was steht denn in welchem Log drin, was deines Wissens irgendein Programm reingeschrieben haben soll?
 
im syslog steht:
Code:
(CRON) error (grandchild #5577 failed with exit status 2)

weil der cron indem das folgende steht:
Code:
/usr/local/bin/duply test backup >/var/log/duply/test.log) 2>&1

den Ordner duply nicht findet weil er nicht existiert!

Ich dachte der "cron" kann den Ornder anlegen.


Welche Distro macht denn solch einen Mist?
keine, ich hab geträumt es wäre so :-) sorry!


@Joe User: Habe ich auch noch nie gehört und Guugel brachte auch nichts zu dem.

@stefkey: Wenn ich ein mv tralala.tar nach /var/www/123/abc mache, und /var/www/123 nicht existiert, wird ein "No such file or directory" ausgegeben. Wenn /var/www/123 aber nicht /var/www/123/abc existiert, wird tralala.tar nach /var/www/123 verschoben und nach "abc" umbenannt.

Danke, genau so ist es!
 
Back
Top