Wget:有没有办法从文件中传递用户名和密码?

有没有办法通过用户名和密码从文件而不是命令行通过–user和 – 密码?

背景:我想通过cron运行wget,不想在进程视图中显示用户名/密码

使用.wgetrc文件( GNU手册 ),您可以在其中为ftp和http中的一个或两个设置用户名和密码。

为两个指定使用相同的凭据

 user=casper password=CasperPassword 

或单独

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

我很惊讶没有提到.netrc文件。 首先创build文件,如果它不存在并设置安全权限:

 touch ~/.netrc chmod 600 ~/.netrc 

然后,您可以在一行中添加主机名,用户名和密码:

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

然后,当您执行wget https://example.com并且服务器响应401 Authorization Required ,wget将使用~/.netrc文件中的用户名和密码重试。

当从cron使用这个,确保你有正确的HOME目录。 经常cron设置HOME=/ (在这种情况下,您将不得不将文件创build为/.netrc ,但最好在脚本的开头设置一个合适的HOME ,例如export HOME=/root )。

您可以在~/.netrc指定多个主机,每行一个。 更多信息在man netrc

在许多方面curl可以是一个更好的select。 随着时间的推移,Wget变得有点陈旧了。

curl的-n开关可以用于这个任务: http : //curl.haxx.se/docs/manpage.html#-n