最近,有一个需求需要对数据库进行双重机器备份。备份是每天早晨的备份,并且需要主机来保留记录的最后15天。仔细研究(疯狂的百度),我们决定使用Shell脚本来添加定时任务来满足这一需求。
考虑到一些朋友MySQL使用Docker部署,我们还将在Docker环境中发布部署脚本。
环境准备:
期望命令的脚本是离线粘贴的
放置上述脚本所需的两个包的下载地址
http://nchc.dl.sourceforge.net/sourceforge/tcl8.4.11-src.tar.gz
http://sourceforge.net/projects/expect/expect/5.45/expect5.45.45.tar.gz/download
让我们手动确认脚本的密钥命令,以确保可以正常执行脚本。
SQL脚本正常导出。
第一个副本失败了,因为另一台计算机需要确保路径/data/mysql_backup/此路径存在,并且它可以再次成功。
1.非dockermysql
2. Docker Container Mysql
注意:如果您是直接从Windows上传的Shell脚本,则应报告以下错误。
这是因为还有更多备份文件吗?
一般原因是Windows中创建的文件格式是由于DOS格式引起的。
解决方案如下:
1.在Windows下转换:
使用诸如UltraeDitit或EditPlus之类的工具来切换脚本编码,然后将其放入Linux中。转换方法如下(Ultraedit):file-> consventions-> dos-> unix。
2.将vim转换为使用linux下的vim打开sh文件,enter :: set ff enter,dishing file format = dos,并设置redo :: set ff = unix save exit :: wq的文件格式
重新执行命令
添加如下以下
正面是玉米表达,代表每天三点钟。
在此处放置一个可以在Cron表达式中使用的段落。
稍后是Shell脚本的绝对路径,稍后将添加到日志文件中。
保存并退出。
此时,任务已经完成!
原始:https://juejin.cn/post/712195576786684104