用Python写一个Linux巡检脚本
时间: 2023-09-11 10:05:02 浏览: 120
### 回答1:
好的,下面是一个简单的Python脚本,可以用于巡检Linux系统的基本信息:
```
import platform
def check_system_info():
# 获取操作系统名称及版本
os_name = platform.system()
os_release = platform.release()
print("操作系统名称: ", os_name)
print("操作系统版本: ", os_release)
# 获取系统的主机名
host_name = platform.node()
print("主机名: ", host_name)
# 获取 CPU 信息
cpu_info = platform.processor()
print("CPU信息: ", cpu_info)
# 获取内存信息
mem_info = platform.platform()
print("内存信息: ", mem_info)
if __name__ == '__main__':
check_system_info()
```
这段代码可以帮助您收集系统的一些基本信息,如操作系统名称和版本、主机名、CPU信息和内存信息等。
### 回答2:
写一个Linux巡检脚本可以帮助管理员自动检查系统的各个方面,提高系统的稳定性和安全性。以下是一个简单示例:
```python
#!/usr/bin/python
# coding: utf-8
import subprocess
# 检查CPU使用情况
def check_cpu_usage():
result = subprocess.run(['top', '-n', '1'], capture_output=True, text=True)
lines = result.stdout.split('\n')
for line in lines:
if line.startswith('Cpu'):
print(line)
break
# 检查内存使用情况
def check_memory_usage():
result = subprocess.run(['free', '-m'], capture_output=True, text=True)
lines = result.stdout.split('\n')
for line in lines:
if line.startswith('Mem'):
print(line)
break
# 检查磁盘使用情况
def check_disk_usage():
result = subprocess.run(['df', '-h'], capture_output=True, text=True)
lines = result.stdout.split('\n')
for line in lines:
if line.endswith('/'):
print(line)
break
# 检查网络连接状态
def check_network_status():
result = subprocess.run(['ping', '-c', '3', 'www.google.com'], capture_output=True, text=True)
if '3 packets transmitted, 3 received' in result.stdout:
print('Network is connected')
else:
print('Network is disconnected')
if __name__ == "__main__":
print("CPU Usage:")
check_cpu_usage()
print("Memory Usage:")
check_memory_usage()
print("Disk Usage:")
check_disk_usage()
print("Network Status:")
check_network_status()
```
这个脚本会分别调用`top`命令获取CPU使用情况、`free`命令获取内存使用情况、`df`命令获取磁盘使用情况,并使用`ping`命令检查网络连接状态。然后将结果输出到控制台。你可以根据自己的需求修改和添加其他检查内容。
### 回答3:
编写一个Linux巡检脚本可以使用Python的subprocess模块和os模块进行系统命令执行和文件操作。以下是一个简单的示例:
```python
import subprocess
import os
def run_command(command):
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()
if process.returncode != 0:
raise Exception(f"Command execution failed: {error.decode('utf-8')}")
return output.decode('utf-8')
def check_file_exists(file_path):
if not os.path.exists(file_path):
print(f"File {file_path} does not exist")
def check_process_running(process_name):
output = run_command(f"ps aux | grep {process_name} | grep -v grep")
if output.strip() == "":
print(f"Process {process_name} is not running")
def check_disk_usage():
output = run_command("df -h")
print(output)
def check_memory_usage():
output = run_command("free -h")
print(output)
def main():
check_file_exists("/var/log/syslog")
check_process_running("apache2")
check_disk_usage()
check_memory_usage()
if __name__ == "__main__":
main()
```
以上是一个简单的Linux巡检脚本示例,它检查指定的文件是否存在,指定的进程是否在运行,并显示磁盘和内存使用情况。你可以根据自己的需求进行扩展和修改。
阅读全文