Мне нужно загрузить все с FTP-сервера на хостинг на другом сервере. У меня есть доступ к оболочке только для сервера, к которому я загружаю файлы. Как, используя команду FTP Linux, могу ли я загрузить каждый файл, создавая каталоги, необходимые для этого в процессе?
Загрузка всех файлов с FTP-сервера
Ответ 1
Используйте wget
таким образом (m для зеркалирования):
wget -m ftp://username:[email protected]
Если ваше имя пользователя или пароль содержат специальные символы, вам может потребоваться использовать формат:
wget -m --user=username --password=password ftp://ip.of.old.host
В качестве альтернативы я нашел это руководство, в котором показано, как это сделать, используя ncftp в Debian. Вам потребуется root-доступ к новому серверу, если ncftp уже не установлен.
Короче:
sudo apt-get install ncftp
ncftpget –T –R –v –u "ftpuser" ftp.nixcraft.net /home/vivek/backup /www-data
Ответ 2
Некоторые FTP-серверы позволяют загружать целые каталоги путем суффикса их имени с помощью .tar или .tgz. Затем сервер создает архив этого каталога.
Ответ 3
Другой способ - использовать ftp
. Здесь пример оболочки script с использованием ftp:
#! /bin/bash
ftp -n << 'EOF'
open ftp.your_ftp_host.com
quote USER your_username_here
quote PASS your_password_here
cd gets
prompt no
mget * .
bye
EOF