linux定时清空文件内容,定时记录文件大小

文章描述了一个用于定时清理目标目录下文件内容并在特定时间点清空的bash脚本,以及如何使用Crontab进行任务计划。同时提及了Java开发者的学习资源,包括一套全面的学习资料和面试题集锦。
摘要由CSDN通过智能技术生成

=================================================================

该脚本需要每小时执行一次(添加到任务计划),当时间为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]#

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

Java高频面试专题合集解析:

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,其中囊括了Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

更多Java架构进阶资料展示

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
中…(img-qVjkgnED-1713219639038)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 28
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以用 `cron` 来实现定时任务。 要想在 Linux定时清空文件内容,可以这样写脚本: ```bash #!/bin/bash # 设置要清空文件的路径 file_path="/path/to/file" # 在文件中写入空字符串,从而清空文件内容 echo "" > "$file_path" # 定时记录文件大小 while true; do # 获取文件大小 file_size=$(stat -c%s "$file_path") # 将文件大小写入另一个文件中 echo "$file_size" >> "/path/to/another/file" # 每隔一段时间(例如 1 小时)再次记录文件大小 sleep 3600 done ``` 然后,可以使用 `crontab` 命令来设置定时任务。例如,如果要每天凌晨 0 点清空文件内容,可以在命令行中输入: ```bash 0 0 * * * /path/to/script.sh ``` 这样,每天凌晨 0 点就会执行脚本,清空文件内容。 ### 回答2: 实现在Linux定时清空文件内容定时记录文件大小可以使用Shell脚本来实现。以下是一个简单的Shell脚本示例: ```bash #!/bin/bash # 定义文件路径 file_path="/path/to/file.txt" # 定义清空文件内容的函数 clear_file() { echo "" > $file_path } # 定义记录文件大小的函数 record_file_size() { file_size=$(du -h $file_path | awk '{ print $1 }') echo "$(date +"%Y-%m-%d %H:%M:%S") File Size: $file_size" >> file_size_record.txt } # 定义定时清空文件内容的任务 clear_task() { clear_file echo "$(date +"%Y-%m-%d %H:%M:%S") File Content Cleared" >> file_operation_log.txt } # 定义定时记录文件大小的任务 record_task() { record_file_size echo "$(date +"%Y-%m-%d %H:%M:%S") File Size Recorded" >> file_operation_log.txt } # 设置定时任务 # 定时清空文件内容,每天凌晨12点执行 # 定时记录文件大小,每小时执行一次 (crontab -l 2>/dev/null; echo "0 0 * * * /path/to/script.sh clear_task") | crontab - (crontab -l 2>/dev/null; echo "0 * * * * /path/to/script.sh record_task") | crontab - ``` ### 回答3: 在 Linux 下,可以使用 shell 脚本来实现定时清空文件内容定时记录文件大小的功能。 首先,需要使用 `cron` 这个定时任务工具,它可以在指定的时间间隔内自动运行脚本。我们可以创建一个 shell 脚本文件,比如 `cleanup_script.sh`,用来实现清空文件内容记录文件大小的功能。 下面是一个示例的脚本: ```bash #!/bin/bash # 清空文件内容 function clear_file() { echo -n > filename.txt echo "[$(date)] 文件内容清空" >> log.txt } # 记录文件大小 function record_file_size() { file_size=$(stat -c%s filename.txt) echo "[$(date)] 文件大小为: $file_size bytes" >> log.txt } # 在脚本运行时,先清空文件内容,再记录文件大小 clear_file record_file_size ``` 在脚本中,`clear_file` 函数使用 `echo -n > filename.txt` 命令将文件内容清空,并将清空操作的时间记录到 `log.txt` 文件中。 `record_file_size` 函数使用 `stat -c%s filename.txt` 命令获取文件的大小,并将大小和记录时间写入 `log.txt` 文件。 你可以根据自己的需求修改脚本中的文件名和日志文件名。 接下来,可以使用 `cron` 来配置定时任务,例如每天的凌晨 3 点清空文件内容记录文件大小。运行 `crontab -e` 命令可以编辑定时任务: ```bash 0 3 * * * /bin/bash /path/to/cleanup_script.sh ``` 保存并关闭文件,这样定时任务就配置完成了。脚本将在每天的凌晨 3 点自动执行,清空文件内容记录文件大小。 希望以上内容对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值