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