转载备份。
以下脚本保存为 /etc/mysql_backup/mysql_backup.sh
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #!/bin/bash
dbserver='127.0.0.1' dbuser='root' dbpasswd='password' dbname='test_db' backtime=`date +%Y%m%d` logfile='/etc/mysql_backup/mysql_backup.log' datapath="/etc/mysql_backup/data"
echo "" >> ${logfile} echo "-------------------------------------------------" >> ${logfile} echo "备份时间为${backtime},备份数据库表 ${dbname} 开始" >> ${logfile} for table in $dbname; do cd $datapath source=`mysqldump -h ${dbserver} -u ${dbuser} -p${dbpasswd} ${table} > ${backtime}.sql` 2>> ${logfile}; if [ "$?" == 0 ];then tar zcf ${backtime}-${table}.tar.gz ${backtime}.sql > /dev/null rm -f ${backtime}.sql find $datapath -name "*.tar.gz" -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1 echo "数据库表 ${dbname} 备份成功!!" >> ${logfile} else echo "数据库表 ${dbname} 备份失败!!" >> ${logfile} fi done
|
然后加入 crontab
,凌晨四点执行:
1
| 0 4 * * * /etc/profile; bash /etc/mysql_backup/mysql_backup.sh
|
crontab 的使用方法可以参考 crontab
最后更新时间: