mysql备份脚本

!/bin/sh
# mysql_backup.sh: backup mysql databases and keep newest 5 days backup.
# -----------------------------
db_user="root"
db_passwd="linuxtone"
db_host="localhost"

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

# date format for backup file (dd-mm-yyyy)
time="$(date +"%d-%m-%Y")"
######以上都是变量定义,$(date +"%d-%m-%Y")是引用date命令的结果
# mysql, mysqldump and some other bin's path
MYSQL="$(which mysql)"
MYSQLDUMP="$(which 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
#####条件测试语句:如果目录$backup_dir不可写则输出错误信息(echo)且退出(exit 0).
(&&的意思是前面的为真才执行后面的);如果可写则执行下面语句。
# the directory for story the newest backup
test ! -d "$backup_dir" && $MKDIR "$backup_dir"
#####条件测试语句:如果目录$backup_dir不是目录,则创建该目录
# get all databases

for db in cdn cdn_view
do
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/$time.$db.gz"
done
####for循环,mysqldump备份数据库cdn、cdn_view,而且指定了用户名、主机、密码,压缩为$backup_dir/$time.$db.gz
#delete the oldest backup 30 days ago
find $backup_dir -name "*.gz" -mtime +30 |xargs rm -rf
######find+xargs找到$backup_dir目录下后缀为.gz且30天没动过的文件,杀之
exit 0; ######退出脚本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值