web-dev-qa-db-ja.com

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

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

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

22
casper

使う .wgetrcファイル( GNUマニュアル )で、ftpとhttpの一方または両方のユーザー名とパスワードを設定できます。

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

user=casper
password=CasperPassword

または個別に

ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass
13
Mike Renfro

.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として作成する必要がありますが、export HOME=/rootのようにスクリプトの先頭に適切なHOMEを設定することをお勧めします)。

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

20
Paul Tobias

多くの点で、カールの方が適しています。 Wgetは時間の経過とともに少し古くなりました。

このタスクにはcurlの-nスイッチを使用できます。 http://curl.haxx.se/docs/manpage.html#-n

0
cstamas