Скрипт для ssh в удаленную папку и проверки всех файлов? - PullRequest
3 голосов
/ 02 ноября 2009

У меня настроена пара открытых / закрытых ключей, чтобы я мог подключиться к ssh на удаленном сервере без необходимости входа в систему. Я пытаюсь написать сценарий оболочки, который будет перечислять все папки в определенном каталоге на удаленном сервере. , У меня вопрос: как мне указать удаленное местоположение? Вот что у меня есть:

 #!/bin/bash

for file in myname@example.com:dir/*
do
if [ -d "$file" ]
then
echo $file;
fi
done

1 Ответ

14 голосов
/ 02 ноября 2009

Попробуйте это:

for file in `ssh myname@example.com 'ls -d dir/*/'`
do
    echo $file;
done

Или просто:

ssh myname@example.com 'ls -d dir/*/'

Пояснение:

  • Команда ssh принимает дополнительную команду после имени хоста и, если она указана, выполняет эту команду при входе в систему вместо оболочки входа в систему; Затем ssh просто передает стандартный вывод из команды как свой собственный стандартный вывод. Здесь мы просто передаем команду ls .
  • ls -d dir / * / - это хитрость, заставляющая ls пропускать обычные файлы и перечислять только каталоги.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...