Мне нужно постоянно отправлять файлы автоматически по FTP. Первоначально у меня просто был скрипт, который загружался в stdin для FTP, но понял, что каждый раз, когда я это делаю, мне нужно закрыть, а затем снова открыть соединение между сервером и клиентом. Повторное соединение занимает больше времени, чем отправка файла. Я попытался избежать этого, создав отдельный скрипт, чтобы открыть соединение и запустить скрипт для отправки файла в цикле.Looping FTP в скрипте bash
В этом случае проблема: после запуска скрипта подключения ftp автоматически отключается. Вот сценарий подключения.
#!/bin/bash
HOST='192.168.1.2'
USER='user'
PASSWD='passwd'
echo "open $HOST
user $USER $PASSWD
ascii" > /tmp/ftp.$$
ftp -ivn < /tmp/ftp.$$ >> ftplog.txt
rm /tmp/ftp.$$
и это скрипт для отправки файла.
#!/bin/bash
echo "put localfile.txt remotfile.txt" > /tmp/ftp.$$
ftp -ivn < /tmp/ftp.$$ >> ftplog.txt
rm /tmp/ftp.$$
Сценарий подключения открывает соединение, но закрывает его снова после его запуска. Любой способ избежать этого?
Я должен уточнить, что я не загружаю список файлов, а один файл, который обновляется другим скриптом и отправляется после обновления. Этот один файл отправляется снова и снова как можно ближе к реальному времени.
Привет, это кажется ненужным сложность здесь внутри забросил. Почему три сценария выполняются один за другим с перенаправлением ввода/вывода, в то время как вы можете просто параметризовать скрипт со встроенной функцией FTP? –
Можете ли вы углубиться? Я открыт для других решений, просто стараюсь избегать постоянного закрытия и повторного открытия моего соединения при каждом отправке файла. –
Вы можете использовать FTP-сервер FTP для загрузки многих файлов в одном соединении, но для автоматизации этого все файлы должны находиться в одной папке. –