温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux Python脚本进行日志轮转

发布时间:2024-09-11 23:48:40 来源:亿速云 阅读:79 作者:小樊 栏目:编程语言

在 Linux 系统中,可以使用 logrotate 工具进行日志轮转

  1. 创建一个名为 logrotate_example.py 的 Python 脚本,内容如下:
import sys
import time

def main():
    count = 0
    while True:
        with open("/tmp/example.log", "a") as f:
            f.write(f"Log entry {count}\n")
        count += 1
        time.sleep(1)

if __name__ == "__main__":
    main()

这个脚本会每秒向 /tmp/example.log 文件写入一条日志。

  1. 创建一个名为 logrotate_example.conf 的 logrotate 配置文件,内容如下:
/tmp/example.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}

这个配置文件指定了日志轮转的参数:

  • daily:每天进行一次日志轮转。
  • rotate 7:保留最近 7 天的日志文件。
  • compress:压缩旧的日志文件。
  • missingok:如果日志文件不存在,不会产生错误。
  • notifempty:如果日志文件为空,不进行轮转。
  • copytruncate:在轮转之前,先复制原始日志文件,然后清空原始日志文件。这对于正在写入的日志文件非常有用。
  1. logrotate_example.conf 文件放置到 /etc/logrotate.d/ 目录下。这样,logrotate 就会自动应用这个配置文件。

  2. 运行 Python 脚本:

python logrotate_example.py &
  1. 使用 logrotate 命令手动触发日志轮转:
sudo logrotate -f /etc/logrotate.d/logrotate_example.conf

现在,你应该能看到 /tmp/example.log 文件已经被轮转,并且只保留了最近 7 天的日志文件。

注意:在实际生产环境中,你需要确保 logrotate 服务正在运行,并根据需要调整 logrotate 配置文件。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI