[login] 把这个脚本保存到`/root/backup-database.sh` ``` #!/bin/bash #数据库 username=root password=123456 database=mjj #备份目录(最后要保留斜杠,懒得多做一次判断,下面rclone的也是) backup_dir=/root/backup/database/ [[ -z ${backup_dir} ]] && mkdir -p ${backup_dir} #Rclone备份 rclone=false rclone_dir=onedrive:/backup/database/ delete_local=false #改为true表示rclone上传完就删除本地的 backup_file=${database}-$(date +"%Y%m%d_%H:%M:%S").sql.gz #backup_file=${database}-$(date +"%Y%m%d").sql.gz mysqldump -u${username} -p${password} ${database}|gzip > ${backup_dir}${backup_file} && \ if [[ "${rclone}" == "true" ]];then rclone copy ${backup_dir}${backup_file} ${rclone_dir} && \ if [[ "${delete_local}" == "true" ]];then rm -f ${backup_dir}${backup_file} fi fi ``` 复制代码 然后`crontab -e` 添加一行,表示每天8点执行这个脚本,备份数据库 `0 8 * * * bash /root/backup-database.sh` 复制代码 没想好怎么弄保留多少多少份,感觉有点繁琐 如果大家都是像我一样,按天备份 那么保留7份就可以用当天日期-7天,然后删除这个文件名对应的文件(也就是每次备份完成删除7天前的),时间会有点差异,所以就用日期加时间的通配符匹配文件(或者干脆文件名只保留日期不要时间),但如果不是按天备份(一天几份或者几天一份),就会匹配到不该匹配的文件 MJJ自己弄吧 [/login] 该部分仅登录用户可见 最后修改:2022 年 06 月 09 日 © 允许规范转载 打赏 赞赏作者 赞 如果觉得我的文章对你有用,请随意赞赏