Что является более эффективным для сценария sftp: java или shell?
Мы отправляем сотни файлов каждую минуту на несколько серверов.
В настоящее время мы генерируем сценарии оболочки (как файлы через java), которые содержат только команды sftp, и выполняем их как сценарии оболочки. Причина, по которой мы используем java, заключается в организации файлов на основе целевого пути и целевого сервера. В конце для каждого целевого сервера у нас будет один сценарий оболочки.
Теперь я думаю, будет ли это более эффективно и быстро, если я отправлю файлы через сам код Java вместо генерации скрипта и его выполнения
В настоящее время создание сценариев для 4 серверов занимает от 4 до 5 секунд. Таким образом, выполнение фактического sftp начинается с 5-й секунды и заканчивается очень быстро (в зависимости от количества файлов). Если я переключусь на java sftp, как JSch, будет ли он таким же быстрым, как sftp в сценарии оболочки, или медленнее?
1 ответ
Это зависит от того, чего вы хотите достичь. Если поддержка этого решения также является фактором, я бы предложил использовать apache-camel с компонентом ftp https://github.com/apache/camel/tree/master/examples/camel-example-ftp. Дает вам контроль и гибкость. Нет генерации сценариев оболочки. И больше всего вы можете написать приложение (если нужно) вокруг него или сделать его частью уже существующего.