Linux

crons 不工作,但腳本……知道它是什麼嗎?

  • February 11, 2013

我在網上查了一下,這可能是一個普遍的問題,但我不知道如何解決,他們說的所有事情都不是我的情況……

cron 正在執行,我檢查過,仍然沒有日誌文件(至少沒有在 var/log 中),我使用的是 Debian 6,我的 .sh 工作得很好,我手動嘗試但在 cron 中不起作用.. .

這是我的 cron 程式碼(我使用 crontab -e 然後我重新啟動 cron 服務,即使我認為它沒有必要..)

14 12  * * * /root/mysqldump.sh > /root/MySQLdump.log

它只是我幾分鐘前做的一個測試……當我手動嘗試時,mysqldump.sh 工作得很好,但不是在cron ……還有其他想法嗎?

順便說一句, 2>&1 是做什麼的?

提前致謝

編輯:

我啟用了 cron 日誌,現在我檢查了我的日誌文件,它是這樣的

Feb 11 13:05:01 myserver /USR/SBIN/CRON[5652]: (root) CMD ("/home/dump/sqldump.sh")

但僅此而已,僅此而已……

腳本作為特定使用者工作但失敗的通常cron原因是因為cron在受限環境下執行,特別是最小的PATH.

您的腳本 - 以及您的crontab條目 - 需要使用完整路徑引用其他執行檔/腳本,例如 use/usr/bin/mysqldump而不僅僅是mysqldump.


編輯:根據您的評論,您應該將腳本更改為以下內容,即確保您使用完整路徑mysqldumpgzipdate

#!/bin/bash
DATE=`/bin/date +"db-%d-%m-%Y"`
/usr/bin/mysqldump -u user -ppassword mydb | /bin/gzip > /home/dump/$DATE.sql.gz

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