有没有办法通过用户名和密码从文件而不是命令行通过–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