python创建带有时间的文件,并将top输出到此文件
2024-08-07 本文已影响0人
彩色的炮灰
前言:
记录top命令,查看内存使用情况,追踪进程运行情况。
方法
1、在Python中,你可以使用subprocess
模块来运行top
命令,并将输出重定向到一个带时间戳的文件中。:
- 在此服务器创建目录:/root/top_output
- 将python脚本存放到此目录,
- 编辑脚本内容如下:vim top.py
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
和-n
是top
命令的参数,-b
表示批处理模式,-n
后跟数字表示运行次数。这里设置为1表示top
命令将只运行一次,并将输出存储到指定的文件中。文件名包含了时间戳,确保每个文件名都是唯一的。
top -c:显示命令完整路径,就是COMMAND字段对应的值
top -o %MEM:统计各进程内存占用,默认降序
2、定时任务
- 将它添加到crontab中,定时执行。例如,每5分钟自动执行一次
*/5 * * * * cd /root/top_output/ && python3 top.py
这里需要注意一下,先cd到目录,再执行python 脚本。
在哪个目录执行python,输出会在此目录。