Linux文件备份的作用较多,推荐以下几种:
- 保护文件:备份可以帮助用户保护文件,防止文件被意外删除或损坏。
- 保证系统安全和应用安全:Linux系统管理人员对系统和业务应用要有一个合理的备份恢复策略,完美的备份策略可以保证业务的0宕机时间和数据的完全恢复。
- 方便数据恢复:当数据出现问题时,可以通过备份文件快速恢复数据,减少损失。
按保留文件数
#!/bin/bash
#保留文件数
ReservedNum=5
FileDir=/home/dev/saas_test/testcases/report/html
#*.html为文件类型,不写查找所有文件
FileNum=$(ls -l $FileDir/*.html |grep ^- |wc -l)
`while(( FileNum > ReservedNum))
do
OldFile=$(ls -rt $FileDir/*.html| head -1)
echo "Delete File:" $OldFile
rm -f $OldFile
let "FileNum--"
done`
按保留天数
#!/bin/bash
############################
#保留最近N天的备份
############################
#需求
#文件备份格式为date +%F/%H/%M
#节假日不备份
#无论过几个节假日,始终保留最新N天的备份
##############模拟备份
mkdir $(pwd)/test
touch $(pwd)/test/`date -d "1 day ago" +%F-%H-%M`.tar.gz
touch $(pwd)/test/`date -d "2 day ago" +%F-%H-%M`.tar.gz
touch $(pwd)/test/`date -d "3 day ago" +%F-%H-%M`.tar.gz
##############保留最新两天的记录
ls -t $(pwd)/test/* | awk 'NR>2' | xargs rm -rf
#注:ls -t是按照时间排序,加路径主要是为了后面awk过滤出来带路径,绝对路径删除。NR指的是行号。
# ls -t $(pwd)/test/* | awk '{ print NR}' 最新的文件肯定排在前面,保留N天的就删除大于N天的。
删除超过30天的文件
find /home/ -mtime +30 -name *.tar.gz -exec rm -rf {} \;