写一个监控Linux系统运行的python脚本
时间: 2024-05-09 12:20:58 浏览: 9
以下是一个简单的Python脚本,可以监控Linux系统的CPU和内存使用情况,并将结果输出到控制台。
```
import psutil
import time
def get_cpu_usage():
return psutil.cpu_percent()
def get_mem_usage():
return psutil.virtual_memory().percent
while True:
cpu_usage = get_cpu_usage()
mem_usage = get_mem_usage()
print("CPU Usage: {}%".format(cpu_usage))
print("Memory Usage: {}%".format(mem_usage))
time.sleep(1)
```
该脚本使用了psutil模块来获取CPU和内存使用情况。get_cpu_usage()函数返回当前CPU的使用率,get_mem_usage()函数返回当前内存的使用率。然后,脚本使用一个无限循环来不断输出CPU和内存使用情况,并在每次输出后暂停1秒钟。
该脚本可以在Linux系统中运行,并且可以使用Ctrl+C来停止运行。
相关问题
在Linux上使用python脚本执行定时监控命令
要在Linux上使用Python脚本执行定时监控命令,你可以使用以下步骤:
1. 创建一个Python脚本,例如`monitor.py`。
2. 使用`os.system`函数或`subprocess`模块中的`run`函数来执行要监控的命令。例如,如果要监控一个名为`example.sh`的Shell脚本,可以使用以下代码:
```python
import subprocess
subprocess.run(['./example.sh'])
```
3. 使用`time`模块中的`sleep`函数来设置监控间隔。例如,如果要每隔5分钟执行一次监控命令,可以使用以下代码:
```python
import time
import subprocess
while True:
subprocess.run(['./example.sh'])
time.sleep(300) # 300秒,即5分钟
```
4. 使用Linux的定时任务工具`crontab`来定期运行Python脚本。打开终端并输入`crontab -e`来编辑当前用户的定时任务列表。在文件末尾添加以下行:
```
*/5 * * * * /usr/bin/python3 /path/to/monitor.py
```
这将在每个小时的每个五分钟执行一次`monitor.py`脚本。请将`/path/to/monitor.py`替换为您的脚本的实际路径。
5. 保存并退出`crontab`编辑器。您的Python脚本现在将在指定的时间间隔内定期运行,并执行您要监控的命令。
使用python编写一个linux系统的系统监控脚本,要求有服务自启动功能
以下是一个简单的系统监控脚本,它可以监控系统的CPU、内存和磁盘使用情况,并在需要时自动重启指定的服务。该脚本可以在Linux系统上使用。
```python
import psutil
import subprocess
import time
# 要监控的进程名
process_name = "nginx"
# 要监控的磁盘路径
disk_path = "/"
# 要监控的CPU和内存使用率阈值
cpu_threshold = 80.0
mem_threshold = 80.0
# 自启动命令
start_command = "systemctl start nginx.service"
while True:
# 获取CPU和内存使用率
cpu_usage = psutil.cpu_percent()
mem_usage = psutil.virtual_memory().percent
# 获取磁盘使用情况
disk_usage = psutil.disk_usage(disk_path).percent
print("CPU usage: {}%, memory usage: {}%, disk usage: {}%".format(cpu_usage, mem_usage, disk_usage))
# 如果CPU或内存使用率超过阈值,或磁盘使用率超过90%,则重启指定的进程
if cpu_usage > cpu_threshold or mem_usage > mem_threshold or disk_usage > 90:
print("Restarting process {}...".format(process_name))
subprocess.call(start_command.split())
time.sleep(60) # 每60秒检查一次
```
要使用此脚本进行系统监控,请将其保存为`monitor.py`,然后在终端中运行以下命令:
```
python3 monitor.py
```
该脚本将在后台运行,并每60秒检查一次系统使用情况。如果CPU或内存使用率超过阈值,或磁盘使用率超过90%,则脚本将重启指定的进程(在本例中为nginx)。如果您希望监控其他进程,请将`process_name`变量更改为所需的进程名。如果您希望监控其他磁盘,请将`disk_path`变量更改为所需的路径。您还可以更改CPU和内存使用率阈值,以更好地适应您的系统。