利用linux系统自带的cron 定时备份数据库,不需要写代码了

linux系统自带的cron 定时备份数据库
  本来在代码里面写了一个定时任务,每隔10分钟定时备份数据库,其他项目都没问题,原来部署的docker项目都没问题,这次新部署一个项目定时任务总是报错,报错信息:nsenter: reassociate to namespace 'ns/ipc' failed: Operation not permitted。弄起来觉得麻烦,就想了另外一个方法,利用linux系统带的crontab进行定时执行备份任务。centos 7.X系统。
  
  有需要的直接拿去用......
  1、创建备份脚本
  进入目录 /usr/local/bin/ 创建一个mysql_backup.sh 脚本,脚本名称可以自己定义。并且付给读写执行权限 chmod 777 mysql_backup.sh
创建完成之后,写脚本内容,贴在下面(记住要一行一行复制,否则可能会报错bad interpreter: Text file busy):

复制代码
#!/bin/bash

# 配置参数
BACKUP_DIR="/home/tono/sql"
FILENAME="$BACKUP_DIR/tono_$(date +\%Y\%m\%d-\%H\%M).sql"

# 执行备份语句
docker exec polo-mysql mysqldump -uroot -pkenuo@2022 --databases tono > "$FILENAME"
# 验证备份结果
if [ $? -eq 0 ]; then
    echo "[$(date)] succes: $FILENAME" >> /var/log/mysql_backup.log
else
    echo "[$(date)] fail: $?" >> /var/log/mysql_backup.log
fi

# 清理旧备份(保留最近4个文件)
find $BACKUP_DIR -name "tono_*.sql" -type f | sort -r | tail -n +4 | xargs rm -f --

2**、linux创建任务计划执行以上脚本**

在宿主机:执行命令:crontab -e 没有这个命令下载就好了。

执行上面命令后,会打开vim编辑,按insert键盘进行编辑,如下:

第一句是每隔10分钟,执行脚本。第二句是写日志。

不一定非要等10分钟,可以先执行mysql_backup.sh脚本,在此脚本所在目录下直接敲回车命令./mysql_backup.sh,成功生成sql脚本表示脚本没问题。

等待十分钟后,查看定时任务是否成功。

需要docker命令的进行数据库备份的也可以留言或联系我。

相关推荐
咸鱼2.04 小时前
【java入门到放弃】Dubbo
java·开发语言·dubbo
JAVA面经实录91710 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
许彰午12 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
Bat U13 小时前
JavaEE|多线程初阶(七)
java·开发语言
运维全栈笔记14 小时前
K8S部署Redis高可用全攻略:1主2从3哨兵架构实战
redis·docker·云原生·容器·架构·kubernetes·bootstrap
掌心向暖RPA自动化16 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
日取其半万世不竭16 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
SCBAiotAigc16 小时前
2026.5.1:`DockerDesktop must be owned by an elevated account`错误的解决办法
人工智能·docker·具身智能
TeamDev16 小时前
JxBrowser 9.0.0 版本发布啦!
java·前端·混合应用·jxbrowser·浏览器控件·跨平台渲染·原声输入
AI人工智能+电脑小能手17 小时前
【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
java·开发语言·后端·面试