在 Linux 中,清空日志文件有多种安全、常用的方法,取决于你想“清空但不删除文件”还是“直接删除”。
truncatetruncate -s 0 /var/log/messages
✅ 清空文件内容
✅ 文件还在,权限不变
✅ 正在写入的进程不会出错
> 重定向(最常用)> /var/log/messages
或
: > /var/log/messages
✅ 简单高效
✅ 不影响文件本身
cat /dev/nullcat /dev/null > /var/log/messages
✅ 传统写法,效果同上
journalctl --vacuum-size=0
或只清理某个服务:
journalctl --vacuum-time=1s
logrotate -f /etc/logrotate.conf
✅ 适合长期维护
rm /var/log/messages
❌ 可能导致正在写日志的进程报错
❌ 需要重启服务才能重新生成
/var/log/messages
/var/log/syslog
/var/log/nginx/access.log
/var/log/nginx/error.log
for f in /var/log/*.log; do
truncate -s 0 "$f"
done
如果你能告诉我:
我可以给你最安全准确的命令。