Назад | Перейти на главную страницу

Автоматически получать определенный файл через SFTP

Как определить, какой файл самый новый с удаленного сервера, к которому я подключен через SFTP? Моя цель - получать каждый день определенный файл через SFTP. Я буду следовать следующим шагам:

  1. Подключиться к серверу через SFTP

  2. Получить имя нужного мне файла <- нужна помощь на этом этапе

  3. Загрузить

Я могу понять, как подключиться через SFTP из сценария, но я не уверен, как лучше всего определить, какой файл загружать.

Например, на сервере много файлов с таким названием:

ABC-Alpha-Sun-May-12-abc123.xml.gz
ABC-Beta-Sun-May-12-abc123.xml.gz

Я хочу получить только альфа-файл того дня. Я предполагаю, что я бы проверил имя для "May-12", чтобы узнать, является ли это сегодняшним файлом? Или, может быть, мне следует проверить дату создания файла или дату изменения?

Как мне получить имя файла? Может быть, я получу имена всех файлов, а затем как-нибудь их отсортирую?

Что бы вы порекомендовали как лучший способ достичь моей цели?

С WinSCP это просто. Вы можете использовать -latest переключатель из get команда в Сценарий WinSCP.

Кроме того, если вашим предпочтительным языком сценариев является PowerShell, вы также можете рассмотреть возможность использования сборки WinSCP .NET с ее Session.ListDirectory метод.

На сайте WinSCP есть пример для всех этих подходов к загрузка самого последнего файла.

(Я автор WinSCP)