Linux上定期清空持续输出的日志文件


undefinedundefined

Linux定期清空持续输出的日志文件的方法(nohup)

前言#

在nohup输出文件过程中,很容易出现输出日志文件过大的问题,网上的炫技大佬们太多了,让愚钝的阿瓜很难一下子捕捉到关键信息,虽然方法很简单,但阿瓜记性很差,难免以后不会手忙脚乱,故记录一下阿瓜找到的在不打断进程的条件下定期清空文件最简单的方式,以备后日所需或帮助看到它的你。

方法#

  1. 新建脚本,随意命名,此处命名为 clear.sh ,编辑脚本如下:<\br>
Copy
cat /dev/null > $1

如若只用在清空一个文件上,可以把 $1 替换成文件路径,不需要引号,在第三步中也无需额外参数。

  1. 为这个脚本赋予执行权限,在命令行执行:
Copy
chmod +x clear.sh

或:

Copy
chmod 777 clear.sh
  1. 设置 crond 命令,指定定期间隔:
Copy
crontab -e

进入编辑模式后,加入要定期执行的命令,多个命令换行输入即可,如需关停则直接删除相应行,文件路径最好写绝对路径,因为绝对路径绝对不会出错。若要指定每分钟执行一次清空 /data/nohup.out 文件的命令,且脚本绝对路径为 /data/clear.sh,输入的命令如下:

Copy
* * * * * /data/clear.sh "/data/nohup.out"
  1. 首次输入时会让用户选择编辑器,只会用 vim 的瓜师傅选择带 vim 的选项!

  2. vim 编辑器下,按 i 进入编辑模式,编辑完成后,按 : 返回终端模式,输入 wq! ,保存并强制退出。

  3. 定时设置:
    最开始的五个位置分别为 分 时 日 月 星期几

  1. 若某个位置为 * ,表示每分/小时/天/月/周都执行一次

  2. 若某个位置为数字,则指定时间,如:2 * * * * 表示每小时的第2分钟执行一次

  3. 若某个位置为 数字-数字 的形式,则指定时间范围,如 2-5 * * * * 表示每小时的第2到第5分钟执行一次

  1. 不管写上去的任务多久执行一次, crontab 是每分钟都要检查一次有没有脚本要执行的
posted @   瓜瓜没有瓜子  阅读(479)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
CONTENTS

"『一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!』"

点击右上角即可分享
微信分享提示