2016-11-24 7 views
0

Я получаю с SFTP-сервером IP ADDRESS | Имя пользователя | Пароль. Каждый день на SFTP-сервере может быть несколько N-ти ZIP-файлов в формате «2016_11_02_1.zip». Я знал, как загрузить файлы с помощью cURL.Использование Bash Для рекурсивной загрузки файлов с сервера SFTP

$curl -u xxxxx:xxxxx sftp://x.x.x.x/path/to/2016_11_02_1.zip 
$curl -u xxxxx:xxxxx sftp://x.x.x.x/path/to/2016_11_02_2.zip 

Теперь я буду писать сценарий для загрузки доступных архивных файлов на сервере SFTP (2016_11_02_1.zip, 2016_11_02_2.zip, 2016_11_02_3.zip). Через несколько часов можно добавить SFTP-сервер с 2016_11_02_4.zip ..... 2016_11_02_30.zip.

Как загрузить файлы, не загружая уже загруженные ZIP-файлы (2016_11_02_1.zip , 2016_11_02_2.zip , 2016_11_02_3.zip).

Любые предложения, пожалуйста?

+1

Можете ли вы получить доступ к серверу через ssh? Если да, то я бы предложил 'rsync'. – Cyrus

+0

@ Кир. Да, я могу получить доступ через ssh. Я также рассмотрю rsync. – Arun

ответ

1

У вас все еще есть загруженные ранее файлы? Если это так, вы можете проверить, что на вашем локальном диске уже есть файл с таким именем.

+0

Да, у меня будут предыдущие загруженные файлы. Теперь мне придется сравнивать файлы на локальном диске, а также на SFTP-сервере. Если что-то общее, пропустите это и загрузите несуществующие. – Arun

+0

Звучит правильно. Можете ли вы пометить мой ответ как правильный? –

+0

Кстати, это именно то, что rsync делает для вас, кроме как лучше ... – spinkus

1

Если по SFTP вы имеете в виду защищенный FTP, вы можете просто использовать rsync с поддержкой SSH (> = 3.X, я думаю), поскольку SFTP является частью SSH. Пример:

rsync -av [email protected]:/path/to/`date +%Y`*