2014-10-31 50 views
0

我的shell腳本可以正常工作。 但是,當我嘗試通過crontab運行沒有備份。使用crontab使用shellscript備份數據庫失敗?

這是mycrontab backuptest.sh的

* * * * * /home/mohan/sohan/backuptest.sh 

內容是

#!/bin/bash 
name=`date +%Y%m%d`.sql 
#echo $name 
mysqldump -u abc --password=abc my_db > $name 

時正常運行。但無法生成備份時通過運行crontab backup.sh工作正常

+0

我想這是因爲date命令 – user2782906 2014-10-31 14:04:53

+0

的是'在默認路徑mysqldump'('/ bin'或'/ USR/bin'或者'/ usr/local/bin')還是位於不同的位置?也許你需要爲你的腳本添加一個'PATH = ....'行...... – twalberg 2014-10-31 14:20:18

回答

0

一幾種可能性...首先,從cron運行時找不到您的程序/命令,其次,從運行時無法找到您的數據庫。

所以,首先是程序。您正在使用datemysqldump,因此在youir終端提示你需要找到它們的位置,這樣的:

which date 
which mysqldump 

此後,您可以把你得到的輸出上面到腳本的完整路徑,或在包含兩個路徑的第二行添加PATH=語句。其次,你的數據庫。它位於哪裏?如果是在/home/mohan/sohan/例如,你需要改變你的腳本是這樣的:

#!/bin/bash 
name=`/bin/date +%Y%m%d`.sql 
cd /home/mohan/sohan 
/usr/local/bin/mysqldump -u abc --password=abc my_db > $name