Linux下Mysql备份脚本
把下方代码保存到mysqlbak.sh文件。
#!/bin/bash
# 名称:mysqlbak.sh
# 本地存放备份数据库目录
backupdir=/data/backup/database
# 如果文件夹不存在,创建文件夹
if [ ! -d $backupdir ]; then
mkdir -p $backupdir
echo -e "备份目录 $backupdir 创建成功。"
else
echo "备份目录 $backupdir 已经存在。"
fi
# 设置mysql的登录用户名和密码(根据实际情况填写)
mysql_user="root"
mysql_password="password"
mysql_host="127.0.0.1"
mysql_port="3306"
# 数据库名
mysql_name="abc_com"
# 备份文件后缀时间
time="$(date +%Y%m%d_%H%M%S)"
echo "备份开始:" $(date +"%Y-%m-%d %H:%M:%S")
# 备份全部数据库
mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password $mysql_name > $backupdir/mysql_backup_$time.sql
# 只保留7天的备份文件
# find $backupdir -mtime +1 -type f -name '*.sql' -exec rm -rf {} \;
# 只保留最新的备份文件
ls -t $backupdir/* | sed -n '2,$p' | xargs -I {} rm -rf {}
echo "备份成功:" $(date +"%Y-%m-%d %H:%M:%S")
手动备份
/bin/bash /root/backup.sh >/dev/null 2&>1
温馨提示:脚本弄好后执行看是否有问题,没问题后再设置每天自动备份。
编辑定时任务:
crontab -e
添加定时任务文件添加,为每日凌晨3点备份;定时任务时间匹配工具:https://tool.lu/crontab/
0 3 * * * sh /root/backup.sh > /dev/null 2&>1
查看定时任务:
crontab -l
参考:https://blog.csdn.net/weixin_43900374/article/details/126142590
关于shell中找不到命令的解决方法:http://www.gmloc.me/178.html
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。