
Manuell gebe ich eine URL in einen Browser ein, der eine Seite mit einer GET-Funktion aufruft, die mich direkt auffordert, eine Datei zu speichern. Ich möchte diese Aktionen mit einem Cron-Job in einem Skript automatisieren:
- Aufruf der URL
- Speichern Sie die Datei in einem bestimmten Ordner
Kann jemand beim Schreiben des Skripts helfen? Ich kann die URL privat bereitstellen, damit das Verhalten getestet werden kann.
Antwort1
Eine Möglichkeit zum Herunterladen einer URL ohne Verwendung einer Benutzeroberfläche (Text oder GUI) besteht in der Verwendung wget
mit allen erforderlichen Parametern (nach Wunsch) als Cron-Job.
Über wget
Ein Beispiel für eine einzelne URL (mit einem mit einem Zeitstempel zusammengeführten Ausgabenamen, um die Antwort anzureichern; könnte ein statischer Name sein):
wget URL -O "/home/uname/dirn/`date +%y%m%d-%H%M%S`-n.htm" -b
wget URL -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-n.htm" -b #in crontab
Hinweis: In cron müssen Sie "\%" (wie in der zweiten Zeile oben) statt nur "%" (wie in der ersten Zeile oben) verwenden, da cron das "Prozent"-Zeichen interpretiert.
wobei: sich aufteilt in:-O "/home..../
date...
-theRestOfTheName"
absoluter Pfad (cron hat möglicherweise seinen eigenen Pfad konfiguriert, daher ist es aus praktischer Sicht oft vorteilhaft, den gewünschten Pfad in jedem Befehl anzugeben)
spontane Ausführung
date
mit Ausgabe als menschenlesbare Art von Zeitstempelder Rest des Zieldateinamens
-b
fordert wget auf, im Hintergrund zu arbeiten und sich beim Syslog anzumelden.
Sie können optional eine Liste von URLs aus einer Datei verwenden ( -i filename
). Sie können auch mit wget und seiner Manpage ( ) herumexperimentieren man wget
– sie ist relativ kurz und kann Ihnen viele Ideen liefern.
Über cron
Beachten Sie, dass cron davon ausgeht, dass Ihr Rechner immer eingeschaltet ist: cron holt die Jobs für die Zeit, in der der Rechner ausgeschaltet war, nicht nach. Bearbeiten von cron als aktueller Benutzer
crontab -e
Fügen Sie eine Konfigurationszeile hinzu, die die Häufigkeit der Ausführung des Befehls angibt (eine einfache Anweisung wird als Kommentar in den obersten Zeilen des Crontab-Editors angezeigt, bitte lesen Sie sie). Für die Ausführung alle 5 Minuten am Sonntag würden Sie Folgendes schreiben:
# m h dom mon dow command
*/5 * * * 0 wget google.com -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-ind3.htm" -b