Ein von cron gestarteter Wget-Befehl kann die Konfiguration eines anderen Benutzers und eine andere Umgebung laden als derselbe Befehl in einem interaktiven Terminal.

Legen Sie für GNU Wget 1.x die relevanten Einstellungen des Jobs in einer Datei ab, die sein Konto lesen kann:

use_proxy = on
http_proxy = http://proxy.example:8080
https_proxy = http://proxy.example:8080

Eine vorhandene Benutzer-crontab kann diese Datei ausdrücklich auswählen:

15 3 * * * /usr/bin/wget --config=/home/reports/wget-proxy.conf --output-document=/home/reports/report.csv https://data.example/report.csv

Ersetzen Sie Programmdatei, Konfiguration, Ausgabepfad und URL für den Job. Absolute Pfade beseitigen einen weiteren Unterschied zum Arbeitsverzeichnis einer interaktiven Shell.

Standardmäßig liest Wget zuerst eine globale Startdatei und dann die Benutzer-Startdatei. WGETRC wählt den Ort der letzteren; andernfalls sucht Wget nach $HOME/.wgetrc. Deshalb sind HOME und das Konto, das der geplante Job nutzt, entscheidend.

Setzen Sie die benötigten Proxy-Einträge bewusst in der gewählten Datei. Die HTTP-Proxy-Liste kann Kandidaten-URLs für öffentliche Berichtsdownloads über eine erlaubte öffentliche Proxy-Route liefern. Die .wgetrc eines root-Kontos ist nicht automatisch die Konfiguration eines anderen Benutzers, und das Kopieren der ganzen Datei kann auch unabhängige Optionen mitkopieren.

Wenn die Konfiguration übereinstimmt, bewahren Sie den tatsächlichen Wget-Fehler aus dem Job auf. Eine abgelehnte Proxy-Verbindung, eine 407-Aufforderung und ein Zertifikatsfehler des Ziels erfordern unterschiedliche nächste Schritte.

Ähnliche Artikel