Cron
將 wget 作為 cron 作業執行
我想將備份存檔從一台伺服器下載到另一台伺服器。伺服器有一個提供最新備份存檔的腳本,該文件具有每個日期的特定名稱。我希望 wget 保留該名稱。
當我執行時:
wget -q --content-disposition 'http://server.example.com/get/latest'
它只是我想要的。我也可以用瀏覽器下載文件。
但是,當我將其放入 shell 腳本並嘗試將其作為 cron 作業執行時,什麼也沒有發生。我沒有看到任何錯誤
/var/log/syslog
。這是整個shell腳本:
#!/bin/sh wget -q --content-disposition 'http://bkp.www1.linux.local/get/latest'
我也試過了
#!/bin/bash
,同樣的結果。我究竟做錯了什麼?
您沒有詳細說明如何設置 cron 作業(使用者範圍、系統範圍……)您確定 cron 條目的格式正確(就像忘記了一個欄位)?系統 cron 條目應如下所示
0 1 * * 0 root /usr/bin/my-command
我改寫
man 5 crontab
field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 1-31 month 1-12 (or names, see below) day of week 0-7 (0 or 7 is Sunday, or use names) user user of the system command the command to run (should be executable)
如果您創建了使用者 cron 條目,
crontab -e
則應省略該user
欄位。確保目前工作目錄(執行腳本的位置)對腳本是可寫的。看看https://unix.stackexchange.com/questions/38951/what-is-the-working-directory-when-cron-executes-a-job