Shell-Skript für CRON, das die URL aufruft und die Datei speichert

Shell-Skript für CRON, das die URL aufruft und die Datei speichert

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 wgetmit 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 datemit Ausgabe als menschenlesbare Art von Zeitstempel

  • der Rest des Zieldateinamens

-bfordert 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

verwandte Informationen