2013-07-29 10 views
10

リモートサーバーに証明書をインストールしていて、それらを上書きする前にそれらの存在を確認する必要があります。サーバーは、ssh公開鍵による非rootアクセスのみを許可します。私はsudo -sをシェルで一度ルートにすることができます。/etc/sslは他の人が読むことができないため、ルートが必要です。これはpython fabricで開発されているので、sudo経由でシェルコマンドで実行できるコマンドは機能します。この場合、プロンプトでパスワードを入力しても構いません。ファイル/ディレクトリがPython/BashのSSH/Sudo上に存在するかどうかのテスト

TL; DR:私はif fabric.sudo(sh_command) == True:(か何か似た)として実行すると、リモートファイル(またはディレクトリ)が存在するかどうか、私のpythonプログラムを伝えることができるshコマンドを必要としています。

ありがとうございました!

答えて

35
from fabric.contrib.files import exists 

def foo(): 
    if exists('/path/to/remote/file', use_sudo=True): 
     #command 
+0

リンクを示唆していますfiles.html?highlight = exists#fabric.contrib.files.exists – ecstaticpeon

0

Linuxにtestのようなコマンドを実行して、ディレクトリが存在するかどうかを判断します。 fabric.sudoの出力は、複数行の文字列で、戻り状況の解析が可能です。 http://docs.fabfile.org/en/latest/api/contrib/:

1

かもしれない最も簡単な方法は、私の頭の外に、私は、docに

ssh [email protected] 'bash -c "if [ -e /path/to/remote/file ] ; then true ; fi"' 
関連する問題