我可以删除所有内容/var/log
吗?或者我应该只删除文件(递归)/var/log
但保留文件夹?
有人有好的rm
命令行吗?(我的管理技能让我很紧张。)
注意:我正在使用 Debian。我不确定是什么版本。
jos*_*chi 25
您应该旋转它们而不是删除文件,例如使用logrotate
.
您永远不知道何时真正需要某个时间之前的日志,因此最好将它们存档(直到合理的期限,例如 3 个月)。
logrotate
可以压缩旧的日志文件,这样它们就不会占用大量磁盘空间。
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)
清除日志但保留文件。
在不删除文件的情况下清理 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)