[实践OK]Linux:批量清空当前目录下的log的日志文件

jackxiang 2015-10-10 15:22 | |
背景:有时一次清空所有日志文件很有必要。

cat clearUpAllServersLog.sh
for i in `find /data/logs -name "*.log"`; do cat /dev/null >$i; done

更简单的写法:
for i in `find . -name "*.log*"`;do echo $i; done
for i in `find . -name "*.log"`;do echo $i; done
for i in `find . -name "*.log"`;do echo $i; done
for i in `find . -name "*.log"`;do :>$i; done

一般是>文件清空,但是前面贴着数字和:也可以
cat txt
2018年 03月 14日 星期三 14:03:56 CST
#seq 5> txt
seq: 缺少操作数
Try 'seq --help' for more information.

#seq 5 >txt
cat txt
1
2
3
4
5

因为没空来前面还是数字会意想不到的结果,规范使用最好前面空开.
>重定向是先清空文件,再执行命令写入,这里的seq 5因为5贴着,所以执行的是seq,所以会抛出命令帮助。
是清空再执行写入呢,喔,明白了 > 有两个动作。

#每天晚上凌晨零点清空各种服务生成日志
0 0 * * * /bin/bash /usr/local/scripts/clearUpAllServersLog.sh
————————————————————————————————————
1)在当前目录下,键入如下命令:
for i in `find . -name "*.log"`; do cat /dev/null >$i; done

2)执行完毕后,当前目录下的所有log日志文件就被清空了。
Linux:批量清空当前目录下的日志文件

3)再把shell命令解释一下:
find . -name "*.log"  ,就是在当前目录下查找后缀为log的文件。
cat /dev/null >$i       ,就是将每次找到的log文件清空。

参考:http://jingyan.baidu.com/article/acf728fd23a1e9f8e510a331.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/8289/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2018-3-14 14:07
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]