在Linux或者UNIX中清空或者删除日志文件

时间:2020-01-09 10:43:13  来源:igfitidea点击:

如何在Linux中删除日志文件而不干扰正在运行的应用程序?
有没有在Unix上清除日志文件的正确方法?
您可以简单地使用> filename语法截断日志文件。
例如,如果日志文件名为/var/log/foo,请以root用户身份尝试使用>>/var/log/foo`。

如何从命令行清除日志文件的内容

假设您要清除名为/var/log/messages的日志文件的内容,请运行:

# >/var/log/messages

以下与各种Linux或者Unix Shell兼容:

: > /var/log/messages

验证文件大小:

# ls -l /var/log/messages

如果您确实要删除文件,请输入以下rm命令:

# rm /var/log/message

使用truncate删除Linux或者UNIX中的日志文件

使用truncate命令将每个FILE的大小缩小或者扩展到指定的大小。
因此,清除名为www.theitroad.local_access.log的日志文件的正确方法是运行以下命令:

# cd /var/log/nginx/
# ls -lh www.theitroad.local_access.log
# truncate -s 0 www.theitroad.local_access.log
# ls -lh www.theitroad.local_access.log

从命令行清除名为/var/log/nginx/www.theitroad.local_access.log的文件的内容

其他在Linux中清空或者删除大文件内容的命令

试试cat命令:

cat /dev/null > www.theitroad.local_access.log

或者cp命令:

# cp /dev/null /var/log/nginx/php_error.log

在Linux或者Unix上如何使用dd清除日志文件?

执行dd命令,如下所示:

# dd if=/dev/null of=/path/to/log/file
# dd if=/dev/null of=/var/log/lighttpd/error_log

如何使用echo/printf在Linux中清空或者截断文件

另一种方法是使用echo命令:

# echo -n "" > /path/to/java/appserver.log

日志转储工具

更好的方法是使用logrotate工具。
它旨在简化对生成大量日志文件的系统的管理。
它允许自动旋转,压缩,删除和邮寄日志文件。
每个日志文件都可以每天,每周,每月或者当它变得太大时进行处理。