1.在/home/backup目录下创建一个mysqlBak.sh的文件
2.往mysqlBak.sh文件中输入
DB_NAME="myfilm"
DB_USER="root"
DB_PASS="数据库密码"
# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/backup/fivefilm"
DATE=`date +%F`
# TODO
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip >$BCK_DIR/db_$DATE.gz
#只备份30天内的数据,删除超出30的备份
find $BCK_DIR -name "*.gz" -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1
3.设置访问权限
chmod -R 777 /home/backup/mysqlBak.sh
4.linux应该都有crontab,没有的话可以安装一下:
yum install vixie-cron
yum install crontabs
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
5.安装完以后开启crontab服务
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig –level 35 crond on
也可以用设置开机自动启动crond服务:
[root@CentOS ~]# chkconfig crond on
6.设置定时器
vi /etc/crontab
在末尾插入
0 5 * * * root /home/backup/mysqlBak.sh
7.重启crond
service crond restart //重启服务
8.恢复数据库
gzip -c /home/backup/fivefilm/db_xxxx.gz > /home/backup/fivefilm/db_xxxx.sql
mysql -uroot -pxxxxxxx --database test_db < /home/backup/fivefilm/db_xxx.sql