linux定时清空文件内容,定时记录文件大小
文章目录
- 说明
- 添加任务计划说明
- 代码说明
- 结果展示
说明
该脚本需要每小时执行一次(添加到任务计划),当时间为0点或12点时,将目标目录下的所有文件内容清空,
但不删除文件,其他时间则只统计各个文件的大小,一个文件一行,输出到以时间和日期命名的文件
中,需要考虑目标目录下二级、三级等子目录的文件,该脚本只能展示一级,二级三级下的文件是不会
被扫描到的!!! 如果有二级,三级,增加一个下面的for功能,或者下面if里面的模块重复n次!
添加任务计划说明
crontab -e
:编辑当前计划任务
可以直接把下面代码复制进去保存即可【每天每小时10分执行】
#min hour day month week sh_file
10 * * * * sh /root/ccx/done.sh
保存以后执行crontab -l
:查看
代码说明
[root@centos76_1 ccx]# cat done.sh
#!/bin/bash
#################################################################
#每小时执行一次脚本(任务计划),当时间为0点或12点时,将目标目录下的所有文件内容清空,
#但不删除文件,其他时间则只统计各个文件的大小,一个文件一行,输出到以时间和日期命名的文件
#中,需要考虑目标目录下二级、三级等子目录的文件
################################################################
# 创建时间文件
logfile=/tmp/`date +%H-%F`.log
# 查看时间【小时】
n=`date +%H`
if [ $n -eq 00 ] || [ $n -eq 12 ]
then
#通过for循环,以find命令作为遍历条件,将目标目录下的所有文件进行遍历并做相应操作
# 下面的/data/log为需要操作的目录
for i in `find /data/log/ -type f`
do
# 写空
true > $i
done
else
# 下面的/data/log为需要操作的目录
for i in `find /data/log/ -type f`
do
#大小追加到这个文件下
du -sh $i >> $logfile
done
fi
[root@centos76_1 ccx]#
结果展示
可以手动执行一次该脚本的,然后去tmp目录下就可以看到统计的信息了哦。
【注:该文件每小时会生成一个】
[root@centos76_1 ~]# cd /tmp/
[root@centos76_1 tmp]# date +%H
17
[root@centos76_1 tmp]# ls | grep 17
17-2021-04-27.log
[root@centos76_1 tmp]# cat 17-2021-04-27.log
4.0K /data/log/test1
4.0K /data/log/test2
4.0K /data/log/test3
0 /data/log/test4
0 /data/log/test5
[root@centos76_1 tmp]#
还没有评论,来说两句吧...