Проверьте, существует ли файл /Dir над SSH/Sudo в Python/Bash

Я устанавливаю сертификаты на удаленном сервере и хочу проверить, существуют ли они до того, как я их перезапишу. Сервер разрешает доступ без полномочий root через открытый ключ ssh. Я могу sudo -s корневать один раз в оболочке. Корень требуется, потому что /etc/ssl не читается кем-либо еще. Это разрабатывается в python fabric, поэтому любая команда, которая может быть запущена в команде оболочки через sudo, будет работать. Я не против вводить пароли в приглашениях в этом случае.

TL; DR: Мне нужна команда sh, которая может сообщить моей программе python, существует ли удаленный файл (или каталог) при запуске как if fabric.sudo(sh_command) == True: (или что-то подобное).

Спасибо!

Ответ 1

from fabric.contrib.files import exists

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

Ответ 2

Возможно, не самый простой способ, но из головы я бы предложил

ssh [email protected] 'bash -c "if [ -e /path/to/remote/file ] ; then true ; fi"'

Ответ 3

Запустите команду test в Linux, чтобы выяснить, существует ли каталог или нет. Вывод fabric.sudo - это многострочная строка, которая может быть проанализирована для статуса возврата.