10

我正在远程服务器上安装证书,并想在覆盖它们之前检查它们是否存在。服务器只允许通过 ssh 公钥进行非 root 访问。我可以sudo -s在 shell 中扎根一次。根是必需的,因为 /etc/ssl 其他人都无法读取。这是正在开发的python fabric,因此任何可以在 shell 命令中运行的命令sudo都可以使用。在这种情况下,我不介意在提示时输入密码。

TL;DR:我需要一个命令来告诉我的 python 程序在运行时(或类似的东西)sh是否存在远程文件(或目录)。if fabric.sudo(sh_command) == True:

谢谢!

4

3 回答 3

36
from fabric.contrib.files import exists

def foo():
    if exists('/path/to/remote/file', use_sudo=True):
        #command
于 2013-07-29T16:36:05.657 回答
1

也许不是最简单的方法,但我会建议

ssh user@server 'bash -c "if [ -e /path/to/remote/file ] ; then true ; fi"'
于 2013-07-29T08:48:41.633 回答
0

在 Linux 中运行类似test的命令来确定目录是否存在。fabric.sudo的输出是一个多行字符串,可以解析返回状态。

于 2013-07-29T05:01:47.143 回答