个人博客自动备份7天内的mysql数据库

1、先写个shell脚本

#!/bin/sh
# mysql_backup.sh: backup mysql databases and keep newest 7 days backup.
# -----------------------------
db_user="taotao"
db_passwd="taotaoclothes"
db_host="127.0.0.1"
db_port="3306"

# the directory for story your backup file.
backup_dir="/home/mysqldata"

# date format for backup file (dd-mm-yyyy)
time="$(date +"%Y-%m-%d")"

# mysql, mysqldump and some other bin's path
MYSQL="/usr/bin/mysql"
MYSQLDUMP="/usr/bin/mysqldump"
MKDIR="$(which mkdir)"
RM="$(which rm)"
MV="$(which mv)"
GZIP="$(which gzip)"
#针对不同系统,如果环境变量都有。可以去掉

# check the directory for store backup is writeable
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0

# the directory for store the newest backup
test ! -d "$backup_dir" && $MKDIR "$backup_dir"

# get all databases
for db in mysql sms clothes 'clothes_v2'
do
         $MYSQLDUMP  -u $db_user -h $db_host -p$db_passwd $db -P $db_port  > "$backup_dir/$db_host-$db-$time.sql"
done

#delete the oldest backup 7 days ago
find $backup_dir -name "*.sql" -mtime +10 |xargs rm -rf

#zcat $backup_dir/$db_host-ad_db-$time.gz > $backup_dir/tmpsql &  /usr/bin/mysql -h 127.0.0.1 -u root -p'123456' ad_db< $backup_dir/tmpsql
 exit 0;

2、把shell脚本加入crontab执行

30 3 * * * /home/backup/mysqldump/mysqldump.sh

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

添加新评论

  关于博主

当你发现自己的才华撑不起野心时,就请安静下来学习吧

  近期评论

无论有多困难,都坚强地抬头挺胸,告诉所有人,你并非他们想象的那样不堪一击。

每个人心里都有一段伤痕,时间才是最好的疗剂。

人总是珍惜未得到的,而遗忘了所拥有的。

退一步,并不象征我认输;放手,并不表示我放弃;微笑,并不意味我快乐!

人海中再回首,朋友真诚依旧,生命里重逢,心境平和温柔,往事如风,岁月如歌,漫漫人生路,苍桑几许,幸福几何!