pyl*_*ver 22 command-line scripts files log
谁能给我一个截断/var/log/目录中所有日志文件的解决方案?
以及一个仅针对知识的问题,这是一个好主意吗?
#!/bin/bash
LOGDIR="/var/log"
for logfile in $(ls $LOGDIR/*log)
do
truncate -s 0 $logfile
done
Run Code Online (Sandbox Code Playgroud)
msa*_*ord 11
如果要清除所有日志文件,而不仅仅是一级日志文件夹中的日志文件,可以使用:
shopt -s globstar # if needed
truncate -s 0 /var/log/*.log # first-level logs
truncate -s 0 /var/log/**/*.log # nested folders, like /var/log/nginx/access.log
Run Code Online (Sandbox Code Playgroud)
请注意,如果您已经logrotate运行,则还需要清除轮换.gz日志:
find /var/log -type f -name '*.[0-99].gz' -exec rm {} +
Run Code Online (Sandbox Code Playgroud)
例如,一个有效的用途可能是构建一个用于分发的 VM 设备容器。
你应该不会需要做到这一点作为日常维护的一部分:如DEN非常正确建议,用logrotate了点。