Вы здесь

Поиск и копирование файлов с ftp-сервера по маске

По работе мне нужно было реализовать такую фишку:

Подключаться по ftp к серверу, в корневой директории которого содержится множество подкаталогов, и в каждом из них содержатся rar-архивы.
Эти архивы мне нужно скачать на свою машину.

Для начала опишу как это сделать локально.

Поиск и копирование я реализовал следующим способом:

find /ftp/stat/*/?.rar -exec cp {} /home/debian5/backup \;

Поясню что делает каждая команда:
find /ftp/stat/*/*.rar - ищет все файлы с расширением rar во всех каталогах и подкаталогах папки stat

Параметр -exec позволяет выполнить какую-либо команду с найденными файлами.

cp - стандартная команда копирования в linux. Синтаксис примерно такой cp /что копируем /куда копируем.

{} - означает, что команду cp нужно применить к каждому найденному файлу.

/home/debian5/backup - каталог, куда мы копируем все найденные rar - архивы.

\; - означает конец действия параметра -exec

Теперь реализуем подобную фишку через ftp. В качестве консольного FTP-клиента я выбрал lftp.

lftp login:password@ftp.domain.com - подключаемся к серверу.

mget -O /home/ruslan413/down /content/*/*.rar

mget используется для скачивания файлов. Параметр -O позволяет задать каталог, в который помещаются скачиваемые файлы. (В моем случае это /home/ruslan413/down)

/content/*/*.rar - скачиваем все файлы с расширением rar, расположенные в каталоге /content и во всех его подкаталогах.

Есть множество способов доработать/усовершенствовать этото небольшой сценарий. Если есть вопросы или идеи, пишите в комментах!

Рубрики: 

Комментарии

А по другому это ни как не льзя сделать по проще?

Это и так самый простой способ.

Спасибо потренькался и все вроед стало получатся. Никогда бы не подумал что это будет так сложно. Я просто начинающий.

Да в принципе ничего сложного нет, главное понять.

Довольно интересная статейка, добавил в закладки... Странно, что нашел статью, чуть ли не через год. Еще раз спасибо.

Пришел с поиска и рад что нашел ответ на свой вопрос.

Также рекомендуем