Отправка файлов через sftp

Клиент хочет, чтобы мы ежедневно передавали им файлы данных, используя SFTP (FTP через SSH). Мы являемся магазином Microsoft на 100% без администраторов Linux. Я ищу рекомендации о том, как этого добиться. Я видел разные приложения для автоматизации отправки файлов через SFTP, но я не знаю, хороший ли это подход или нет.

Что вы считаете самым простым способом справиться с этим в среде Microsoft?

4 ответа

Решение

Я рекомендую PSFTP в качестве предпочтительного клиента для передачи этих данных в удаленный пункт назначения. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Их продукты очень надежны и стали довольно популярными благодаря успеху PUTTY, их SSH-клиента.

Вам просто нужен SFTP-клиент и способ его сценария и планирования.

  1. WinSCP очень распространен для клиентского программного обеспечения. Это сценарий, таким образом...
  2. вы захотите использовать все, что вам удобно и желательно уже - пакет, PowerShell, VBScript, KiXtart, что угодно.
  3. Вы можете запланировать это со сборкой в ​​запланированных задачах.

Это простой способ, использующий все нативные инструменты и только один сторонний компонент. Сложные биты будут:

  1. логика вашего сценария. Как вы будете обрабатывать ошибки? Всевозможные ошибки - вы потеряли интернет, и их сторона пошла на убыль. Файловый сервер, с которого вы извлекаете файл, был неправильно настроен, и вы не смогли удалить файл после его отправки. Собственно, это другой вопрос - вы удаляете их после отправки? Вы загружаете конвейер или архивную копию?
  2. Как вы справитесь с возможностью выполнения нескольких заданий - задание на 1 час занимает слишком много времени, поэтому оно все еще выполняется, например, при запуске 2 часа дня. Вы можете работать над этим со встроенными возможностями планировщика, например, убивать задачи, которые занимают слишком много времени.
  3. Это должно быть HA? Если ваш сервер выходит из строя, вам нужен другой, чтобы продолжить с того места, где он остановился?

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

Я использую этот компонент с открытым исходным кодом / бесплатно.Net для доставки файлов в SFTP без каких-либо проблем в течение последних 2 лет.

Если вы ссылаетесь на файлы сборки (Tamir.SharpSSH.dll + 2), в нескольких строках кода вы можете выполнить SFTP.

            Sftp sftpClient = new Sftp(host, userName, password);
            sftpClient.Connect();

            sftpClient.Put(filePath, @"filename.txt");
            sftpClient.Close();

Вы можете разработать приложение для Windows или службу Windows для доставки файлов

Скачать сборку здесь:

http://www.tamirgal.com/blog/page/SharpSSH.aspx

Описание: SharpSSH - это чистая.NET-реализация набора клиентских протоколов SSH2. Он предоставляет API для связи с серверами SSH и может быть интегрирован в любое приложение.NET. Библиотека является портом C# проекта JSch от JCraft Inc. и выпущена под лицензией в стиле BSD.

SharpSSH позволяет читать / записывать данные и передавать файлы по каналам SSH с использованием API, аналогичного API JSch. Кроме того, он предоставляет некоторые дополнительные классы-обертки, которые предлагают еще более простую абстракцию для связи SSH.

Если вы ищете автоматизируемый SFTP-клиент с возможностью сценариев, который не только работает под Windows, но и разработан с учетом Windows (он не имитирует скриптовые скрипты в стиле Linux, но использует высокоуровневые объектно-ориентированные языки, такие как JavaScript)) вы можете взглянуть на Syncplify.me FTP Script.

Другие вопросы по тегам