【问题标题】:Test if File/Dir exists over SSH/Sudo in Python/Bash [duplicate]在 Python/Bash 中通过 SSH/Sudo 测试 File/Dir 是否存在 [重复]
【发布时间】:2013-07-28 18:39:02
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: python bash ssh fabric


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      ssh user@server 'bash -c "if [ -e /path/to/remote/file ] ; then true ; fi"'
      

      【讨论】:

        【解决方案3】:
        from fabric.contrib.files import exists
        
        def foo():
            if exists('/path/to/remote/file', use_sudo=True):
                #command
        

        【讨论】:

        猜你喜欢
        • 2019-03-02
        • 1970-01-01
        • 2011-04-17
        • 2021-03-09
        • 2011-09-07
        • 1970-01-01
        • 1970-01-01
        • 2011-03-23
        • 2011-01-12
        相关资源
        最近更新 更多