1、编写shell脚本(文件名:db_backup_task.sh,放在/usr/local/software/shell下),按自己实际数替换下面的值(解释:databases中括号为一个集合,多个数据库名以空格隔开)(注意:如密码中有$,则需要转义)
#备份保存路径
backup_dir=/opt/backup/db/
#日期
dd=`date +%Y%m%d`
#用户名
username=root
#密码
password=T0cers0ft1@3\$5^
#将要备份的数据库
databases=(youxiatrip )
for database_name in ${databases[@]};
do
#判断文件夹是否存在,不存在则创建
if [ ! -d "$backup_dir$database_name" ]; then
mkdir -p $backup_dir$database_name
fi
cd $backup_dir$database_name
/usr/local/mysql/bin/mysqldump -u$username -p$password -R $database_name > $database_name$dd.sql
#压缩
tar -czf $database_name$dd.tar.gz $database_name$dd.sql
#删除源文件
rm -rf $database_name$dd.sql
#删除7天之前的数据
find . -mtime +7 -name "*.*" -exec rm -Rf {} \;
done
注:上面mysqldump路径要根据服务器实际安装位置填写,可使用如下命令查看:whereis mysqldump
2、验证脚本的正确性
直接在脚本所在目录输入./db_backup_task.sh(注意:斜杠前面有个点要加上,xxx改成自己的脚本名称)
如执行显示没有权限:输入chmod 777 xxx.sh添加权限
如报错根据报错信息自行解决