【发布时间】:2014-03-15 06:41:07
【问题描述】:
尝试使用 python 脚本监控远程机器的可用物理磁盘空间,该脚本使用 subprocess.popen 执行df -h . 命令。
import subprocess
import time
command = 'ssh remoteserver "df -h ."'
while True:
proc = subprocess.Popen(command,shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output,err=proc.communicate()
print output
print err
time.sleep(60)
脚本运行良好,从命令行运行时将输出打印到终端
$> python2.7 script.py
Filesystem Size Used Avail Use% Mounted on
remoteserver:/home/user
555G 447G 109G 81% /home
当使用 nohup 命令启动脚本时,脚本不产生任何输出或似乎被阻塞。
$> nohup python2.7 script.py &
希望脚本在nohup 启动时使用上述脚本运行并获取远程机器的磁盘空间。
【问题讨论】:
-
为什么不使用 bash 脚本?这样的任务不是更好吗?
-
上面的代码是脚本的一部分,它做的其他事情很少,必须在 python 中完成。
-
nohup可能会将输出重定向到文件 (nohup.out)
标签: python subprocess output nohup