欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

linux 服务器自动备份脚本的方法(mysql、附件备份)

程序员文章站 2023-11-02 12:33:28
一、创建backup.sh脚本文件 #!/bin/sh source_folder=/data db_folder=/data/db backup_folder=/da...

一、创建backup.sh脚本文件

#!/bin/sh
source_folder=/data
db_folder=/data/db
backup_folder=/data/backup
tm=`date +%y%m%d%h%m%s`
echo start to dump mysql database and backup files at $tm
# delete old sql backup files
cd $db_folder
rm -rf $db_folder/*.sql
#dump mysql data
/usr/bin/mysqldump -h127.0.0.1 -uroot -pcz_pims@2018 --single-transaction --master-data=2 --databases ms > ms-$tm.sql
echo dump db pims_hf as pims_hf-$tm.sql
/usr/bin/mysqldump -h127.0.0.1 -uroot -ppass --single-transaction --master-data=2 --databases ms_workflow > pims_hf_workflow-$tm.sql
echo dump db ms_workflow as pims_hf_workflow-$tm.sql
/usr/bin/mysqldump -h127.0.0.1 -uroot -ppass --single-transaction --master-data=2 --databases files > files-$tm.sql
echo dump db filesrv as files-$tm.sql
# delete backup files which 30 days before than today
find $backup_folder/* -type f -mtime +30 -name "*.zip" -exec rm {} \;
# compress
cd $source_folder
zip -q -r $backup_folder/db-$tm.zip db
zip -q -r $backup_folder/files-new.zip files
echo zip $source_folder files and backup to $backup_folder end
# 调用系统方式 send notice msg to 钉钉通知
curl -x post -d "templatecode=003&content=文件备份成功,备份文件保存到此目录: $backup_folder" http://127.0.0.1:8080/admin/do/notify/dingding
echo -e end backup files at $tm '\n\n\n'

二、创建定时任务

1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

crontab文件格式:

  *           *        *        *        *           command

minute   hour    day   month   week      command

分          时        天      月        星期      命令

例如:每周每月每天1点0分执行备份脚本,日志放在backup.log文件中

0 1 * * * /bin/sh /home/script/backup.sh >> /home/script/backup.log 2>&1

若测试脚本是否正常运行,可以手动执行测试

3)、查询当前用户定时任务。

总结

以上所述是小编给大家介绍的linux 服务器自动备份脚本的方法(mysql、附件备份),希望对大家有所帮助