Рекурсивная загрузка файлов на/c FTP с помощью NCFTP
Если у вас есть много файлов для загрузки на веб-сайт, и доступ осуществляется только через FTP, вы можете использовать хороший инструмент с графическим интерфейсом, чтобы просто перетащить каталог, или вы можете использовать инструмент командной строки ncftpput. Мне не редко приходится поддерживать людей с веб-сайтами на серверах, отличных от тех, которыми я управляю. Если сервер доступен только по FTP и мне нужно получить копию всего веб-сайта, я использую инструмент командной строки ncftpget для рекурсивной загрузки всех файлов и каталогов за один раз.
Установка ncftpget
ncftpget является частью пакета ncftp.
В дистрибутивах Linux на основе APT (например, Debian) вы можете установить его следующим образом:
apt-get install ncftp
В дистрибутивах Linux на основе YUM (например, CentOS, RHEL) вы можете установить его следующим образом:
yum install ncftp
Использование ncftpget
Используйте команду следующим образом:
ncftpget -R -T -v -u [имя пользователя] [имя хоста] [локальный путь] [удаленный путь]
-R указывает ncftpget рекурсивно загружать файлы и каталоги
-T говорит не пытаться загрузить tar (у меня это никогда не работало и приводит к ошибке «tar: это не похоже на tar-архив» и «tar: выход со статусом сбоя из-за предыдущих ошибок». Фактические файлы впоследствии скачать нормально).
-v говорит, чтобы быть подробным и показывать ход загрузки; вы можете опустить это, но может быть полезно увидеть, что происходит
-u указывает используемое имя пользователя. Измените [имя пользователя] на пользователя, чтобы войти в систему как
Замените [имя хоста] сервером для ftp.
Замените [локальный путь] на то, куда вы хотите скопировать файлы.
Замените [удаленный путь] на путь, по которому файлы находятся на сервере, к которому вы подключаетесь.
Пример
Допустим, наше имя пользователя — «chris», сервер — 10.1.1.10, путь, который мы хотим сохранить локально, — /tmp, и мы хотим загружать файлы с удаленного хоста из /httpdocs. Сделай это:
ncftpget -R -T -v -u Крис 10.1.1.10 /tmp /httpdocs
Затем вас попросят ввести пароль, и загрузка начнется.
Зачем использовать инструмент командной строки?
Мне нужно было загрузить каталог, содержащий тысячи файлов и каталогов со многими подкаталогами. Я мог бы использовать инструмент с графическим интерфейсом, но это заняло бы очень много времени. Не было доступа SSH, SFTP, rsync или SCP к рассматриваемому веб-сайту, поэтому я сделал следующее:
-=ncftpput - копирование на FTP сервер=-
ncftpput -R -z -r 10 -v -u "testuser" -p "secret" 192.168.1.1 /out/ c:/tmp/cp/.
или
ncftpput -R -z -r 10 -v -u "testuser" -p "secret" 192.168.1.1 /out/ c:/*.cmd
/out/ -- куда копируем, папка в корне нашего FTP
c:/*.cmd -- что копируем, все файлы с расширением cmd расположенные в корне диска "C"
=========
-=ncftpget - копирование с FTP сервера=-
ncftpget -R -z -r 10 -v -u "testuser" -p "secret" 192.168.1.1 c:/tmp/cp /in/*.txt
c:/tmp/cp --куда копируем
/in/*.txt --что копируем, все файлы .txt из папки "in" расположенной в корне FTP сервера
ncftpput -R -z -r 10 -v -u 'user' -p 'pass' 31.31.198.200 /subbnet.ru/wwwroot/content/ /opt/content/
ncftpget -R -u 'user' -p 'pass' ftp://31.31.198.200/dev.subbnet.ru/wwwroot/content/* /opt/content/
При повторном исполнении, загрузятся только новые файлы.
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.