2014-03-07 93 views
0

我似乎無法運行cron作業,我無法弄清楚原因。我是新來的,所以我可能會犯一個業餘的錯誤。我在創建cron作業時缺少什麼步驟?

首先,我創建一個腳本並將其命名爲'test.sh',並將其放在/ usr/local/bin文件夾中。該腳本包含:

#!/bin/bash 
echo "This test works!" 

接下來,我在/etc/cron.d文件夾中創建一個名爲'randomtest'的文件。該文件包含:

00 09 * * * root /usr/local/bin/test.sh >> /var/log/test.log 

我期望cron作業在每天上午9:00運行,但由於某種原因,它不會。我也沒有按預期得到一個日誌文件。我檢查了test.sh文件的權限,它現在設置爲755,這應該可以工作。

有什麼我做錯了嗎?我錯過了一個關鍵要素?我需要將我的'randomtest'文件添加到crontab中嗎?

+0

你在Ubuntu上嗎?你可以查看[Cron How to](https://help.ubuntu.com/community/CronHowto#line-141)。檢查cron守護進程是否正在運行'ps -ef | grep cron'。 – fedorqui

+0

我正在運行CentOS 4.4,Linux內核版本2.6.18-308.el5。 Cron守護進程確實在運行。 – Dezzie

+1

如果你使用'crontab -e'和普通的crontab? – fedorqui

回答

0

使用/etc/init.d/crond reload重新加載cron守護進程。

(即使它已經運行!)

0

的問題是,你與/etc/cron.d目錄亂搞而不是使用crontab命令。

除非您確實需要使用cron作業作爲root,否則只需使用crontab命令將其添加到您自己的crontab中即可。您可以使用crontab -e進行編輯,但最好保留自己的crontab副本(最好在版本控制下),並使用該命令的crontab filename版本進行安裝。這可以確保cron守護程序知道更新,並且會捕獲任何語法錯誤。這也意味着你不需要運行任何命令,如root;避免root命令,除非他們真的有必要總是一個好主意。

需要注意的是系統的crontab(那些/etc/crontab/etc/cron.d目錄下 - 雖然這些地方是實現細節,你最好不要擔心)有不同的語法不是用戶的crontab;每一行都有一個額外的字段,用於指定要執行指揮官的帳戶。

如果你需要一個命令以root身份運行,您可以(小心)更新系統crontab文件,或者你可以,你會設置一個用戶的crontab爲root用戶,使用正常crontab命令爲任何用戶帳戶。