出于各种原因吧,我们需要删除linux的系统日志。搜索发现直接删除日志可能会出现错误,所以最好的办法就是把日志文件内容清空并保留原文件,下面就是梦想之路找到了linux删除日志文件的方法,可以在宝塔设置定时脚本定时清理系统日志。
linux批量清空当前目录中的日志文件
for i in `find . -name "*.log"`; do cat /dev/null >$i; done for i in `find . -name "*.log"`;do >$i; done for i in `find . -name "*.log" -o -name "*.out" -o -name "*.sql"`;do >$i; done
梦想之路这里使用的是第一条脚本,前提是需要ssh登录vps以后进入到需要清理的日志文件夹,这是shell的一条for语句,i是变量,find . -name "*.log" ,就是在当前目录下查找后缀为log的文件。cat /dev/null >$i,就是将每次找到的log文件清空。
改进后的linux清理系统日志语句
我们可以ssh工具登录vps之后直接复制此语句并执行:
for i in `find /var/log -name "*.log"`; do cat /dev/null >$i; done #循环查找/var/log目录下所有.log文件并清空其内容
更暴力的清理linux系统日志方法
for i in `find /var/log -name "*"`; do cat /dev/null >$i; done #循环查找/var/log目录和其子目录下所有文件并清空其内容
以上经过测试确实可行,我们可以在宝塔面板里设置定时shell任务清理系统日志,当然还有更多的用法大家可以自行联想。当然梦想之路是个小白,这也只是自己参照大佬的例子自行联想的,如果有不恰当的地方请勿喷。
参考资料:
Linux find 命令 https://www.runoob.com/linux/linux-comm-find.html
自动删除n天前日志 https://www.cnblogs.com/peida/archive/2013/03/25/2980121.html
Linux批量清空当前目录中的日志文件 https://www.cnblogs.com/qmfsun/p/6639484.html