首先,我說它無法與crontab正常工作,因爲當我手動運行腳本時,它工作正常。TAR無法正常工作與crontab
問題是,當我使用cronjob運行備份腳本,並且它來打開mysql轉儲時,tar歸檔文件只有16
字節大小(並且它是空的,所以它看起來像沒有文件打包到檔案中),奇怪的是,當我手動運行腳本時,它運行了將近5分鐘,tar包的大小爲~1.8GB
。
這裏是我的bash代碼:
#!/usr/local/bin/bash
# Configuration
BACKUPD="/backup/mysql"
MySQLuser='root'
MySQLpass='xxxx'
# End configuration
ROK=`date +%Y`
MIESIAC=`date +%m`
DZIEN=`date +%d`
GIM=`date +%H-%M`
if [ -d $BACKUPD/$ROK/$MIESIAC/$DZIEN ]
then
echo
else
mkdir -p $BACKUPD/$ROK/$MIESIAC/$DZIEN
fi
for db in $(echo "SHOW DATABASES;" | mysql --user=$MySQLuser --password=$MySQLpass | grep -v -e "Database" -e "information_schema")
do
mysqldump --skip-lock-tables --ignore-table=log.log --user="$MySQLuser" --password="$MySQLpass" $db >$BACKUPD/$ROK/$MIESIAC/$DZIEN/$db.sql
done
cd $BACKUPD/$ROK/$MIESIAC/$DZIEN && tar jcPf $BACKUPD/$ROK/$MIESIAC/$DZIEN/mysql-$GIM.tar.bz2 *.sql && rm -rf *.sql
問題出在哪裏?有沒有人遇到過這樣的問題?
問候。
一般來說,最好包含任何非內部命令的路徑。在我的系統焦油會/斌/焦油 – gview
@gview我得到了你的觀點,但我認爲心不是焦油本身的問題,而是mysqldump的,不甩什麼,然後焦油沒有一個文件打包,所以它是空的。 – Lucas
嘿,你的腳本對我來說工作得很好。你可以粘貼你的'crontab'進入和'輸出,bash' – Suku