bash: проверка существования файла на удаленной машине
Для проверки существования файла на удаленной машине с помощью Bash вы можете использовать SSH для выполнения команды проверки непосредственно на удаленном сервере. Вот как это сделать.
1. Использование ssh
для проверки файла на удаленной машине
Можно выполнить команду проверки через ssh
, чтобы узнать, существует ли файл на удаленной машине:
1 2 3 4 5 6 |
if ssh user@remote_host "[ -f /path/to/remote/file ]"; then echo "Файл существует на удаленной машине." else echo "Файл не существует на удаленной машине." fi |
Объяснение:
ssh user@remote_host "[ -f /path/to/remote/file ]"
: выполняет проверку на удаленной машине.- Замените
user
на имя пользователя иremote_host
на адрес удаленной машины. - Укажите полный путь к файлу
/path/to/remote/file
.
- Замените
- Команда
ssh
возвращает статус0
, если файл существует, и1
, если нет. Условиеif
использует этот статус для выполнения соответствующего действия.
2. Проверка для других типов файлов
- Проверка директории: Используйте
-d
вместо-f
, чтобы проверить, является ли путь директорией:
123456if ssh user@remote_host "[ -d /path/to/remote/directory ]"; thenecho "Директория существует на удаленной машине."elseecho "Директория не существует на удаленной машине."fi
3. Пример скрипта
Полный пример скрипта, который выполняет проверку и выводит результат:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash REMOTE_USER="user" REMOTE_HOST="remote_host" REMOTE_FILE="/path/to/remote/file" if ssh "$REMOTE_USER@$REMOTE_HOST" "[ -f $REMOTE_FILE ]"; then echo "Файл $REMOTE_FILE существует на удаленной машине $REMOTE_HOST." else echo "Файл $REMOTE_FILE не существует на удаленной машине $REMOTE_HOST." fi |
Примечания:
- SSH-доступ: Убедитесь, что у вас настроен SSH-доступ к удаленной машине. Если требуется пароль, он будет запрошен при выполнении команды.
- Ключи SSH: Если хотите избежать ввода пароля, настройте SSH-ключи для безпарольного доступа.