Crontab job startet nicht automatisch wie gewünscht - manuell schon

Gen8 Runner

Experte
Thread Starter
Mitglied seit
12.08.2015
Beiträge
1.153
Hey beisammen,
nun brauche ich einmal den Rat von euch Linux-Experten, da ich in dem Gebiet echt nicht sattelfest bin.

Folgende Basis:
- Nextcloud auf Basis des HanssonIT läuft auf meinem ESXI Host
- Zwei Backups scripts sind konfiguriert (einmal lokal auf SMB Laufwerk, einmal zu Nextcloud)

Nun die "witzige" Geschichte:
- Stoße ich das backblaze-setup scripts manuell an (sprich: sudo bash /var/scripts/backblaze-backup.sh), so startet dieses und läuft exakt wie gewünscht durch
- Stößt der crontab genau dieses Skript an, erfolgt nur die Datenbanksicherung und das (sql), aber der Abgleich der Datenverzeichnisse kommt nicht in die Gänge

Per Email kam nur der Ablauf der Datensicherung und am Ende steht der Fehler:
/var/scripts/backblaze-backup.sh: line 67: b2: command not found
/var/scripts/backblaze-backup.sh: line 74: b2: command not found

Bloß, warum läuft das script, manuell angestoßen, sauber durch, automatisch per crontab hingegen nicht?
Cronjob wurde wie folgt eingerichtet: sudo crontab -e
Und dort am Ende folgender Job angehangen:
0 2 * * 4 bash /var/scripts/backblaze-backup.sh >/dev/null 2>&1

Der script datei habe ich per chmod die 0700 verpasst und auch chown für root angewandt.

Falls noch Infos notwendig sind, werde ich die liefern, Das gesamte Skript müsste ich erstmal anpassen (=Passwörter entfernen), bevor ich das hier einstelle.
Da es aber manuell angestoßen durchläuft, schätze ich nur, dass es am cronjob liegt.
Beitrag automatisch zusammengeführt:

EDIT:
Ein einfaches sudo vor den Bash scheint gewirkt zu haben...Warum auch immer das dort noch explizit genutzt werden muss.
Dachte die werden automatisch als root ausgeführt.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
In welche crontab hast du die Zeile den eingetragen (Also bei welchem Nutzer)? Das Skript wird ja logischerweise als der entsprechende Nutzer ausgeführt und nicht als root-Nutzer (sonst könnte ja jeder einfach root-Rechte erlangen ;) )
 
0 2 * * 4 bash /var/scripts/backblaze-backup.sh >/dev/null 2>&1

Bin mir nicht ganz sicher, aber muss in der Crontab nicht der volle Pfad zum Befehl angeben werden? Also z.B. /bin/bash statt einfach nur bash. (oder wo bash bei dir liegt)
 
Angemeldet in der Shell mit bspw. PinkPanther
Anschließend sudo crontab -e
Cronjob eingefügt bash /var/scripts/... und gespeichert. Lief nicht. Erst nachdem ich sudo vor den bash ergänzt hatte.

Ich hatte nur bash angegeben, ohne den gesamten Pfad. Das ist ja das witzige, bei anderen cronjobs lief es direkt so von Anfang an. Nur bei diesem speziellen nicht.

Aber nun, wo ich sudo bash /var/scripts.... nutze, läuft er ja einwandfrei!
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh