Shell脚本—Find、Grep和Xargs的使用
公司每天都会定时打包出备份包,按照要求,日备份保留三天备份包,月备保留一个备份包。现要写一个shell脚本实现日备保留三天备份包功能。
脚本内容如下:
#!/usr/bin/bash
##backup delete
##shanhai
**# app日备包删除**
find /data/backup/ -mtime 3 -name "app_backup_*.tar.gz" | grep -v /data/backup/app_backup_old/ | xargs -i rm -rf '{}'
#目录 #轮询时间,n为修改时间n,-n为修改时间小于n,+n为修改时间大于n # -name 查找备份包名 # grep -v 忽略目录 # xargs查找完成后进行的操作
**# confluence日备包删除**
find /home/gbase/app/confluence/data/backups/ -mtime 3 | grep "backup-" | xargs -i rm -rf '{}'
**# scm月备包删除**
find /data/backup/scm_backup/ -mtime 15 | grep "scm_backup_" | xargs -i rm -rf '{}'
计划任务crontab脚本内容如下:
0 0 * * * /usr/bin/python3 /home/gbase/app/bacup.py #日备脚本
0 2 25 * * /usr/bin/sh /home/gbase/app/gitlab_backup.sh #gitlab代码库备份脚本
0 3 25 * * /usr/bin/python3 /home/gbase/app/gitlab_backup.py #代码备份邮件脚本
0 4 5,20 * * /usr/bin/sh /home/gbase/app/scm_backup.sh #scm版本库备份脚本
0 5 5,20 * * /usr/bin/python3 /home/gbase/app/scm_backup.py #scm备份邮件脚本
0 8 * * * /usr/bin/sh /home/gbase/app/backup_delete.sh #备份包定时删除脚本