LInux如何定时备份MySQL数据库并删除五天前备份
1、创建备份文件夹#cd /bak#mkdir mysqldata
2、编写运行脚本#nano -w /usr/sbin/bakmysql.sh注:如使用nano编辑此代码需在每行尾添加'&&'或';'连接符,否则生成的文件名末尾字符为乱码代码:#!/bin/bash# Name:bakmysql.sh# This is a ShellScript For Auto DB Backup and Delete old Backup#backupdir=/bak/mysqlbaktime=` date +%Y%m%d%H `mysql_bin_dir/mysqldump -u user -ppassword dataname1 | gzip > $backupdir/name1$time.sql.gzmysql_bin_dir/mysqldump -u user -ppassword dataname2 | gzip > $backupdir/name2$time.sql.gz#find $backupdir -name "name_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1保存退出
3、为脚本添加执行权限# chmod +x /usr/sbin/bakmysql.sh4、修改/etc/crontab(在centOS5中测试可行)#nano -w /etc/crontab在最后一行中加入:00 3 * * * root /usr/sbin/bakmysql.sh表示每天3点00分执行备份注:crontab配置文件格式如下:分 时 日 月 周 命令
4、Redhat方法:Redhat的crontab采用按时间调用4个目录(/etc/cron.hourly:每小时;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中脚本出来运行的方式。Redhat中只需要将刚才编辑的脚本复制到相应的目录即可。重启crontab# /etc/rc.d/init.d/crond restart完成。
5、恢复数据备份文件:非压缩备份文件恢复: #mysql -u root -p dataname < name2008010103.sql从压缩文件直接恢复: #gzip < name2008010103.sql.gz | mysql -u root -p dataname或:# zcat name2008010103.sql.gz| mysql -u root -p (更多服务器教程百度搜索主机侦探)