Moin Moin,
ich versuche seit mehreren Tagen per cronjob einen FTP Download und ein anschliessendes starten eines php scripts einzurichten aber irgendwie funktioniert das ganze nicht. Ich habe hierzu 2 shell scripts angelegt die folgendermaßen aussehen:
Text_exec:
cat ./Test_data | ftp -n <ip>
lynx -dump <http://www.url.de/scripts/script.php>
Test_data:
user <name> <pass>
get datei.end datei.end
bye
Per Cronjob rufe ich nun die datei Text_exec auf, was folgendermassen aussieht:
30 * * * * /pfad/Test_exec
wenn ich Text Exec per hand starte funktioniert auch alles, allerdings scheint er beim start per crond den Inhalt der datei Text_data nicht zu benutzen. Weiss jemand Rat?
Vielen Dank
Sebastian
Problem: FTP download per cronjob...
Re: Problem: FTP download per cronjob...
> wenn ich Text Exec per hand starte funktioniert auch alles, allerdings scheint er beim start per
> crond den Inhalt der datei Text_data nicht zu benutzen. Weiss jemand Rat?
Was ist den das aktuelle Working Directory wenn dein Script per Cron-Job läuft ?
Du solltest als erste Zeile in deinem Cron-Job Script explizit in dein Verzeichnis wechseln von wo aus das Script aufgerufen werden soll bzw. absolute Pfadnamen verwenden.
---- cut ----
#!/bin/bash
cd /home/descartes/work
ncftpget -f /home/descartes/ftp/login.cfg ftp://ftp.gnu.org/welcome.msg
lynx -dump http://www.url.de/scripts/script.php
---- cut ----
Warum verwendest du cat + ftp und nicht ncftpget ?
z.B.
ncftpget -u anonymous -p guest@home.de ftp://ftp.gnu.org/welcome.msg
oder
ncftpget -f /home/descartes/ftp/login.cfg ftp://ftp.gnu.org/welcome.msg
Inhalt der Datei login.cfg:
host ftp.gnu.org
user anonymous
pass guest@home.de
Funktionieren tun beide Aufrufe wobei ich letzteren bevorzugen würde weil dort die Login-Daten nicht in der Prozesstabelle auftauchen.
> crond den Inhalt der datei Text_data nicht zu benutzen. Weiss jemand Rat?
Was ist den das aktuelle Working Directory wenn dein Script per Cron-Job läuft ?
Du solltest als erste Zeile in deinem Cron-Job Script explizit in dein Verzeichnis wechseln von wo aus das Script aufgerufen werden soll bzw. absolute Pfadnamen verwenden.
---- cut ----
#!/bin/bash
cd /home/descartes/work
ncftpget -f /home/descartes/ftp/login.cfg ftp://ftp.gnu.org/welcome.msg
lynx -dump http://www.url.de/scripts/script.php
---- cut ----
Warum verwendest du cat + ftp und nicht ncftpget ?
z.B.
ncftpget -u anonymous -p guest@home.de ftp://ftp.gnu.org/welcome.msg
oder
ncftpget -f /home/descartes/ftp/login.cfg ftp://ftp.gnu.org/welcome.msg
Inhalt der Datei login.cfg:
host ftp.gnu.org
user anonymous
pass guest@home.de
Funktionieren tun beide Aufrufe wobei ich letzteren bevorzugen würde weil dort die Login-Daten nicht in der Prozesstabelle auftauchen.