#!/bin/bash
# Замените значения переменных ниже на свои данные
HOST="hostname" # Адрес сервера SFTP
PORT="port" # Порт сервера SFTP
USER="username" # Имя пользователя SFTP
REMOTE_DIR="/path/to/remote/directory" # Удаленная директория, из которой нужно загрузить файлы
LOCAL_DIR="/path/to/local/directory" # Локальная директория, в которую нужно сохранить файлы
PRIVATE_KEY="/path/to/private/key" # Путь к приватному ключу SSH
# Создаем командный файл для sftp
echo "lcd $LOCAL_DIR" > sftp_commands.txt
echo "cd $REMOTE_DIR" >> sftp_commands.txt
echo "get *" >> sftp_commands.txt
echo "bye" >> sftp_commands.txt
# Запускаем sftp с командным файлом и передаем ему переменные окружения
sftp -P $PORT -i $PRIVATE_KEY $USER@$HOST < sftp_commands.txt
# Удаляем временный командный файл
rm sftp_commands.txt
В этом скрипте мы создаем временный командный файл sftp_commands.txt, в котором указываем команды для sftp: переходим в локальную директорию, переходим в удаленную директорию, загружаем все файлы и завершаем сессию. Затем мы запускаем sftp с этим командным файлом и передаем ему переменные окружения для подключения к серверу SFTP с использованием приватного ключа SSH.
Не забудьте заменить значения переменных HOST, PORT, USER, REMOTE_DIR, LOCAL_DIR и PRIVATE_KEY на свои данные перед запуском скрипта.
Для автоматизации выполнения можете добавить задание в крон.