Password
Wget:有沒有辦法從文件中傳遞使用者名和密碼?
有沒有辦法通過 –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
然後您可以在一行中添加主機名、使用者名和密碼:
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
。