首先,我说它不能与 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
哪里有问题?以前有没有人遇到过这样的问题?
问候。