shell定期清理过期文件
1、功能:
定期清理过期的备份数据或日志文件
#!/bin/bash
#/初始化#
source /etc/profile #使环境变量生效#
source /home/yukw/.bash_profile #使用户环境变量生效#
#export LANG="en_US.UTF-8"
current_machine=`cat /etc/hostname |awk '{print $1}'`
CLEAR_FILE="/scripts/clear.txt"
LOGFILE="/scripts/clear.log"
#需要清理的目录
Dir1="/data/servers/logs"
Dir2="/data/servers/backup"
DAYS=30
echo "找出30前的垃圾文件 find "$Dir1/" -mtime +$DAYS -type f -name "*.txt" -print > $CLEAR_FILE" | tee -a $LOGFILE
echo "找出sif命名的文件 find "$Dir2/" -type f -name "sif*.txt" -print >> $CLEAR_FILE" | tee -a $LOGFILE
find "$Dir1/" -mtime +$DAYS -type f -name "*.txt" -print > $CLEAR_FILE
find "$Dir1/" -mtime +$DAYS -type f -name "*.tar.gz" -print >> $CLEAR_FILE
find "$Dir1/" -mtime +$DAYS -type f -name "*.log" -print >> $CLEAR_FILE
find "$Dir2/" -mtime +$DAYS -type f -name "*.tar.gz" -print >> $CLEAR_FILE
find "$Dir2/" -mtime +$DAYS -type f -name "*.txt" -print >> $CLEAR_FILE
find "$Dir2/" -mtime +$DAYS -type f -name "*.log" -print >> $CLEAR_FILE
cat $CLEAR_FILE | while read LINE_clear
do
echo "rm -rf $LINE_clear" | tee -a $LOGFILE
rm -rf $LINE_clear
done
好了,这就是shell定期清理过期文件的方法了,如有问题可与博主一起交流讨论!