2016-03-31 3 views
1

Ich möchte ein Cron einrichten, um einen Job von einer URL auf einen Server zu kopieren.Wie schreibe ich ein Cron zum Kopieren und Datei auf einem lokalen Server?

Der Cron-Befehl Ich verwende ist:

cd /home/username/public_html/bin/sh; /usr/local/php54/bin/php script.php; 

Die script.php Datei enthält:

rm -f /home/username/public_html/filepath/file.zip; cd /home/username/public_html/filepath/; wget -q -O /dev/null "https://www.domain.com/file.zip" 

Aber es funktioniert nicht.

Ich möchte auch Datei /home/username/public_html/filepath/file.zip ERSETZEN, wenn es bereits existiert.

Vielen Dank für jede Hilfe.

+0

superuser.com oder unix.stackexchange.com sind bessere Orte, um Fragen zur Verwendung von 'cron' zu stellen. Sie müssen jedoch weitere Informationen zur Verfügung stellen, z. B. Fehlermeldungen, die Sie erhalten. – Barmar

+5

'script.php' ist kein PHP-Skript, es ist ein Shell-Skript. – Barmar

+0

Danke, es gibt keinen Fehler, der zurückkommt ... im Grunde sieht das Skript so aus, als wäre es in Ordnung, aber dann wird keine Zieldatei erstellt, also frage mich, welcher Befehl und welches Skript ich brauche.Es ist mir egal, welche Art von Code benötigt wird, vorausgesetzt, ein regulärer gemeinsamer Server kann damit umgehen ... es macht nur die Dateikopie funktionieren. Danke vielmals! – user2963136

Antwort

0
  1. offen crontab

    crontab -e

  2. Add Linie bearbeiten mit Ihnen wie folgt planen (pls gewünschten Zeitplan überprüfen):

    */10 * * * * rm - f /home/username/public_html/filepath/file.zip; cd/home/Benutzername/public_html/Dateipfad /; wget -q -O/dev/null "https://www.domain.com/file.zip"

cron alle 10 Minuten laufen und löschen file.zip als neue file.zip Download/home/username/public_html/filepath /.

0

ein PHP-Skript hat zwei Modi:

  1. Ausgang direkt auf STDOUT (Standard)
  2. PHP-Befehle ausführen (was zwischen <?php und ?>

Ihr PHP-Skript passiert:

rm -f /home/username/public_html/filepath/file.zip; cd /home/username/public_html/filepath/; wget -q -O /dev/null "https://www.domain.com/file.zip" 

entsprechen den Shell-Skript:

echo 'rm -f /home/username/public_html/filepath/file.zip; cd /home/username/public_html/filepath/; wget -q -O /dev/null "https://www.domain.com/file.zip"' 

... so hat es keinen sichtbaren Effekt, wenn Sie am Ausgang von cron sehen (wahrscheinlich Sie per E-Mail).

Das sind keine PHP-Befehle, sie sind Shell-Befehle. Führen Sie das Skript also mit einer Shell und nicht mit PHP aus.

cd /home/username/public_html/bin/sh; /bin/sh script.php; 

... und hält es für etwas weniger trügerisch, wie script.sh umbenennen.

Verwandte Themen