subprocess
subprocess.check_output()
subprocess.check_output([project_backup_data[project]], shell=True, timeout=1800)
- 列表:就是命令
- shell:用shell来执行命令,不然很多特殊的符号无法使用例如管道、&&等
- timeout:超时时间
如果命令执行错误,或者超时的话,需要捕获两个异常
except subprocess.CalledProcessError as e:
print('备份出现异常: {}'.format(str(e)))
except subprocess.TimeoutExpired as e:
print('备份出现超时: {}'.format(str(e)))
subprocess.Popen()
必须要res.communicate()后才能获取返回码
In [30]: import subprocess
In [31]:from subprocess import PIPE
In [32]: res = subprocess.Popen('jps rmi://10.0.0.7:2011',shell=True, stdout=PIPE, stderr=PIPE)
In [33]: out,err = res.communicate()
In [36]: res.returncode
Out[36]: 1