shell
dbbackup.sh:
<code>mysqldump -uname -ppassword dbname | gzip > /www/web/mysqlbackup/xiangyanghua`date +%Y-%m-%d_%H%M%S`.sql.gz </code>
crontab
<code>37 22 * * * root /www/web/mysqlbackup/dbbackup.sh</code>
請問哪裡有問題。
shell
dbbackup.sh:
<code>mysqldump -uname -ppassword dbname | gzip > /www/web/mysqlbackup/xiangyanghua`date +%Y-%m-%d_%H%M%S`.sql.gz </code>
crontab
<code>37 22 * * * root /www/web/mysqlbackup/dbbackup.sh</code>
請問哪裡有問題。
1.直接執行指令,可以不
2.crontab服務開了沒
1 crontab 任務會用目前使用者身分去執行的,加上那個root 沒用;
2 那個指令手動執行一遍,看看能不能成功,或有無其它錯誤;
3 在你的dbbackup.sh 腳本裡面添加日誌內容輸出到文件,例如在開始行和結束行添加
<code>echo $(date)--start >> /tmp/xxx.log </code>
這種方式用來判斷這個腳本是否有執行,以及執行到哪一步出錯;
4 crontab 任務上加上執行的標準輸出和錯誤輸出
<code>37 22 * * * /www/web/mysqlbackup/dbbackup.sh > /tmp/dbback.log 2>&1 </code>
5 腳本的可執行權限
6 mysqldump 如果是源碼安裝的話,需要注意 path 環境變數的問題,crontab 可能會讀取不到路徑,所以在腳本中 mysqldump 應該寫絕對路徑;