
У меня есть два пакета веб-хостинга: один пакет (A) от хостера A и один пакет (B) от другого хостера B (разные сети). Я могу передавать файлы со своего локального компьютера по FTP на пакет веб-хостинга A и/или пакет веб-хостинга B.
Теперь я хочу напрямую перенести папки и файлы с хостера A на хостер B. Я попробовал FXP, но хостер A и хостер B не разрешили это (500 Illegal PORT Command). Я не могу изменить настройки, чтобы разрешить FXP (это обычный пакет веб-хостинга, поэтому у меня нет SSH / root-доступа или чего-то подобного).
Я знаю, что могу использовать FTP-клиент на своем локальном компьютере (частном компьютере), чтобы загрузить контент с хостера A и вручную загрузить его на хостер B, но это займет много времени (большой объем данных — много файлов).
Я не думаю, что будет способ передать файлы напрямую из A в B без какой-либо "помощи", но у меня также есть корневой сервер Linux C (от хостера C). Есть ли способ передать файлы с моего сервера C (скрипт, программа, рабочий процесс, ...)? Например, загрузить file1.txt из пакета A по FTP на сервер C, загрузить его с сервера C в пакет B, удалить его на сервере C, загрузить следующий файл file2.txt и так далее?
решение1
Использоватьcurlftpfs
на вашем Linux-сервере C.
Программа
curlftpfs
представляет собой инструмент для монтирования удаленных FTP-хостов в качестве локальных каталогов.
ЭтоПРЕДОХРАНИТЕЛЬ-решение, ознакомьтесь спроблемы безопасности. Вы можете (и должны) выполнить монтирование как обычный пользователь. Пример:
curlftpfs -r ftp.dd-wrt.com ~/mnt/foo/
Смонтируйте A и B в разные точки монтирования. Затем используйте любой инструмент для копирования/перемещения файлов, как вы бы делали с локальными файлами: cp -r
, mc
, что угодно. В конце концов размонтируйте. Пример команды для размонтирования:
fusermount -u ~/mnt/foo/
решение2
После долгих исследований, проб и ошибок я решил написать собственный скрипт для передачи файлов между двумя FTP-серверами A
и B
через корневой сервер C
.
Опубликовано наGitHub какFTP-Перемещение-Сервер-Файлов. В настоящее время он находится на ранней стадии разработки, но он помогает избавиться от обычного описанного рабочего процесса на частной машине.