[Shell]备份MySQL数据库

创建备份脚本,并且自动删除十天以前的备份文件

#!/bin/bash
#备份数据库命令
#mysqldump -hHadoop1 -P3306 -uroot -proot mydb>/tmp.sql
#备份到此目录
mysqldump_dir=/usr/data/mysql/dump/
#查看mysql备份目录是否存在
if test ! -e $mysqldump_dir
then
    mkdir -p $mysqldump_dir
fi
datetime=$(date +%Y_%m_%d_%H_%M_%S)""$RANDOM
echo "***************************开始备份mysql******************************"
echo $mysqldump_dir$datetime"".sql
#备份数据库
mysqldump -hHadoop1 -P3306 -uroot -proot mydb>$mysqldump_dir$datetime"".sql
cd $mysqldump_dir
tar -czvf $datetime.tar.gz  $datetime"".sql
rm -rf $datetime"".sql
echo "******************************备份完毕********************************"
echo "*********************以下是服务器存在的SQL脚本************************"
ls -l -h $mysqldump_dir 
echo "**********************即将删除十天外的SQL脚本*************************"
find $mysqldump_dir -mtime +10 -name "*.tar.gz" -exec ls -l -h {} \;
find $mysqldump_dir -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "******************************执行成功********************************"

定时任务

需求:每天12:30分执行一次
crontab -e
30 12 * * * /opt/user/mysqldump.sh
service crond restart

以下是翻阅的一些资料,感谢以下作者

mtime详细说明

find -exec详细说明

你可能感兴趣的:(Shell)