Cron Job wird nicht ausgeführt

Status
Für weitere Antworten geschlossen.

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
und mit
Code:
/volume1/web/backup/dbbackup.sh
in der Konsole läuft es?

Edit: Ist /etc/crontab auch ohne ^M am Zeilenende im vi?
 

alfonso

Benutzer
Mitglied seit
17. Dez 2008
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
habe folgendes per telnet probiert:

cd /volume1/web/backup/

sh dbbackup.sh

funktioniert, aber ich musste ein paar zeilen auskommentieren:

Rich (BBCode):
#!/bin/sh
#
#PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#export PATH
#cd /volume1/web/backup/
cat dbbackup.ftp | lftp -u db,pw -p 21 forum.de/html/backup/

edidt: ich nutze den cronjob editor zum erstellen und bearbeiten der crontabs
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
Es muss auch ohne "sh" davor mit "/volume1/web/backup/dbbackup.sh" funktionieren, sonst stimmt etwas mit den Rechten oder dem Dateiformat nicht.
Was liefert denn "ls -als /volume1/web/backup/dbbackup.sh"?
Hast du dir das Script und /etc/crontab wirklich mal mit vi angeschaut?

Edit: Wenn du magst, schalte mal ssh an, leite Port 22 im Router auf deine DS weiter und teil mir deine externe IP und das root-Passwort per PN mit. Ich würde mir die Sache mal anschauen.

Gruß Benares
 
Zuletzt bearbeitet:

alfonso

Benutzer
Mitglied seit
17. Dez 2008
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
eben nicht, telnet funktioniert nur wie ich es oben schon beschrieben habe.
meine crontab sieht so aus:
Code:
0	21	*	*	3	root	/usr/syno/bin/smartctl -d ata -t long /dev/sda > /dev/null 2>&1
5	0	*	*	3,6	root	/usr/syno/bin/synopkg chkupgradepkg
3	20	*	*	*	root	/volume1/web/backup/dbbackup.sh	#db

cd /volume1/web/backup/
ls

zeigt mir Raumschiff> ls
backup.sql.gz dbbackup.ftp dbbackup.sh dbbackup.sh.bak
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
Dann mach mal wenigstens ein "ls -als" anstatt nur "ls".
 

alfonso

Benutzer
Mitglied seit
17. Dez 2008
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
Raumschiff> ls -al
drwxr-xr-x 3 root root 4096 Feb 20 20:22 .
drwxr-xr-x 23 root root 4096 Feb 26 17:02 ..
drwxr-xr-x 2 root root 4096 Feb 19 21:29 .lftp
-rw-r--r-- 1 root root 366 Feb 19 18:35 .profile
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
Ich meinte nach dem "cd /volume1/web/backup/", also
Code:
cd /volume1/web/backup/
ls -als
 

alfonso

Benutzer
Mitglied seit
17. Dez 2008
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
Raumschiff> cd /volume1/web/backup/
Raumschiff> ls -als
4 drwxrwxrwx 2 admin users 4096 Feb 27 20:45 .
4 drwxrwxrwx 4 root root 4096 Feb 26 16:55 ..
1852 -rw-r--r-- 1 root root 1895878 Feb 27 19:39 backup.sql.gz
4 -rwxrwxrwx 1 admin users 40 Feb 20 20:38 dbbackup.ftp
4 -rwxrwxrwx 1 admin users 238 Feb 27 19:19 dbbackup.sh
4 -rwxrwxrwx 1 admin users 237 Feb 27 19:19 dbbackup.sh.bak
0 -rw-r--r-- 1 root root 0 Feb 27 20:45 ls
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
Die Rechte schauen ok aus, wenn auch etwas "zu offen". Arbeitest du über telnet als "admin" oder als "root"?
Lass mich kurz aufschalten, so wird das hier nix.
 

alfonso

Benutzer
Mitglied seit
17. Dez 2008
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
in telnet gehe ich als root
auf die ds gehe ich als admin
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
Das ist ok. Und wie machen wir jetzt weiter?
 

alfonso

Benutzer
Mitglied seit
17. Dez 2008
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
keine ahnug! ich möchte das script einfach mal zum laufen bringen.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
Ist es denn zuviel verlangt, dass du einfach mal ein "vi /volume1/web/backup/dbbackup.sh" eintippst und mir sagst, was du siehst und ob da ^M an den Zeilenenden stehen (mit Esc, :, q kommst du wieder raus)?
 

alfonso

Benutzer
Mitglied seit
17. Dez 2008
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
#!/bin/sh^M
#^M
#PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin
#export PATH^M
#cd /volume1/web/backup/^M
cat dbbackup.ftp | lftp -u db,pw -p 21 forum.de/html/
~
~
~
~
 
Zuletzt bearbeitet:

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
Dacht ich mir's doch.
Arbeite dich ein wenig in "vi" ein und/oder besorg dir WinSCP als Client. Dein Editor (oder die anschliessende Übertragung) ist nicht Unix-fähig.

Hintergrund: DOS/Windows verwendet CarriageReturn (CR) und LineFeed (LF) als Steuerzeichen am Zeilenende, Unix nur ein LF. Die CR erscheinen in einem Unix-Editor als "^M", die müssen weg.

Gruß Benares
 
Zuletzt bearbeitet:

alfonso

Benutzer
Mitglied seit
17. Dez 2008
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
oky, danke werde das erst mal testen. melde mich dann noch mal.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
Evtl. ist die /etc/crontab auch so verhunzt - schau mal nach.
 

alfonso

Benutzer
Mitglied seit
17. Dez 2008
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
"^M" müssen weg.

so meine dbbackup.sh ist jetzt "sauber".

leider tauchen jetzt wieder neue probleme auf:
Code:
Feb 28 15:34:45 crond: crond (busybox 1.16.1) started, log level 8
Feb 28 15:36:01 crond: USER root pid 16118 cmd /volume1/web/backup/dbbackup.sh
/volume1/web/backup/dbbackup.sh: line 6: lftp: not found
cat: write error: Broken pipe

was bedeutet das nun wieder und wie kann das problem behoben werden?

Rich (BBCode):
#!/bin/sh
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export PATH
cd /volume1/web/backup/
cat dbbackup.ftp | lftp -u db,pw -p 21 forum.de/html/backup/
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.328
Punkte für Reaktionen
2.873
Punkte
423
Das bedeutet, dass das Verzeichnis, in dem lftp liegt nicht im Pfad ist. Ein "which lftp" auf der Konsole sagt dir, in welchem Verzeichnis lftp liegt.
Nimm das Verzeichnis mit in den Pfad auf, dann sollte es klappen. Oder nimm einfach den Pfad komplett, den ein "echo $PATH" auf der Konsole ausgibt.

Gruß Benares
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat