Wget: Gibt es eine Möglichkeit, Benutzernamen und Passwort aus einer Datei zu übergeben?


22

Gibt es eine Möglichkeit, den Benutzernamen und das Kennwort aus einer Datei anstelle der Befehlszeile über --user und --password zu übergeben?

Hintergrund: Ich möchte wget über cron ausführen und möchte nicht, dass der Benutzername / das Passwort in der Prozessansicht angezeigt wird

Antworten:


13

Verwenden Sie eine .wgetrcDatei ( GNU-Handbuch ), in der Sie Benutzernamen und Kennwörter für FTP und / oder HTTP festlegen können.

Um die gleichen Anmeldeinformationen für beide zu verwenden, geben Sie an

user=casper
password=CasperPassword

oder einzeln

ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass

2
Das GNU wget-Handbuch schlägt auch vor, die -iOption zu verwenden und den Benutzernamen und das Passwort von der Standardeingabe einzugeben.
— Richard

Bietet .wgetrces die Flexibilität, mit mehr als einem Server zu arbeiten? Wenn nicht, .netrcist eine bessere Lösung, siehe die andere Antwort von tobias.pal
— ryenus

Ich habe offensichtlich wget mit einer .netrcDatei verpasst , aber es ist dokumentiert .
— Mike Renfro

19

Ich bin überrascht, dass niemand die .netrcAkte erwähnt hat. Erstellen Sie zuerst die Datei, falls sie nicht vorhanden ist, und legen Sie die sicheren Berechtigungen fest:

touch ~/.netrc
chmod 600 ~/.netrc

Dann können Sie den Hostnamen, den Benutzernamen und das Passwort in einer Zeile hinzufügen:

echo 'machine example.com login casper password CasperPassword' >> ~/.netrc

Wenn Sie dies tun wget https://example.comund der Server antwortet mit, 401 Authorization Requiredversucht wget es erneut mit dem Benutzernamen und dem Kennwort aus der ~/.netrcDatei.

Wenn Sie dies von cron aus benutzen, vergewissern Sie sich, dass Sie das richtige HOMEVerzeichnis haben. Häufig Cron-Sets HOME=/(in diesem Fall müssten Sie die Datei als erstellen /.netrc, aber es ist besser, HOMEam Anfang Ihres Skripts ein richtiges wie festzulegen export HOME=/root).

Sie können mehrere Hosts in angeben ~/.netrc, einen pro Zeile. Mehr Infos in man netrc.


2
Informationen zur Syntax von .netrcfinden Sie im zugehörigen Handbuch oder im zugehörigen Curl-Dokument .
— Ryenus

Zuerst bin ich zu nachlässig, um das man netrcim OP zu sehen und frage mich, WARUM das funktioniert, dann rettet mich @ryenus dein Kommentar, danke ~ Handbuch ist immer willkommen: P Dann weiß ich, dass es eine rc-Datei ist, die von verwendet wird ftp, das heißt, es kann funktioniert nicht für http. Ich werde es später auf http versuchen.
— Wochenende,

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.