需求:需要将本服务器上的文件压缩后发送到指定的备份服务器上,并且只保留最新的两个
思路:
1.将需要备份的文件夹压缩
tar -zcvf 压缩后的名字.tar.gz 压缩的文件夹
2.通过scp命令传输压缩文件到指定的服务器
scp 压缩文件 root@服务器地址:接受的目录
3.只保留最近的两次压缩包(删除本机上和目标服务器的其余压缩包)
新建脚本touch bak.sh
bak.sh代码:
#!/bin/bash#获取当前日期
date=$(date +%Y%m%d)#压缩
tar -zcvf /data/nuo4-bak/nuo4-"$date".tar.gz /data/nuo4#传输到xxx.xx.xx.xx服务器
scp /data/nuo4-bak/nuo4-"$date".tar.gz root@xxx.xxx.xx.xx:/data/nuo4-bak#查找出两个月之前的压缩包并删除
find /data/nuo4-bak/ -mtime +65 -name "nuo4-*.tar.gz" -exec rm -f {} \;
将文件夹压缩并且根据日期命名
使用scp将文件传输到指定服务器
关于scp文件免密传输看我上一篇博客
传输后使用find命令查找出65天未修改的文件并且删除
定时任务执行
crontab -e
0 2 * * * /data/bak/bak.sh
每天两点执行备份脚本