LFTP mit SFTP als CronJob

frankhelm

New Member
Hallo,

ich habe Schwierigkeiten mein Script sftp.sh als cronjob zum laufen zu bringen. Wenn ich es mit ./sftp.sh starte läuft es.


#!/bin/sh
cd /usr/local/epost/mirror/

lftp -e "mirror -vnR /usr/local/epost/mirror/in && bye" sftp://name:password@000.000.000.000 >>/usr/local/epost/mirror/feedback/log.txt

lftp -u name,password -p 22 -e "mirror -vn feedback && bye" sftp://000.000.000.000 >>/usr/local/epost/mirror/feedback/log.txt


Dass es von cron gestartet wird weis ich weil die log.txt erzeugt wird leider hat sie keinen Inhalt.

Der Job läuft als root.

Weis jemand was da falsch läuft?
Danke schon mal.

Gruß

Frank
 
Ist "lftp" über deinen $PATH verfügbar, welcher in der crontab gesetzt wird? Wenn nicht, füge den Pfad hinzu oder rufe im Skript "lftp" über den absoluten Pfad auf. Wenn das der Fehler war, solltest du allerdings irgendeine Fehlermeldung von Cron per Mail bekommen haben.
 
Danke für die Antwort.

Also ich habe im Crontab den Pfad /usr/local/bin mit : an die anderen Einträge angehängt und cron neu gestartet.
der lftp wurde nicht ausgeführt.

dann habe ich den lftp im script so aufgerufen:
/usr/local/bin/lftp -e "mirror -vnR /usr/local/epost/mirror/in && bye" sftp://name:password@000.000.000.000 >>/usr/local/epost/mirror/feedback/log.txt

Beim manuellen Test mit ./sftp.sh hat das system einfach gestoppt.

Ich hab den Befehl dann direkt eingegeben und diese meldung bekommen.

mkdir `in' [Delaying before reconnect: 59]

Wenn der Zähler auf 0 ist fängt er wieder mit mehr sekunden von vorn an.
 
Hallo und willkommen im Forum :)

Also ich habe im Crontab den Pfad /usr/local/bin mit : an die anderen Einträge angehängt und cron neu gestartet.
der lftp wurde nicht ausgeführt.
Wo hast du diesen Eintrag gemacht? Kannst du diesen hier mal posten?

dann habe ich den lftp im script so aufgerufen:
/usr/local/bin/lftp -e "mirror -vnR /usr/local/epost/mirror/in && bye" sftp://name:password@000.000.000.000 >>/usr/local/epost/mirror/feedback/log.txt
Kannst du mal bitte CODE Tag [1] benutzen? Dann kann man dies viel besser lesen! Zeig mal das Script komplett bitte.

Beim manuellen Test mit ./sftp.sh hat das system einfach gestoppt.
Was genau hat gestoppt? Konntest du kein Terminal/Console mehr öffnen? Mit "ssh" noch erreichbar? ping?

Ich hab den Befehl dann direkt eingegeben und diese meldung bekommen.
Schick alles vom Aufruf in Cron nach "/dev/null" und im Skript nach "log.txt"

Gruss

[1] http://www.bsdforen.de/help/bb-codes
 
Hi

foxit schrieb:
Was genau hat gestoppt? Konntest du kein Terminal/Console mehr öffnen? Mit "ssh" noch erreichbar? ping?

Ich konnte keine Eingaben mehr machen und musste eine neue PuTTY Session starten.

Das ist mein Crontab

Code:
# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: release/9.0.0/etc/crontab 194170 2009-06-14 06:37:19Z brian $
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
#
#minute hour    mday    month   wday    who     command
#
*/5     *       *       *       *       root    /usr/libexec/atrun
*/5     *       *       *       *       root    /usr/local/cron/sftp.sh


#
# Save some entropy so that /dev/random can re-seed on boot.
*/11    *       *       *       *       operator /usr/libexec/save-entropy
#
# Rotate log files every hour, if necessary.
0       *       *       *       *       root    newsyslog
#
# Perform daily/weekly/monthly maintenance.
1       3       *       *       *       root    periodic daily
15      4       *       *       6       root    periodic weekly
30      5       1       *       *       root    periodic monthly
#
# Adjust the time zone if the CMOS clock keeps local time, as opposed to
# UTC time.  See adjkerntz(8) for details.
1,31    0-5     *       *       *       root    adjkerntz -a

Und das mein Script
Code:
#!/bin/sh
cd /usr/local/epost/mirror/
lftp -e "mirror -vnR /usr/local/epost/mirror/in && bye" sftp://user:pass@000.000.000.000 >>/usr/local/epost/mirror/feedback/log.txt
lftp -u user,pass -p 22 -e "mirror -vn feedback && bye" sftp://000.000.000.000 >>/usr/local/epost/mirror/feedback/log.txt

Schick alles vom Aufruf in Cron nach "/dev/null" und im Skript nach "log.txt"

Das versteh ich nicht ganz.


Gruß
 
Jetzt klappt es!

Ich habe zwar nach jeder Änderung des Crontap Cron neu gestartet mit /etc/rc.d/cron restart.

aber ein Neustart hat es gebracht.

Danke für Eure Hilfe.
 
Zurück
Oben