Отправка файлов через sftp
Клиент хочет, чтобы мы ежедневно передавали им файлы данных, используя SFTP (FTP через SSH). Мы являемся магазином Microsoft на 100% без администраторов Linux. Я ищу рекомендации о том, как этого добиться. Я видел разные приложения для автоматизации отправки файлов через SFTP, но я не знаю, хороший ли это подход или нет.
Что вы считаете самым простым способом справиться с этим в среде Microsoft?
4 ответа
Я рекомендую PSFTP в качестве предпочтительного клиента для передачи этих данных в удаленный пункт назначения. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Их продукты очень надежны и стали довольно популярными благодаря успеху PUTTY, их SSH-клиента.
Вам просто нужен SFTP-клиент и способ его сценария и планирования.
- WinSCP очень распространен для клиентского программного обеспечения. Это сценарий, таким образом...
- вы захотите использовать все, что вам удобно и желательно уже - пакет, PowerShell, VBScript, KiXtart, что угодно.
- Вы можете запланировать это со сборкой в запланированных задачах.
Это простой способ, использующий все нативные инструменты и только один сторонний компонент. Сложные биты будут:
- логика вашего сценария. Как вы будете обрабатывать ошибки? Всевозможные ошибки - вы потеряли интернет, и их сторона пошла на убыль. Файловый сервер, с которого вы извлекаете файл, был неправильно настроен, и вы не смогли удалить файл после его отправки. Собственно, это другой вопрос - вы удаляете их после отправки? Вы загружаете конвейер или архивную копию?
- Как вы справитесь с возможностью выполнения нескольких заданий - задание на 1 час занимает слишком много времени, поэтому оно все еще выполняется, например, при запуске 2 часа дня. Вы можете работать над этим со встроенными возможностями планировщика, например, убивать задачи, которые занимают слишком много времени.
- Это должно быть 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.