我正在尝试编写一个脚本来登录几个远程服务器并在每个服务器中执行一个脚本.但是,我想通过ssh传递一个变量.像这样的东西:
var="/home/dir/"
ssh -T $mchname <<'ENDSSH'
$var"run_script" < input > output &
ENDSSH
Run Code Online (Sandbox Code Playgroud)
这种天真的尝试不起作用($ var只是null).什么是正确的语法?提前致谢.
我正在尝试编写一个脚本,我有一个循环来登录到多个远程机器并在每台机器内执行一个脚本.这是一个例子:
for ((j=1; j < 2; j++)); do
mchname="n"$j
ssh -T $mchname <<'ENDSSH'
./run_script < input > output &
ENDSSH
done
Run Code Online (Sandbox Code Playgroud)
每当我尝试执行上面的脚本时,我得到:"警告:这里 - 文档在第37行由文件结尾分隔(想要`ENDSSH')"
我是ssh的新手,所以我确信我犯了一个愚蠢的错误.谁能建议我一个解决方案?谢谢.
我有一个简单的代码,如下所示。第一个进程保留队列,因此没有一个进程完成。
我希望能够在 AsyncResult 超过 .get() 超时时杀死它,以便我的池队列可以继续前进。但是,如果不修改“myfunc”,我找不到任何简单的方法来做到这一点。有谁知道如何实现这一点?
import multiprocessing
import time
def myf(x):
if x == 0:
time.sleep(100)
else:
time.sleep(2)
return 'done'
pool = multiprocessing.Pool(processes=1)
results = []
for x in range(8):
results.append(pool.apply_async(myf,args=[x]))
pool.close()
for res in results:
try:
print res.get(3)
except Exception as e:
print 'time out'
Run Code Online (Sandbox Code Playgroud) 我试图实现一些比较等于任何字符串的通配符类,但是对其他任何字符串都是false.但是,!=运营商似乎没有__neq__按预期呼叫我的会员:
class A(str):
def __cmp__(self, o):
return 0 if isinstance(o, str) else -1
def __eq__(self, o):
return self.__cmp__(o) == 0
def __neq__(self, o):
return self.__cmp__(o) != 0
a = A()
b = 'a'
print(a == b) # Prints True, as expected
print(a != b) # Prints True, should print False
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?