переместить/скопировать файл с помощью FTP-сервера

Вопрос или проблема

Возможно ли (и как) скопировать файл на удаленной машине в другое место на той же удаленной машине, используя FTP?

Вам нужно именно создать копию файла, так чтобы полная версия находилась в обоих путях, а не просто переместить или переименовать единичный экземпляр файла?

Если да, то протокол FTP действительно это позволяет, несколькими способами:

  1. FTP с давних пор позволяет пользователю координировать передачи FTP от сервера к серверу с одного клиента. Вы можете использовать этот метод через два отдельных управляющих соединения к одному серверу, чтобы заставить сервер “общаться с самим собой” через FTP для передачи файла. См. RFC 959, раздел 2.3 (в частности, рисунок 2) и раздел 5.2.
  2. Команда FTP “SITE” позволяет любому FTP-серверу предоставлять “специфические для сайта” функции, которые могут включать возможность выполнения копий.

Я предполагаю, что это зависит от FTP-сервера, но вы можете выполнить перемещение с помощью команды FTP rename.

Почему вы хотите использовать FTP вместо команды ОС copy|cp|whatever для этого? У вас есть доступ к серверу только через FTP? Не можете использовать telnet|ssh|RDP|и т. д. вместо этого?

Тем не менее, название FTP само по себе говорит о многом: “перенос” и “протокол” должны указывать на то, что это для передачи файлов по сети и будет иметь ограниченные возможности взаимодействия с файловой системой. FTP не является универсальным инструментом для работы с файловыми системами.

Вы можете переименовать файл, используя команды FTP RNFR и RNTO (см. функцию переименования в вашем любимом FTP-клиенте).

Большинство FTP-серверов поддерживают переименование ‘/folder/file’ в ‘/another/folder/another-file’, если целевая директория существует.

Реализация копирования файлов на FTP-сервере (т. е. без выполнения обратного прохода через сеть) кажется зависимой от клиента, который устанавливает петлевое соединение с сервером. Для выполнения этого с помощью командного клиента lftp см. разделы man-страницы, касающиеся FXP и команды ftpcopy.

Ответ или решение

Перемещение/Копирование файлов с использованием FTP-сервера

Введение

FTP (File Transfer Protocol) – это стандартный сетевой протокол, используемый для обмена файлами между клиентом и сервером по сети. Он позволяет пользователям выполнять действия, такие как загрузка, скачивание, перемещение и копирование файлов. В данной статье мы рассмотрим, возможно ли копировать файлы на удаленных машинах с помощью FTP, а также выясним, какими методами можно это сделать.

Возможность копирования файлов через FTP

Как было указано выше, вы можете воспользоваться несколькими подходами для копирования файлов на одном и том же удаленном сервере, используя FTP. Однако важно понимать, что оригинальный протокол FTP не предоставляет прямых команд для копирования файлов. Вместо этого можно воспользоваться следующими методами:

  1. Координация серверных передач:
    FTP позволяет пользователю управлять передачами с одного сервера на другой через один клиент. Вы можете подключиться к серверу дважды, создавая два контроллера и при этом использовать команды FTP для указания серверу «говорить самому с собой».

    • Ссылаясь на RFC 959, раздел 2.3 и 5.2, можно узнать подробно о том, как организовать такие операции.
  2. SITE команда:
    Многие FTP-серверы поддерживают специальные команды SITE, которые могут быть настроены системными администраторами для обеспечения функционала копирования непосредственно на сервере. Эта команда может быть нестандартной и варьироваться в зависимости от реализации, поэтому следует ознакомиться с документацией вашего FTP-сервера.

  3. Команды RNFR и RNTO:
    Если задача заключается в перемещении файла, существует команда rename, которая может выполнять эту операцию. Для копирования необходимо использовать комбинацию команд RNFR (Recognize From) и RNTO (Recognize To) на существующем файловом ресурсе, при этом это создаст лишь новую ссылку на файл, а не его полноценную копию.

Применение lftp

Если ваш FTP-клиент поддерживает команды FXP (FTP eXchange Protocol), вы можете создать циклическое соединение к серверу для передачи файлов без необходимости сетевых операций (т.е. для минимизации сетевых расходов).

При использовании командной строки lftp, вы можете использовать следующие команды для осуществления копирования:

lftp -u username,password ftp://yourftpserver.com

Затем выполните команду:

ftp> mirror --only-newer --verbose /path/to/source /path/to/destination

Ограничения HTTP

Следует учитывать, что FTP предназначен для обмена файлами и имеет ограничения для управления файловой системой. Если ваш FTP-сервер не поддерживает команду SITE для создания копий файлов, у вас могут быть ограничения на этом уровне.

Альтернативные методы

Если у вас есть доступ к серверу через Telnet, SSH, или RDP, лучше использовать команды операционной системы, такие как cp в Linux или copy в Windows, которые предоставят более полный контроль над файловой системой и позволят выполнять множество операций с файлами эффективно.

Заключение

Копирование файлов на удаленном сервере с использованием FTP может быть достигнуто через несколько методов, каждый из которых имеет свои ограничения и спецификацию. Понимание возможностей и ограничений протокола FTP позволит вам принимать обоснованные решения при управлении файлами на ваших серверах. Если доступ к более мощным инструментам возможен, рекомендуется использовать их для выполнения операций с файлами более эффективно.

Оцените материал
Добавить комментарий

Капча загружается...