我有一堆使用optparse包的python脚本。我想给他们一个“ remote_run”选项,我想使用它如下:
if options.remote_run:
cmd = create_cmd(options)
os.system('ssh %s@%s "%s"' % (user, server, cmd))
sys.exit(0)
函数
create_cmd()
应该创建与用于启动此过程的命令等效的命令,不同之处在于未设置remote_run选项。这个想法是为了使脚本将自身外包给其他服务器,以保留当前服务器的资源。做这个的最好方式是什么?我通过编写自定义的cmd生成函数一次性完成了几个脚本,但是每当向这些脚本添加新选项时,我都必须使这些函数保持最新。
最佳答案
基于Is it possible to set the python -O (optimize) flag within a script?:
#!/usr/bin/env python
import socket
import subprocess
import sys
from pipes import quote
def main():
print(socket.gethostname())
print(sys.argv)
if __name__=="__main__":
if '--remote-run' in sys.argv:
sys.argv.remove('--remote-run')
command = ' '.join(map(quote, ['python'] + sys.argv))
sys.exit(subprocess.call(['ssh', '%s@%s' % (user, server), command]))
else:
main()
关于python - 使用继承的python optparse选项生成进程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14409301/