簡體   English   中英

每小時Cron作業未運行

[英]Hourly cron job did not run

我使用crontab -e打開了crontab文件。 然后將其添加到我的crontab中:

SHELL=/bin/bash

@hourly /home/ec2-user/utilities/create-snapshots.sh

然后,我保存了文件。 大約一個小時后,cron日志顯示:

CROND[1876]: (ec2-user) CMD (/home/ec2-user/utilities/create-snapshots.sh)
CROND[1877]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1)
CROND[1892]: (root) CMD (run-parts /etc/cron.hourly)
run-parts(/etc/cron.hourly)[1892]: starting 0anacron
run-parts(/etc/cron.hourly)[1901]: finished 0anacron

但是我知道命令/home/ec2-user/utilities/create-snapshots.sh實際上並沒有運行,因為它會創建數據庫的快照,但實際上並沒有。 如果直接在終端中運行/home/ec2-user/utilities/create-snapshots.sh命令,則該命令/home/ec2-user/utilities/create-snapshots.sh

我怎樣才能讓cron每小時運行一次該命令?

create-shapshots.sh調試能力告訴我, create-shapshots.sh腳本運行,但是由於環境變量問題(可能是PATH )而失敗。 Cron通常在清理后的環境中運行命令,所包含的內容比通常在shell提示符下要少得多。

我同意Greg的觀點,即您的環境變量可能與您的想法不符。 如前所述,它以一塊空板開始。 要調試變量,可以使用set命令:

set >~/some-file.txt

您可能會包含.bash_profile文件,盡管如果您缺少PATH,HOME等,那將不會有用。 首先,您需要設置這些基本變量(盡管應該為用戶cron腳本設置HOME。)要加載bash配置文件腳本,請執行以下操作,假設正確設置了$ HOME:

. ~/.bash_profile

但是,閱讀anacrontab手冊頁后會看到以下內容:

@period_name delay job-identify command

The period_name can only be set to monthly at the present time.
This will ensure jobs are only run once a month, no matter the
number of days in this month, or the previous month.

因此,您的@hourly感覺無法正常工作。 顯然,手冊頁可能在說謊。 我不確定百分百,因為我沒有那么多使用Anacron。 當前的Cron設置將自動使用Anacron來運行預期會運行的腳本,並且由於計算機關閉而以某種方式失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM