背景:需要定期对服务器上的应用程序、Nginx、Redis等重要目录备份,以便服务器损坏可通过备份文件实现快速恢复。
注:最好使用服务器root账号,才能多各种用户的备份文件有权限
1、安装zip压缩包程序
sudo yum install -y zip
2、安装ftp客户端程序
sudo yum install -y ftp
3、创建备份脚本
vi server_backup.sh
4、脚本执行权限
chmod +x server_backup.sh
5、备份文件、目录的shell脚本server_backup.sh
#! /bin/bash
#当前服务器ip
ip='192.168.1.1'
# 备份的所有目录或文件,用空格隔开
dirs='/etc/nginx /etc/redis.conf /data/website'
#获取系统当前时间,后续将作为备份文件名后缀
time=`date +%Y%m%d_%H%M%S`
#备份路径文件
backupFileName='server_backup_'${ip}'_'${time}'.zip'
# zip压缩包密码
zippwd='123456'
#进入应用程序部署所在位置,并压缩
zip -r -q -x='*.log' -x='*.out' -P ${zippwd} ${backupFileName} ${dirs}
#连接ftp, -v 禁止显示远程服务器响应。-n 禁止自动登录到初始连接。
ftp -v -n << EOF
#ftp ip地址
open 192.168.1.2
#登陆ftp的账号密码
user root 123456
#指定传输模式
binary
#切换ftp目录
cd /backup
#上传上方生成的压缩包到上一步骤进入的目录
put ${backupFileName}
#退出ftp,这一句不写,上传完成后也可以正常退出
quit
EOF
#删除本地的压缩包,服务器节约空间
rm -f ${backupFileName}
设置定时任务
- 添加定时任务
crontab -e
- 设置时间策略
0 1 * * 1 /home/test/server_backup.sh