2013-01-24 36 views
0

我對Linux真的很陌生,我很抱歉,如果這是基本的,但我已經Google找到沒有清晰的例子,我很困惑。 (這個問題涉及到運行CentOS 6的服務器)哪裏可以找到Centos 6 cron作業.sh文件

我的問題是:

  1. 我不知道那是什麼,我應該存儲sh文件中,這樣一個cron作業可以運行在默認目錄它。
  2. 下面.sh文件中的代碼的語法和順序是否正確?

我測試了TSQL和它的罰款。

#! SQL="DELETE FROM messages WHERE date < DATE_SUB(CURDATE(), INTERVAL 7 DAY)" 

MYSQL_USER="root" 
MYSQL_PASS="xxxxxx" 
MYSQL_DB="mydb" 

我明白了cron應該包含這個做每天的基礎上:

0 0 * * *

但我只是有一個如何把它放在一起有些忐忑所以我不會搞砸了。一個完整的例子或解釋或參考鏈接將不勝感激。

回答

1

我相信cron將執行從腳本取其目錄它是在的,因爲:

  • 的文件有cron運行的(通常是root如果作業系統爲用戶配置的執行權限 - 寬的crontab)
  • cron行指定的完整路徑腳本

所以,如果你的腳本是/opt/script.sh,在cron指定此:

0 0 * * * /opt/script.sh 

將在每天12:00 am執行script.sh。

請注意,如果這是系統級的crontab(/ etc/crontab中)也應該包括用戶名作爲執行命令:

0 0 * * * username /opt/script.sh 

此外,一些以確保與工作時cron要麼在從腳本調用外部命令時使用完整路徑,要麼設置PATH變量(無論是在腳本本身還是在crontab文件中)。這是必需的,因爲通常cron作業運行的環境相當受限制。

要記住的另一件事是,如果任何輸出是由cron作業生成的,則此輸出將通過郵件發送給執行cron的用戶。因此,爲了從腳本獲得一些反饋,您必須設置系統,以便郵件最終放置在由人類讀取的郵箱中,或者腳本將其全部輸出發送到日誌文件或系統日誌。

+0

謝謝,這可以幫助我很多 – Mike