FreeBSD下cron自动备份MySQL数据库的脚本
及crontab 保存位置
crontab保存命令存放在 /var/cron/tabs/ 目录下 按照执行的用户分类存放
用cron每天2:00自动备份MySQL数据库,文件名以当天的年月日命名,前缀为数据库名,备份后自动删除前六天的备份。
1、建备份目录,以用户user为例
$mkdir /usr/home/user/dbbak
$mkdir /usr/home/user/dbbak/user_db
2、写/usr/home/user/dbbak/dbbak.sh 脚本。DBName=数据库名 BackupPath=备份目录 DBbinPath=mysqldump等实用工具所在目录
#!/bin/sh
DBName=user_db
BackupPath=/usr/home/user/dbbak/
DBbinPath=/usr/local/bin/mysqldump
if ${DBbinPath} --opt --extended-insert=false -uroot ${DBName} > ${BackupPath}${DBName}"/"${DBName}`date "+%Y-%m-%d"`".sql" ;
then
find ${DBbinPath}${DBName}"/" -mtime +6 -exec rm {} \;
else
exit
fi
3、将dbbak.sh加入cron
最好把/etc/crontab 复制成root并放到 /var/cron/tabs/ 目录下,
并且添加一行:
0 2 * * * /usr/home/user/dbbak/dbbak.sh
因为在FreeBSD下面所有用户的cron任务都是存放在/var/cron/tabs/下面并以该用户命名的,文件内容和/etc/crontab 大致一样,只是需要去掉里面的用户名,如
0 2 * * * /usr/home/user/dbbak/dbbak.sh