Я хочу проверить, существует ли файл где-нибудь на удаленном сервере Linux (например, /var/run/test_daemon.pid), без интерактивного входа на сервер. Например, вы можете захотеть, чтобы ваш скрипт вел себя по-разному в зависимости от того, существует ли определенный файл на удаленном сервере.
1 ответ
1
Следующая команда сделает, если вы точно знаете, где находится файл
ssh user@remote_server test -f /path/to/file/filename && echo "YES" || echo "no"
Вам нужен фрагмент, начинающийся с &&
потому что test не будет выдавать никаких результатов, и вы не сможете определить, был ли файл найден или нет.
В противном случае, если вы знаете только имя файла, но не уверены в его местонахождении,
ssh user@remote_server find / -type f -name 'name_of_file*' -print
проведет поиск по всей файловой системе для вашего файла.
Обратите внимание на использование ssh: он подключается к удаленному серверу, выполняет команду, следующую за выражением user@remote_server
, но не открывает интерактивный сеанс: управление будет возвращено оболочке на вашем локальном компьютере.