删除所有/var/log?

33 linux logging

我可以删除所有内容/var/log吗?或者我应该只删除文件(递归)/var/log但保留文件夹?

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

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

jos*_*chi 25

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

您永远不知道何时真正需要某个时间之前的日志,因此最好将它们存档(直到合理的期限,例如 3 个月)。

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

  • 好吧,恕我直言,在某些情况下,删除所有日志非常有意义。例如,我想构建一个用于新部署的虚拟机映像。不用说,我希望它是一个真正干净的系统,没有保存任何日志、历史记录、缓存等。 (9认同)
  • @countermode 你从来没有怀旧的心情吗?喜欢看 3 个月大的日志文件,想着美好的时光吗? (5认同)
  • logrotate 还可以删除最旧的文件。 (3认同)
  • 对不起,但查看三个月前的日志文件是考古学。如果您收集日志以识别问题,请快速评估它们。 (3认同)

bin*_*dbn 24

删除所有文件:

find /var/log -type f -delete
Run Code Online (Sandbox Code Playgroud)

删除所有 .gz 和旋转文件

find /var/log -type f -regex ".*\.gz$"
find /var/log -type f -regex ".*\.[0-9]$"
Run Code Online (Sandbox Code Playgroud)

尝试在没有“-delete”的情况下运行命令来测试它。


wol*_*gsz 18

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

正如 joschi 指出的那样,没有理由这样做。我有运行的 debian 服务器,多年来没有删除一个日志文件。


小智 11

我正在从 master 克隆虚拟机。清除 master 上的日志是非常有意义的,这样当您启动克隆时,您将不会获得 master 的日志。我在 tcsh 中做了:

cd /var/log
foreach ii ( `find . -type f` )
foreach? cp /dev/null $ii
foreach? end
Run Code Online (Sandbox Code Playgroud)

清除日志但保留文件。

  • 在 bash 中: find /var/log/ -type f -exec cp /dev/null {} \; (5认同)

Ped*_*ito 9

不删除文件的情况下清理 Linux 系统上的所有日志:

for CLEAN in $(find /var/log/ -type f)
do
    cp /dev/null  $CLEAN
done
Run Code Online (Sandbox Code Playgroud)

Samba ( /var/www/samba) 创建带有 ip 地址的日志文件名,您可能想要删除它们:

for CLEAN in $(find /var/log/samba -type f)
do
    rm -rf $CLEAN
done
Run Code Online (Sandbox Code Playgroud)

  • 有用的脚本。 (2认同)