--userと--passwordを介してコマンドラインの代わりにファイルからユーザー名とパスワードを渡す方法はありますか?
背景:cron経由でwgetを実行し、プロセスビューにユーザー名/パスワードを表示したくない
使う .wgetrc
ファイル( GNUマニュアル )で、ftpとhttpの一方または両方のユーザー名とパスワードを設定できます。
両方に同じ資格情報を使用するには、
user=casper
password=CasperPassword
または個別に
ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass
.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
で詳細をご覧ください。
多くの点で、カールの方が適しています。 Wgetは時間の経過とともに少し古くなりました。
このタスクにはcurlの-nスイッチを使用できます。 http://curl.haxx.se/docs/manpage.html#-n