#!/bin/bash
NOW=$(date +%Y%m%d)
touch /tmp/$NOW"_"backup #最好随机命名,以免与原有文件的名字冲突
touch /home/logs/$NOW >/dev/null
find $(pwd) -mtime +5 | egrep -v "^$|$0" >> /home/logs/$NOW
find $(pwd) -mtime +5 | awk -F '/' '{print $4}' | egrep -v "^$|$0|files" >>/tmp/$NOW"_"backup
#上一行awk语句,也可用basename命令直接返回不带路径的文件名
function readline(){
while read LINE
do
tar -czvf /home/backup/$LINE"_"$NOW.tar.gz $LINE > /dev/null
done < /tmp/$NOW"_"backup
}
readline
知识点:
date格式、查找五天之前的文件,awk提取文件名(不保留路径),grep用于多个条件,函数定义和调用,读取文件每行内容。
linux备份当前目录五天之前的文件。