2

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生成関数を記述して、いくつかのスクリプトに対してこれを1回限り実行しましたが、これらのスクリプトに新しいオプションを追加するたびに、これらの関数を最新の状態に保つ必要があります。これは理想的ではありません。

4

1 に答える 1

1

スクリプト内でpython-O(最適化)フラグを設定することは可能ですか?:

#!/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()
于 2013-01-19T02:51:54.330 に答える