返回列表 发帖

Python3调用Linux命令

操作系统的版本信息:
[root@Zabbix_server_01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# uname -r
2.6.32-696.el6.x86_64

Python的版本信息:
[root@Zabbix_server_01 ~]# python3 --version
Python 3.6.8



######

例子一:

#coding=utf-8  
import os

Key_1 = os.system("mv yy.py zz.py") #同一目录下,修改文件名
print(Key_1)

if Key_1 == 0 :
        print('修改文件名成功。')
else:
        print('修改文件名失败。')


运行脚本的效果:(成功时)
[root@Zabbix_server_01 ~]# python3 xx.py
0
修改文件名成功。
[root@Zabbix_server_01 ~]#


运行脚本的效果:(失败时)
[root@Zabbix_server_01 ~]# python3 xx.py
mv: 无法获取"yy.py" 的文件状态(stat): 没有那个文件或目录
256
修改文件名失败。
[root@Zabbix_server_01 ~]#



######

例子二:

#coding=utf-8  
import os

Key_1 = os.system("mv yy.py /zz.py") #不同目录下,修改文件名

if Key_1 == 0 :
        print('修改文件名成功。')
else:
        print('修改文件名失败。')


运行脚本的效果:(成功时)
[root@Zabbix_server_01 ~]# python3 xx.py
修改文件名成功。
[root@Zabbix_server_01 ~]#


运行脚本的效果:(失败时)
[root@Zabbix_server_01 ~]# python3 xx.py
mv: 无法获取"yy.py" 的文件状态(stat): 没有那个文件或目录
修改文件名失败。
[root@Zabbix_server_01 ~]#



######

例子三:

#coding=utf-8  
import os

#显示某种后缀的文件;返回的字符串的右边会多了个换行符
Key_1 = os.popen("ls -alh *.tar.gz").read()
print(Key_1)


运行脚本的效果:(文件存在时)
[root@Zabbix_server_01 ~]# python3 xx.py
-rw-r--r--. 1 root root 478M 4月  29 2018 lnmp1.3-full.tar.gz
-rw-r--r--. 1 root root  19M 2月  19 2020 zabbix-4.4.5.tar.gz

[root@Zabbix_server_01 ~]#


运行脚本的效果:(文件不存在时)
[root@Zabbix_server_01 ~]# python3 xx.py
ls: 无法访问*.tar.gz: 没有那个文件或目录

[root@Zabbix_server_01 ~]#



######

例子四:

#coding=utf-8  
import os

os.popen("echo 'Welcome to zhuohua.' > /1.log").read() # > 把输出结果写入(覆盖)到文件;假如文件不存在会自动创建

os.chdir("/") #切换工作目录
String_1 = 'echo "Welcome to Python." >> 2.log' # >> 把输出结果写入(追加)到文件;假如文件不存在会自动创建
os.popen(String_1).read()


运行脚本的效果:
[root@Zabbix_server_01 ~]# python3 xx.py
[root@Zabbix_server_01 ~]#
[root@Zabbix_server_01 ~]# cat /1.log /2.log
Welcome to zhuohua.
Welcome to Python.
[root@Zabbix_server_01 ~]#



######

例子五:

#coding=utf-8  
import os

#输出CPU使用率
String_1 = "CPU_use_percent=$(expr 100 - $(vmstat -w |tail -1 |awk '{print $15}')) && echo $CPU_use_percent"
Key_1 = os.popen(String_1).read()
print(Key_1) #返回的字符串的右边会多了个换行符

print("-" * 10)

#输出内存使用率
String_1 = "Mem_use_percent=$(expr $(free |head -3 |tail -1 |awk '{print $3}') \* 100 / $(free |grep 'Mem:' |awk '{print $2}')) && echo $Mem_use_percent"
Key_1 = os.popen(String_1).read()
print(Key_1)

print("-" * 10)

#输出根分区的使用率
String_1 = "df -hT |grep '/$' |awk '{print $5}' |awk -F% '{print $1}'"
Key_1 = os.popen(String_1).read()
print(Key_1)
print(type(Key_1)) #返回值的数据类型为字符串

Key_1 = float(Key_1) #转换为浮点数
print(Key_1)

Key_1 = int(Key_1) #转换为整数
print(Key_1)


运行脚本的效果:
[root@Zabbix_server_01 ~]# python3 xx.py
5

----------
29

----------
7

<class 'str'>
7.0
7
[root@Zabbix_server_01 ~]#



######

例子六:

#coding=utf-8  
import os

os.popen("init 6").read() # 重启服务器

os.popen("init 0").read() # 关闭服务器





相关文章:
Python3命令集
Python3获取主机名和IP地址
Python3管理Linux的软件进程

CentOS6使用Python3脚本备份站点(Zabbix)+crontab计划任务
CentOS8使用Python3脚本管理MySQL8.0

Python3调用Windows命令
使用Shell脚本监控本机的CPU、内存、分区的使用率

返回列表