Wget:ファイルからユーザー名とパスワードを渡す方法はありますか?


22

--userおよび--passwordを使用して、コマンドラインの代わりにファイルからユーザー名とパスワードを渡す方法はありますか?

背景:cron経由でwgetを実行したいのですが、プロセスビューにユーザー名/パスワードを表示したくない

回答:


13

ftpとhttpのいずれかまたは両方のユーザー名とパスワードを設定できる.wgetrcファイル(GNUマニュアル)を使用します。

両方に同じ資格情報を使用するには、指定します

user=casper
password=CasperPassword

または個別に

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

2
GNU wgetマニュアルでは、-iオプションを使用し、標準入力からユーザー名とパスワードを入力することも推奨しています。
リチャード

DOESは、.wgetrc複数のサーバーで動作するように柔軟性を提供しますか?ない場合は、.netrcよりよい解決策である、見る、他の答え tobias.palから
ryenus

.netrcファイルを使用するwgetを見逃したことは明らかですが、文書化されています
マイクレンフロ

19

私は誰も言及していない驚いている.netrcファイルを。最初にファイルが存在しない場合は作成し、安全なアクセス許可を設定します。

touch ~/.netrc
chmod 600 ~/.netrc

次に、ホスト名、ユーザー名、パスワードをすべて1行で追加できます。

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

するとwget https://example.com、サーバーがで応答すると401 Authorization Required、wgetは~/.netrcファイルのユーザー名とパスワードで再試行します。

cronからこれを使用するときは、正しいHOMEディレクトリがあることを確認してください。多くの場合、cronセットHOME=/(この場合、ファイルをとして作成する必要がありますが、スクリプトの先頭に/.netrc適切な値を設定することをお勧めします(例:))。HOMEexport HOME=/root

で複数のホストを~/.netrc1行に1つずつ指定できます。詳細はをご覧くださいman netrc


2
の構文については.netrc、そのマニュアルまたは関連するcurl docを参照してください。
ライナス

最初は私が見て、あまりにも不注意だman netrc常に〜マニュアルこの作品は、その後、あなたのコメントは私を保存し@ryenus WHY、感謝を不思議、OPにされて歓迎:Pその後、私はそれがで使用されるrcファイルを知っているftp、それはかもしれないです、 httpでは機能しません。後でhttpで試してみます。
週末

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.