#shell脚本删除超过指定大小的日志文件
执行方式:sh 脚本名称 要删除的文件绝对路径 文件大小
例如:sh /work/sh/timing_to_deleted_file.sh /tmp/asyn_game_channel.log 10 >> /work/sh/timing_to_deleted_file.log
#!/bin/sh
filename=$1 #输入要删除的文件带绝对路径
size=$2 #输入文件删除的临界值,以G为单位
checkfilesize()
{
time=$(date "+%Y-%m-%d %H:%M:%S") #获取当前系统时间
if [ ! -f "$filename" ] #没有文件则创建文件
then
touch $filename
echo "touch successful" >> /tmp/timing_to_deleted_file.log
fi
filesize=`ls -l $filename | awk '{ print $5}'` #获取文件本身大小
echo "文件大小为:"$filesize >> /work/sh/timing_to_deleted_file.log #输出文件大小
maxsize=$((1024*1024*1024*$size)) #最大内存10G
if [ $filesize -gt $maxsize ] #判断文件是否大于某个内存大小,
then
rm $filename #把文件删除
touch $filename #创建文件
echo "删除文件的时间为:"$time "文件名为:" $filename >> /work/sh/timing_to_deleted_file.log #将获取的系统时间追加在文件中
echo "---------------------------------------------" >> /work/sh/timing_to_deleted_file.log
else
echo $time":本次执行该文件"$filename"未达到指定大小" >> /work/sh/timing_to_deleted_file.log #本次执行该文件未达到指定大小
echo "---------------------------------------------" >> /work/sh/timing_to_deleted_file.log
fi
}
checkfilesize