删除所有 /var/log?

删除所有 /var/log?

我可以删除 中的所有内容/var/log吗?还是我应该仅删除 中的文件(递归)/var/log但保留文件夹?

有人有好的rm命令行吗?(我的管理技能让我很紧张。)

笔记:我正在使用 Debian。我不确定是什么版本。

答案1

您不应该删除文件,而应该旋转它们,例如使用logrotate

您永远不知道什么时候真正需要一段时间前的日志,因此最好将它们存档(最多保存到合理的时间,例如 3 个月)。

logrotate可以压缩旧的日志文件,以便它们不会占用大量的磁盘空间。

答案2

删除所有文件:

find /var/log -type f -delete

删除所有 .gz 和旋转文件

find /var/log -type f -regex ".*\.gz$"
find /var/log -type f -regex ".*\.[0-9]$"

尝试运行不带“-delete”的命令来测试它。

答案3

如果您删除 /var/log 中的所有内容,您很可能会在很短的时间内收到大量错误消息,因为其中有一些文件夹是预期存在的(例如 exim4、apache2、apt、cups、mysql、samba 等)。另外:有些服务或应用程序如果不存在则不会创建日志文件。它们至少期望存在一个空文件。因此,对您问题的直接回答实际上是“不要这样做!!!”

正如 joschi 指出的那样,没有理由这样做。我运行的 Debian 服务器多年来从未删除过任何日志文件。

答案4

清理Linux系统上的所有日志无需删除文件:

for CLEAN in $(find /var/log/ -type f)
do
    cp /dev/null  $CLEAN
done

Samba ( /var/www/samba) 使用 IP 地址创建日志文件名,您可能想要删除它们:

for CLEAN in $(find /var/log/samba -type f)
do
    rm -rf $CLEAN
done

相关内容