Answers:
使用一个.wgetrc
文件(GNU手册),您可以在其中设置ftp和http或两者的用户名和密码。
要对两者使用相同的凭据,请指定
user=casper
password=CasperPassword
或单独
ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass
.netrc
文件的wget ,但已记录在案。
我很惊讶没有人提到该.netrc
文件。如果文件不存在,请首先创建该文件并设置安全权限:
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=/
(在这种情况下,您必须将文件创建为/.netrc
,但是最好HOME
在脚本的开头设置一个适当的名称,例如export HOME=/root
)。
您可以在中指定多台主机~/.netrc
,每行一台。中的更多信息man netrc
。
man netrc
在OP中看到它,不知道为什么行得通,然后@ryenus您的评论为我省了,谢谢〜始终欢迎使用手册:P然后我知道它是rc使用的rc文件ftp
,也就是说,它可能不适用于http。我稍后会在http上尝试。
在许多方面,卷曲可以是更好的选择。随着时间的流逝,Wget变得有些陈旧。
curl的-n开关可用于此任务:http : //curl.haxx.se/docs/manpage.html#-n
-i
选项,并从标准输入中输入用户名和密码。