在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工具。
它旨在简化对生成大量日志文件的系统的管理。
它允许自动旋转,压缩,删除和邮寄日志文件。
每个日志文件都可以每天,每周,每月或者当它变得太大时进行处理。