- 输入一个用户名判断是否存在
导入模块
import subprocess
获取用户的输入
user = input(">>:")
执行操作系统命令,并获取结果
ret = subprocess.getstatusoutput("id " + user)
多元赋值,分别获取到命令执行状态码 和命令的执行结果
code 状态码
result 执行结果
code, result = ret
if code == 0:
print("用户存在")
else:
print("用不存在")
- 输出目前系统中都监听了哪些端口
get_port = 'ss -ntal'
-
输入一个端口,判断服务是否开启
输入的端口 是自己服务规定端口 -
输出当前系统中所有的普通用户
cat /etc/passwd
import subprocess
ret = subprocess.getoutput("cat /etc/passwd")
for line in ret.splitlines():
user, _, uid, *_ = line.split(":")
if int(uid) >= 1000:
print(user)
- 获取当前系统中非回环接口的 IPv4地址
```powershell
ip a
for line in ret.splitlines():
if 'inet ' in line and '127.0.0.1' not in line:
print(line)
ips =[]
for line in ret.splitlines():
if 'inet ' in line:
_, ip,*_, name = line.split()
ips.append({"name": name, "ip": ip})
- 获取当前系统中 CPU 型号, 内核数量
grep 'name' /proc/cpuinfo
- 获取当前系统内存使用情况:总容量,可用容量
free
for line in ret.splitlines():
if 'Mem' in line:
_, total,_,free, *_ = line.split()
print(total, free)
- 获取当前系统的磁盘情况,每块磁盘的设备名称和总容量
lsblk
for line in ret.splitlines():
if 'part' in line and '/' in line:
*_, size,_,m = line.split()
print(size, m)
- 获取当前系统磁盘的有效分区情况,打印出挂载点和分区容量
lsblk
for line in ret.splitlines():
if 'part' in line and '/' in line:
*_, size,_,_,m = line.split()
print(size, m)
elif 'lvm' in line and 'swap' not in line:
*_, size,_,_,m = line.split()
print(size, m)
...:
1G /boot
8G /
- 输出当前系统的 CPU 负载情况 1 ,5 ,15 分钟
uptime
import subprocess
cmd = "id"
ret = subprocess.getoutput(cmd)
l1 = ret.split("\n")
li = ['22']
port = '22'
for
if port in ports:
continue
li.append(port)