【发布时间】:2012-07-13 12:54:27
【问题描述】:
我正在使用自动化的 SSH 脚本通过 SSH 将硬件测试复制/运行/记录到几台计算机上,除了一件事之外,一切正常。测试文件应该每 30 分钟无限期地运行一次并收集数据,然后将其写入文件直到被杀死。由于缺乏更好的例子:
注意:这些文件都不是实际代码。我没有在我面前复制它。
文件.py:
#!/usr/bin/env python
import os
idleUsage = []
sleepTime = 1800
while(True):
holder = os.popen('mpstat | awk \'{printf("%s\n", $9)}\'')
idleUsage.append(100.0 - float(holder[1]))
f = open("output.log", 'w')
f.write(%idleUsage)
f.close()
sleep(sleepTime)
自动-ssh.sh:
#!/bin/bash
autossh uname1 password1 ip1 command <----gets stuck after ssh runs
autossh uname2 password2 ip2 command
autossh uname3 password2 ip3 command
毫无疑问,它会卡在运行命令上。我已经尝试过“命令&”以及在整行代码的末尾放置一个&符号。有大佬给点建议吗?
【问题讨论】:
-
我认为你需要做
os.system("sar | grep kb")...不确定,但我认为那不是有效的python行... -
这看起来不像 Python 语法。
-
我知道这是不正确的语法,但这只是一个示例,甚至在代码中都没有。我担心的是在不停止我的 auto-ssh 脚本的情况下运行 while 循环。
-
那里。我修好了一些。我很确定 SSH 的问题而不是 python 代码本身的问题。
标签: python bash ssh while-loop