Script zum automatischen Dateidwonload

4ugMike

Registered User
Hallo,

ich bräuchgte mal Hilfe und zwar möchte ich folgendes realisieren:

Von Server 1 soll jede Stunde um `45 die Datei y.mp3 und die Datei z.mp3 geladen werden und auf dem Server 2 (von wo aus das ausgeführt werden soll) das bestehende File ersetzen. Das ist kein Problem, das was es aber noch kennen muss ist, dass es das nicht zwioschen 0:45 und 04:45 Uhr nachts macht und im Idealfall, dass beide Files immer um 0:30 Uhr azuf dem Server 2 gelöscht werden, also dass die nicht mehr verfügbar sind.

Ich bedanke mich jetzt schonmal für Eure Hilfe
 
Hallo,

Linux? Windows? :)

Gehen wir mal von Linux aus:

Erstelle eine Datei: /home/user/runterladen.sh

Code:
#/bin/sh
wget http://www.server1.de/files/y.mp3  -O /home/user/files/y.mp3
wget http://www.server1.de/files/z.mp3  -O /home/user/files/z.mp3

Erstelle einen Cronjob mit: crontab -e, füge folgendes ein:
Code:
45 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * * /bin/sh /home/user/runterladen.sh > /dev/null

Erstelle eine weitere Datei: /home/user/loeschen.sh
Code:
#/bin/sh
rm /home/user/files/y.mp3
rm /home/user/files/z.mp3

Erstelle inen weiteren Cronjob mit: crontab -e, füge ein:
Code:
30 0 * * * /bin/sh /home/users/loeschen.sh > /dev/null
 
Last edited by a moderator:
Danke, ich denke das ist die Lösung für mein Problem.

Hattest recht hatte vergessen das Betriebssystem hin zu schreiben ist aber Linux
 
SO, habe das nun umgesetzt und es geht nicht.. o.O

habe dann den Befehl mal alleine eingegeben und das kommt dabei raus:

Code:
 wget ftp://BENUTZERNAME:PASSWORT@IPADRESSE/pwetter.mp3  /srv/www/vhosts/DOMAINNAME/httpdocs/-automation-/pwetter.mp3
--07:25:33--  ftp://BENUTZERNAME:*password*@IPADRESSE/pwetter.mp3
           => `pwetter.mp3'
Connecting to IPADRESSE:21... connected.
Logging in as wsr ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> PASV ... done.    ==> RETR pwetter.mp3 ... done.

    [ <=>                                                  ] 454,740       --.--K/s

07:25:33 (5.44 MB/s) - `pwetter.mp3' saved [454740]

/srv/www/vhosts/DOMAINNAME/httpdocs/-automation-/pwetter.mp3: Unsupported scheme.

FINISHED --07:25:33--
Downloaded: 454,740 bytes in 1 files

Also ich erkenne hier keinen Fehler... trotzdem ist das File nicht da oder brauch ich für nen FTP Download n anderen Befehl??

Wollte grad den drontab anlegen, das klappt auch soweit. Habe aber nicht direkt reinschreiben können sondern das schreiben erst mit "i" aktivieren müssen. Das Problem jetzt ist, wie speicher ich das mit welcher Tastenkombination?? Sorry bin in dem Bereich ANfänger
 
Last edited by a moderator:
Code:
wget ftp://BENUTZERNAME:PASSWORT@IPADRESSE/pwetter.mp3 [b][u]-O[/b][/u] /srv/www/vhosts/DOMAINNAME/httpdocs/-automation-/pwetter.mp3
 
ok. danke das passt nun nur macht er das dann trotzdem net.. muss ich irgendwie den crontab noch starten oder neustarten??

Wenn nein, wo werden denn die FehlerLogs hin geschrieben dann seh ich vielleicht da was los ist..
 
Hallo,

Zum Umgang mit dem Editor empfehle ich dir die Manual durchzulesen:
Code:
man vi
Der Umgang ist nämlich etwas gewöhnungsbedürftig und für Anfäger nicht leicht zu verstehen. wq beudtet in diesem Fall: Sichern und Programm beenden, aber manchmal will man zum Beispiel ja auch nicht sichern oder oder oder...Vi bietet für alles nützliche Shortcuts.

Ob der Cronjob nun ausgeführt wird oder nicht kannst du in den Logs nachschauen. Alle Log Dateien findest du in /var/log. Schau dort mal in die Datei "syslog" da solltest du sowas finden:
Code:
Dec  2 07:58:01 servername /USR/SBIN/CRON[28261]: (djrick) CMD (/usr/local/mein_script.pl)

Ob Cron läuft oder nicht findest du mit:
Code:
ps -fC cron
raus.

Wenn nicht:
Code:
/etc/init.d/cron start

Vielleicht funktioniert auch was an dem Script selbst nicht, jedoch habe ich in dem oben genannten Beispiel die Ausgabe in Logfiles deaktiviert....zu testzwecken solltest du:
Code:
> /dev/null
vielleicht mal entfernen. > /dev/null beudetet, dass alle Ausgaben des Scripts ins Nirvana weitergeleitet werden und nirgendswo ausgegeben werden.
 
ok, das probiiere ich das mal...

wie kann ich eigentlich das script manuell starten ???

mit ./newsget.sh
gehts net..
 
Da gibts zwei Wege:
Entweder vorher ausführbar machen:
Code:
chmod +x newsget.sh
./newsget.sh

Oder so wies im Cronjob steht:
Code:
/bin/sh /home/users/newsget.sh
 
So hab gesucht und was gefunden aber kann das net deuten was falsch ist...


Code:
Dec  2 14:50:01 SERVER /usr/sbin/cron[25189]: (root) CMD (/bin/sh/ /usr/local/bin/newsget.sh)
 
Ich kann dir deuten was daran richtig ist :)

Cron läuft und der Job wird ausgeführt :)

Was falsch ist:
Code:
/bin/sh/ /usr/local/bin/newsget.sh
Es muss heissen:
Code:
/bin/sh /usr/local/bin/newsget.sh

Also musst du den Cronjob nochmal mit crontab -e überarbeiten.
 
jupp das fiel mir grad auch auf... habs scho geändert..

Wer genau lesen kann is klat im Vorteil...

i 1 Min läuft er nochmal
 
Wer genau lesen kann is klat im Vorteil...
Wer mitdenken kann auch. /bin/sh ist die Shell, die das Script ausführen soll. Dass man ein File nicht mit einem / hinten dran angibt, sollte klar sein.

Mit Abtippen wirst du nicht weit kommen. Sondern nur mit Lesen, Verstehen, Machen.

Das nur so als Tipp am Rande...
 
Back
Top