Linux
crons 不工作,但腳本……知道它是什麼嗎?
我在網上查了一下,這可能是一個普遍的問題,但我不知道如何解決,他們說的所有事情都不是我的情況……
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
.編輯:根據您的評論,您應該將腳本更改為以下內容,即確保您使用完整路徑
mysqldump
,gzip
和date
:#!/bin/bash DATE=`/bin/date +"db-%d-%m-%Y"` /usr/bin/mysqldump -u user -ppassword mydb | /bin/gzip > /home/dump/$DATE.sql.gz