Перенос файла из Linux в Linux
Обновлено: 21.11.2024
Существует несколько способов передачи файлов между вашим компьютером и сервером Linux, некоторые из которых мы обсудим в этой статье.
Использование SCP (SSH)
SCP – это утилита, используемая для безопасного перемещения файлов и каталогов через SSH. С помощью команды SCP вы можете передавать файлы со своего компьютера на сервер Linux и наоборот. Поскольку эта утилита использует SSH для перемещения файлов, вам потребуются учетные данные SSH вашего сервера для передачи файлов.
SSH предустановлен на большинстве серверов Linux, но если нет, вы можете установить и включить его, выполнив следующие действия.
Откройте терминал Ubuntu и введите.
Загружать файлы через SCP
Команда Scp следует этому шаблону
Чтобы передать файл с вашего компьютера на сервер Linux, напишите эти команды
В приведенной выше команде сначала необходимо указать путь к файлу, который вы хотите скопировать с вашего компьютера на сервер Linux, затем имя пользователя и IP-адрес сервера Linux, а также путь, по которому вы хотите скопировать файл на сервере Linux, соответствующий этому шаблону ([email protected]: path/of/remote/file.ext).
После запуска этой команды потребуется пароль учетной записи пользователя сервера Linux
После ввода пароля файл будет загружен.
Скачать файлы через SCP
Чтобы загрузить файлы с сервера Linux на свой компьютер, вам необходимо предоставить SCP локальный путь к файлу или каталогу и путь на сервере Linux, куда вы хотите загрузить файл.
После выполнения этой команды потребуется пароль аутентификации сервера linux. После того, как вы введете пароль, файл будет безопасно скопирован на ваш компьютер.
Параметры командной строки SCP
Вы можете использовать различные флаги (известные как параметры командной строки) в команде SCP.
Флаг-p используется для изменения порта. По умолчанию ssh использует порт 22, но с флагом -p мы можем изменить порт 22 на что-то другое, например 2222.
Флаг -r используется для копирования папки и всего ее содержимого.
Флаг -i используется для аутентификации соединения с использованием пары криптографических ключей, хранящихся в файле, вместо имени пользователя и пароля.
Флаг -c используется для сжатия данных, которые вы хотите передать.
Флаг -q используется для подавления сообщения об ошибке и индикатора выполнения.
Передача файлов с помощью Netcat
Netcat — это утилита Linux, используемая для необработанной связи TCP/IP, передачи файлов, сканирования портов, устранения неполадок в сети и т. д. Она предустановлена во многих системах на базе Linux и в основном используется сетевыми администраторами.< /p>
Если Netcat еще не установлен, вы можете установить Netcat, введя следующую команду
Для передачи файлов с помощью Netcat необходимо ввести следующие команды. Включите сервер Netcat в режим прослушивания на любом порту, например (порт 4747), и введите путь к файлу, который вы хотите отправить.
Примечание. Сервер, отправляющий файл, будет использовать меньше знака в команде ‘ ’ в команде netcat.
Вы также можете передавать каталоги. Настройте принимающий хост для прослушивания порта, например. (4747).
Отправить его на хост-получатель, указанный в порту.
Каталог будет перенесен. Чтобы закрыть соединение, нажмите CTRL+C
Передача файлов по FTP
Вы можете установить FTP-сервер, такой как vsftpd, используя apt, выполнив эту команду.
После того, как пакет был установлен, вы должны запустить службу, набрав.
Затем вы можете подключиться к FTP-серверу, введя команду FTP и IP-адрес.
Он спросит у вас имя пользователя и пароль FTP-сервера. После того, как вы введете имя пользователя и пароль, вы будете подключены к вашему FTP-серверу.
Вы можете просмотреть все содержимое сервера, выполнив эту команду.
Загрузить через FTP
Если вы хотите скачать какой-либо файл с FTP-сервера, вы можете получить его, введя команду.
Файл будет загружен. Вы также можете использовать различные подстановочные знаки для загрузки нескольких файлов в каталог. Например ;
Будут загружены все файлы с расширением «.html».
Вы также можете настроить локальный каталог для загрузки файлов с FTP-сервера с помощью команды lcd.
Загружать файлы через FTP
Чтобы загрузить файлы на FTP-сервер, введите следующую команду.
Файл будет загружен на FTP-сервер. Чтобы загрузить несколько файлов, введите команды.
Будут загружены все файлы с расширением «.html».
Скачивание файлов с помощью Python
Если у вас не установлен Python, введите следующую команду.
Чтобы включить сервер Python, используйте команду.
Теперь сервер Python прослушивает порт 4747.
Откройте веб-браузер и введите IP-адрес и номер порта. на котором слушает сервер Python.
Откроется страница, содержащая все файлы и каталоги на сервере Python. Вы можете зайти в любой каталог и скачать файлы.
Вы можете перейти в любой каталог и скачать любой файл.
Заключение
SCP, Netcat, FTP и Python — наиболее распространенные способы передачи файлов. Все вышеперечисленные способы передачи файлов и каталогов являются быстрыми, надежными и используются в наши дни. Есть много других методов; вы можете использовать любой метод, который вы предпочитаете.
Об авторе
Усама Азад
Энтузиаст по безопасности, который любит Terminal и Open Source. Моя область знаний — Python, Linux (Debian), Bash, тестирование на проникновение и брандмауэры. Я родился и вырос в Вазирабаде, Пакистан, и в настоящее время учусь в Национальном университете науки и технологий (NUST). В Твиттере меня зовут @UsamaAzad14
Если вы используете рабочий или домашний сервер, перемещение файлов между локальными или двумя удаленными компьютерами является основным требованием. Есть много способов добиться этого. В этой статье мы говорим о scp (команде безопасного копирования), которая шифрует передаваемый файл и пароль, чтобы никто не мог их подсмотреть. С помощью scp вам не нужно запускать сеанс FTP или входить в систему.
Инструмент scp использует SSH (Secure Shell) для передачи файлов, поэтому все, что вам нужно, — это имя пользователя и пароль для исходной и целевой систем. Еще одним преимуществом является то, что с помощью SCP вы можете перемещать файлы между двумя удаленными серверами с вашего локального компьютера в дополнение к передаче данных между локальным и удаленным компьютерами. В этом случае вам нужны имена пользователей и пароли для обоих серверов. В отличие от Rsync, вам не нужно входить ни на один из серверов для передачи данных с одного компьютера на другой.
Это руководство предназначено для новых пользователей Linux, поэтому я постараюсь максимально упростить его. Приступим.
Скопируйте один файл с локального компьютера на удаленный:
Команде scp нужны источник и место назначения для копирования файлов из одного места в другое. Вот шаблон, который мы используем:
В следующем примере я копирую локальный файл из своей системы macOS на свой сервер Linux (Mac OS, будучи операционной системой UNIX, имеет встроенную поддержку всех инструментов UNIX/Linux).
Здесь swapnil — это пользователь на сервере, а 10.0.0.75 — это IP-адрес сервера. Вам будет предложено ввести пароль для этого пользователя, а затем безопасно скопировать файл.
Я могу сделать то же самое с моего локального компьютера с Linux:
Если вы используете Windows 10, вы можете использовать Ubuntu bash в Windows для копирования файлов из системы Windows на сервер Linux:
Скопируйте локальный каталог на удаленный сервер:
Если вы хотите скопировать весь локальный каталог на сервер, вы можете добавить к команде флаг -r:
Убедитесь, что исходный каталог не имеет косой черты в конце пути, в то же время конечный путь *должен* иметь косую черту.
Скопировать все файлы из локального каталога в удаленный каталог
Что делать, если вы хотите скопировать только все файлы из локального каталога в удаленный каталог? Это просто, просто добавьте косую черту и * в конце исходного каталога и укажите путь к целевому каталогу. Не забудьте добавить к команде флаг -r:
Копирование файлов с удаленного сервера на локальный компьютер
Если вы хотите сделать копию одного файла, каталога или всех файлов на сервере на локальный компьютер, просто следуйте тому же примеру, что и выше, просто поменяйте местами источник и место назначения.
Скопируйте один файл:
Скопируйте удаленный каталог на локальный компьютер:
Убедитесь, что исходный каталог не имеет косой черты в конце пути, в то же время конечный путь *должен* иметь косую черту.
Скопируйте все файлы из удаленного каталога в локальный каталог:
Надежное копирование файлов из одного каталога того же сервера в другой каталог с локального компьютера
Обычно я подключаюсь к этой машине по ssh, а затем использую команду rsync для выполнения задания, но с SCP я могу сделать это легко, не входя на удаленный сервер.
Скопируйте один файл:
Скопируйте каталог из одного места на удаленном сервере в другое место на том же сервере:
Скопируйте все файлы из удаленного каталога в локальный каталог
Копировать файлы с одного удаленного сервера на другой удаленный сервер с локального компьютера
В настоящее время мне нужно подключиться по ssh к одному серверу, чтобы использовать команду rsync для копирования файлов на другой сервер. Я могу использовать команду SCP для перемещения файлов между двумя удаленными серверами:
Обычно я подключаюсь к этой машине по ssh, а затем использую команду rsync для выполнения задания, но с SCP я могу сделать это легко, не входя на удаленный сервер.
Скопируйте один файл:
Скопируйте каталог из одного места на удаленном сервере в другое место на том же сервере:
Скопируйте все файлы из удаленного каталога в локальный каталог
Заключение
Как видите, как только вы поймете, как все работает, вам будет довольно легко перемещать файлы. Вот что такое Linux, просто потратьте свое время на понимание некоторых основ, и тогда все станет проще простого!
Узнайте больше о Linux из бесплатного курса «Введение в Linux» от The Linux Foundation и edX.
SCP (защищенное копирование) – это утилита командной строки, позволяющая безопасно копировать файлы и каталоги между двумя местоположениями.
С помощью scp вы можете скопировать файл или каталог:
- Из вашей локальной системы в удаленную систему.
- Из удаленной системы в локальную систему.
- Между двумя удаленными системами от вашей локальной системы.
При передаче данных с помощью scp файлы и пароль шифруются, чтобы никто, отслеживающий трафик, не получил ничего конфиденциального.
В этом руководстве мы покажем вам, как использовать команду scp, на практических примерах и подробных объяснениях наиболее распространенных параметров scp.
Прежде чем перейти к использованию команды scp, давайте начнем с изучения основного синтаксиса.
Синтаксис команды scp имеет следующий вид:
- ВАРИАНТ — параметры scp, такие как шифр, конфигурация ssh, порт ssh, лимит, рекурсивная копия и т. д.
- [user@]SRC_HOST:]file1 — исходный файл.
- [user@]DEST_HOST:]file2 — конечный файл
Локальные файлы должны указываться с использованием абсолютного или относительного пути, а имена удаленных файлов должны включать спецификацию пользователя и хоста.
- -P — указывает ssh-порт удаленного хоста.
- -p — сохраняет изменения файлов и время доступа.
- -q – используйте этот параметр, если хотите скрыть индикатор выполнения и сообщения, не связанные с ошибками.
- -C — этот параметр заставляет scp сжимать данные при их отправке на конечный компьютер.
- -r — этот параметр указывает scp рекурсивно копировать каталоги.
Команда scp использует ssh для передачи данных, поэтому для аутентификации в удаленных системах требуется ключ ssh или пароль.
Двоеточие ( : ) — это то, как scp различает локальные и удаленные местоположения.
Чтобы иметь возможность копировать файлы, у вас должно быть как минимум разрешение на чтение исходного файла и разрешение на запись в целевой системе.
Будьте осторожны при копировании файлов с одинаковым именем и расположением в обеих системах, scp перезапишет файлы без предупреждения.
При передаче больших файлов рекомендуется запускать команду scp внутри экрана или сеанса tmux.
Чтобы скопировать файл из локальной системы в удаленную, выполните следующую команду:
Где file.txt — это имя файла, который мы хотим скопировать, remote_username — это пользователь на удаленном сервере, 10.10.0.2 — это IP-адрес сервера. /remote/directory — это путь к каталогу, в который вы хотите скопировать файл. Если вы не укажете удаленный каталог, файл будет скопирован в домашний каталог удаленного пользователя.
Вам будет предложено ввести пароль пользователя, после чего начнется процесс переноса.
Если не указывать имя файла в месте назначения, копируется файл с исходным именем. Если вы хотите сохранить файл под другим именем, вам необходимо указать новое имя файла:
Если SSH на удаленном узле прослушивает порт, отличный от порта 22 по умолчанию, вы можете указать порт с помощью аргумента -P:
Команда копирования каталога очень похожа на команду копирования файлов. Единственное отличие состоит в том, что вам нужно использовать флаг -r для рекурсии.
Чтобы скопировать каталог из локальной системы в удаленную, используйте параметр -r:
Чтобы скопировать файл из удаленной системы в локальную, используйте удаленное расположение в качестве источника и локальное расположение в качестве места назначения.
Например, чтобы скопировать файл с именем file.txt с удаленного сервера с IP-адресом 10.10.0.2, выполните следующую команду:
Если вы не настроили вход по SSH без пароля на удаленный компьютер, вам будет предложено ввести пароль пользователя.
В отличие от rsync , при использовании scp вам не нужно входить на один из серверов для передачи файлов с одного удаленного компьютера на другой.
Вам будет предложено ввести пароли для обеих удаленных учетных записей. Данные будут передаваться напрямую с одного удаленного хоста на другой.
Чтобы направить трафик через машину, на которой выполнена команда, используйте параметр -3:
В этом руководстве вы узнали, как использовать команду scp для копирования файлов и каталогов.
Вы также можете настроить аутентификацию на основе ключа SSH и подключаться к своим серверам Linux без ввода пароля.
Если вы регулярно подключаетесь к одним и тем же системам, вы можете упростить рабочий процесс, определив все свои подключения в файле конфигурации SSH.
сообщить об этом объявлении
Я использую компьютер с Linux (centos), я уже подключился к другой системе с помощью ssh. Теперь мой вопрос: как я могу копировать файлы из одной системы в другую?
Предположим, в моей среде есть две системы, такие как System A и System B . Я использую компьютер с Системой A, а некоторые другие используют компьютер с Системой B.
Как скопировать файл из системы B в систему A? И скопировать файл из системы A в систему B?
отчасти связано: создайте зашифрованный архив локального каталога/ на удаленной машине с помощью ssh : tar -c dir/ | сжатие | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
Если у вас есть доступ к ftp удаленного сервера, мы также можем использовать wget для загрузки, например $wget -r --level=9 --no-parent --reject "index.html*" ftp:// :
Не повторяющийся, связанный вопрос конкретно просит не использовать scp ; для этого один scp подходит и является самым простым способом ответа, поэтому моды, пожалуйста, удалите дублирующийся флаг, так как если кто-то перейдет к другому, самый полезный ответ будет пропущен.
10 ответов 10
Чтобы скопировать файл из B в A при входе в B:
Чтобы скопировать файл из B в A при входе в A:
Чтобы уточнить, вы обычно не используете scp для копирования файла на локальный компьютер или с него (система A), когда вы вошли на удаленный сервер (система B) с помощью ssh . scp зарегистрирует вас на удаленном сервере, скопирует файл, а затем снова выйдет из системы в одном процессе, поэтому просто запустите его из оболочки на вашем локальном компьютере. При этом вы можете использовать scp, если вы вошли в систему B через SSH и хотите копировать файлы между системой B и системой C.
@DopeGhoti. Да, вы не можете перемещать файлы между двумя удаленными компьютерами. Либо источником, либо местом назначения должен быть локальный файл. Однако если вы войдете на удаленный компьютер с помощью ssh, вы сможете копировать файлы между двумя удаленными компьютерами из командной строки этого компьютера.
Кроме того, важно помнить, что вы можете использовать только scp для папки на целевом компьютере, для которой у вас есть разрешения. Если вы пытаетесь скопировать его в пункт назначения, на который у целевого пользователя нет разрешения, сначала скопируйте файл в домашний каталог или подкаталог пользователя, а затем ssh на целевой компьютер и sudo переместите его в конечный пункт назначения р>
Читайте также: