python创建带有时间的文件,并将top输出到此文件

2024-08-07  本文已影响0人  彩色的炮灰

前言:
记录top命令,查看内存使用情况,追踪进程运行情况。

方法
1、在Python中,你可以使用subprocess模块来运行top命令,并将输出重定向到一个带时间戳的文件中。:

import subprocess
import time
import os
 
# 自定义环境变量,防止crontab 输出列不全
os.environ['COLUMNS'] = '300'
# 创建带有时间戳的文件名
timestamp = time.strftime("%Y-%m-%d_%H-%M-%S")
filename = f"top_output_{timestamp}.txt"
 
# 运行top命令,并将输出重定向到文件
with open(filename, 'w') as file:
    subprocess.run(['top','-c','-o','%MEM', '-b', '-n', '1'], stdout=file)

这段代码使用subprocess.run函数运行top命令,-b-ntop命令的参数,-b表示批处理模式,-n后跟数字表示运行次数。这里设置为1表示top命令将只运行一次,并将输出存储到指定的文件中。文件名包含了时间戳,确保每个文件名都是唯一的。
top -c:显示命令完整路径,就是COMMAND字段对应的值
top -o %MEM:统计各进程内存占用,默认降序

2、定时任务

*/5 * * * * cd /root/top_output/ &&  python3 top.py

这里需要注意一下,先cd到目录,再执行python 脚本。
在哪个目录执行python,输出会在此目录。

上一篇 下一篇

猜你喜欢

热点阅读