Cron

將 wget 作為 cron 作業執行

  • August 4, 2016

我想將備份存檔從一台伺服器下載到另一台伺服器。伺服器有一個提供最新備份存檔的腳本,該文件具有每個日期的特定名稱。我希望 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

引用自:https://serverfault.com/questions/794909