- 论坛徽章:
- 0
|
各位大虾。。我编写了个自动备份的脚本。见下
--------------------------------------------------------------------------
#!/bin/bash
DBName="atcdb"
DBUser="root"
DBPasswd="abc"
BackupPath="/usr/local/mysql/backup/"
DBPath="/usr/local/mysql"
NewFile="$BackupPath"$DBName$(date +%y%m%d).back
DumpFile="$BackupPath"$DBName$(date +%y%m%d).back
OldFile="$BackupPath"$DBName$(date +%y%m%d --date='3 days ago').back
if [ -f $OldFile ]
then
rm -f $OldFile
fi
if [ -f $NewFile ]
then
echo "$NewFile The Backup File is exists,Can't Backup!"
else
if [ -z $DBPasswd ]
then
mysqldump -u$DBUser --opt -R $DBName > $DumpFile
else
mysqldump -u$DBUser -p$DBPasswd --opt -R $DBName > $DumpFile
fi
fi
echo "The Backup Has Succeed!"
--------------------------------------------------------------------------
然后我将该脚本放到/etc/cron.d/目录下名称为“back.shell”
然后我在crontab 中新加一行“01 4 * * * root /etc/cron.d/back.shell”
表明在每天4点执行备份任务。
-------------------------------------------
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
00 4 * * * root /etc/cron.d/back.shell --新加的行
-------------------------------------------
出现的问题:每天4点确实执行了该脚本。而且备份文件也生成了。
但是我发现生成的文件大小为0,而且根本不能用。见下。
[root@FDP2 backup]# ls -l
总用量 1144
-rw-r--r-- 1 root root 0 5月 26 04:07 atcdb060526.back
于是我手工自己调用该脚本发现生成的备份文件又是正确的,并且可以用。见下
[root@FDP2 cron.d]# ./back.shell
[root@FDP2 backup]# ls -l
总用量 1144
-rw-r--r-- 1 root root 1160319 5月 26 04:02 atcdb060526.back
起初我以为是权限问题。。但是我查看/usr/local/mysql/backup目录的权限是具有root权限的。
我使用了很多方法都是这样。这是怎么会事情呢。。请高手帮我解决哈。。小弟不胜感激。。急用。 |
|