
我在瀏覽器上手動輸入一個 URL,該 URL 呼叫一個具有 GET 函數的頁面,該函數直接提示我儲存檔案。我想在腳本上使用 cron 作業來自動化執行以下操作:
- 呼叫網址
- 將文件保存在特定資料夾中
有人可以幫忙寫劇本嗎?我可以私下提供 URL,以便測試行為。
答案1
無需使用使用者介面(文字或 GUI)即可下載 URL 的一種方法是使用wget
所有需要的參數(如您所願)作為 cron 作業。
關於 wget
單一 URL 的範例(輸出名稱與時間戳合併,為了豐富答案,可以是靜態名稱):
wget URL -O "/home/uname/dirn/`date +%y%m%d-%H%M%S`-n.htm" -b
wget URL -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-n.htm" -b #in crontab
注意:在 cron 中,您必須使用“\%”(如上面的第二行),而不僅僅是“%”(如上面的第一行),因為 cron 解釋“百分比”字元。
其中:分解為:-O "/home..../
date...
-theRestOfTheName"
絕對路徑(cron 可能配置了自己的路徑,因此從實際角度來看,在每個命令中指定您感興趣的路徑通常是有利的)
即時執行,
date
輸出配置為人類可讀的時間戳目標檔案名稱的其餘部分
-b
要求 wget 在背景工作,並登入 syslog。
您可以選擇使用檔案 ( ) 中的 URL 清單-i filename
。您也可以使用 wget 及其線上說明頁 ( man wget
) - 它相對較短,可以為您提供許多想法。
關於計畫任務
請注意,cron 假設您的電腦始終處於開啟狀態:在電腦關閉期間,cron 不會趕上作業。以目前使用者身分編輯 cron
crontab -e
新增一行配置,指定指令的執行頻率(簡單的指令在 crontab 編輯器的最上面幾行中顯示為註釋,請閱讀)。如果週日每 5 分鐘跑一次,你可以這樣寫:
# m h dom mon dow command
*/5 * * * 0 wget google.com -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-ind3.htm" -b