Я передаю файлы между двумя серверами через SFTP с помощью модуля подпроцесса python. Единственный способ подключения к удаленному серверу - через SFTP-соединение.
Мне нужно убедиться, что два каталога на локальном и удаленном серверах идентичны после передачи. Это довольно легко на локальном сервере, базовая команда поиска дает мне то, что мне нужно. Однако я понятия не имею, как получить аналогичный результат на удаленном сервере.
Вот пример структуры файла, идентичной на обеих машинах.
JobDirectory
Job1
test.txt
tonks.txt
Job2
wildlife.txt
Job3
jackinthebox.txt
happygilmore.txt
sadprogrammer.txt
Поэтому мне нужна команда, которая получит имена файлов из Job1
, Job2
и Job3
и вернет их мне.
Что-то вроде
echo "ls *.txt" | sftp -q user@host.example.com:/path
здесь не очень хорошо отслеживает, так как ему нужен определенный путь. Я мог бы получить список папок в каталоге и выполнить команду sftp
для каждой из них, но это много удаленных подключений.
Единственными инструментами удаленного доступа, которые я могу использовать, являются подпроцесс и модуль операционной системы Python. Что-то вроде Paramiko SFTP недоступно.