shell实现
当文件超过设定的大小之后,删除该文件

1. 监控并删除单个文件

# 设定文件路径
file_dir="文件路径"

# 取文件大小
size=`wc -c $file_dir | awk '{print $1}'`

# 判断文件大小,大于200MB自动删除
# 200 * 1024 * 1024 单位B

if [ $size -gt 209715200 ];
        then
        rm -f $file_dir
fi

# 如将以上代码写入file_y.sh
# 写到定时任务,实现了每分钟监控一次该文件,超过200MB则删除
# crontab -e
# * * * * * sh /file_y.sh

2. 监控并删除多个文件

# 设定文件路径 空格隔开
file_dir=("文件1" "文件2" "文件3" "文件...")
# 遍历文件列表
for file in ${file_dir[@]}
do
	# 取文件大小
	size=`wc -c $file | awk '{print $1}'`

	# 判断文件大小,大于200MB自动删除
	# 200 * 1024 * 1024 单位B
	if [ $size -gt 209715200 ];
	        then
	        rm -f $file
	fi
done

# 如将以上代码写入file_y.sh
# 写到定时任务,实现了每分钟检测一次指定的多个文件,超过200MB则删除
# crontab -e
# * * * * * sh /file_y.sh

3. 无休止的监控并删除多个文件

  1. 因为cron定时任务是以分钟为单位的
  2. 所以要实现秒级监控,是需要设置60条重复任务
  3. 这种情况建议单独开一个进程来实现该功能
  4. 其他语言都可以实现
# 设定文件路径 空格隔开
file_dir=("文件1" "文件2" "文件3" "文件...")
# 遍历文件列表
while true
do
	for file in ${file_dir[@]}
	do
		# 取文件大小
		size=`wc -c $file | awk '{print $1}'`

		# 判断文件大小,大于200MB自动删除
		# 200 * 1024 * 1024 单位B
		if [ $size -gt 209715200 ];
                        then
        	        rm -f $file
		fi
	done
	# 暂停1秒继续
	sleep 1
done