数据定时备份
1.创建备份目录
cd /home mkdir backup cd backup
2.创建备份shell脚本
vim bkDatabaseName.sh 输入并粘贴以下内容(注意把以下命令中的DatabaseName改为实际数据库名称): (1)不压缩: #!/bin/bash mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql (2)压缩: #!/bin/bash mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz 注意: A.把username改为实际数据库用户名 B.把password改为实际数据库密码 C.把DatabaseName改为实际备份的数据库名称 例子: (1) #!/bin/bash mysqldump -uroot -p'root' ry-vue > /home/backup/ry-vue_$(date +%Y%m%d_%H%M%S).sql (2) #!/bin/bash mysqldump -uroot -p'root' ry-vue | gzip > /home/backup/ry-vue_$(date +%Y%m%d_%H%M%S).sql.gz
3.修改shell脚本可执行权限
chmod 777 bkDatabaseName.sh
4.测试shell脚本
./bkDatabaseName.sh
5.添加定时任务(每日凌晨3点1分整)
crontab -e 并写入: 1 3 * * * /home/backup/bkDatabaseName.sh
注意:如果/home/backup/bkDatabaseName.sh脚本有docker exec命令不要加-it参数,否则定时任务执行失败,因为 -it 参数就开启了一个终端,计划任务是无法进入任何终端的
6.测试定时任务
执行几次ls命令查看备份目录是否有文件创建;如果任务执行失败,查看以下日志:
tailf /var/log/cron
7.删除3天前的备份(/home/backup/delete.sh)
(1)不压缩 #!/bin/bash find /home/backup/ -mtime +3 -name "*.sql" | xargs -i mv {} /home/backup/recycle/; find /home/recycle/ -name "*.sql" -exec rm -rf {} \; #find /home/backup/ -maxdepth 1 -type f -mtime +3 -name "*.sql" |xargs rm -rf (2)压缩 #!/bin/bash find /home/backup/ -mtime +3 -name "*.sql.gz" | xargs -i mv {} /home/backup/recycle/; find /home/recycle/ -name "*.sql.gz" -exec rm -rf {} \; #find /home/backup/ -maxdepth 1 -type f -mtime +3 -name "*.sql.gz" |xargs rm -rf (3)定时任务(每日凌晨3点30分整) crontab -e 并写入: 30 3 * * * /home/backup/delete.sh