我可以删除 中的所有内容/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