Команда scp linux примеры

10 Practical Examples of Using scp Command

Here are some practical and essential scp command example to show how to securely copy files between remote Linux systems.

You are probably already familiar with the cp command in Linux which is used to copy files in Linux. cp command can be used only on the local machine.

But what about copying files from a remote Linux system? To copy files from a remote server or to a remote server, you can use a command called scp.

scp command syntax

The syntax and the usage of scp command is similar to the cp command and you’ll see it shortly in these scp command examples.

But first let’s take a look at the syntax of scp command:

scp source_path destination_path

Depending on the origin of the file to be copied, the source can either be client or server. If the source is the client, then the destination is the server and vice-versa.

But that sounds too simple, isn’t it? The main focus of the scp command is n using the correct format for the source or destination path format.

A typical path to file or a directory on the server is represented in this format:

Actually, you can also use [email protected] in the scp command but it is more likely that you’ll end up with an error “Could not resolve hostname“.

This is because correlating the hostname to the IP address is dependent on the network configuration of the server’s network. Using the actual IP address saves you the trouble.

Things to keep in mind before using scp command

Here are a couple of things you need before you’ll be able to use the scp command on your Linux system:

  • Make sure that ssh is installed and running on both client and server machines as scp command internally uses ssh. If ssh is not installed, install it by using the command “sudo apt install ssh”on Debian based machines or using respective package managers of your distro.
  • You need to know the IP address of the remote system or the hostname (if it’s one the same subnet).
  • You need to know the username and password of the remote system. You will be prompted to enter the password of the remote host. Your file transfer will begin only when you enter the correct password of the remote host.
Читайте также:  Linux mint шрифт часов

Using scp Command in Linux: 10 Practical Examples

Now that we have seen the syntax of the scp command and format to specify the path to the server, let us now see how to use the scp command.

1. Copying a file to the remote system using scp command

To copy a single file from local machine to remote host, specify the path to the file as source path and path in the remote host where the file has to be copied.

2. Copying a file from the remote system using scp command

Copying a file from remote system to the local system is pretty much the same. You just need to specify the complete path to the file on the remote system and path on the local system.

So to copy file from remote system to the current directory, simply use the command in the following fashion:

3. Copying multiple files using scp command

To copy multiple files from the local machine to host, just specify the name of the files as the source path.

4. Copying an entire directory with scp command

Copying a directory using scp is also the same as the cp command. You can use the -r option and specify the name of the folder as the source path. This is called the recursive mode.

You can also specify more than one directory and copy them all in one single command.

5. See the file transfer details in the output

If you are curious to know what happens behind the scenes while copying, you can use -v option to see all the processes that are executed including debugging, exit status, encryption, decryption etc. It’s called the verbose mode.

6. Copying files across two remote hosts

So far, you have seen how to copy from local machine to a remote machine.
To copy files from one remote computer to another remote computer, specify the paths of both source and destination in remote computer’s format as discussed above.

Needless to say that you need to know password of both the systems here.

7. Copying files with compression [reduces transfer time]

If you try to copy a bunch of files together, it will take more time than the transfer of a single file of the size equivalent to the sum of all the individual files.

If you feel that you need to increase the speed of transferring files, you can compress the files by using -C option and transfer the files.

Читайте также:  Windows атрибуты файлов linux

The best thing is that the compression happens only while transferring. Once the transfer is completed, the files will be stored in their original form. You won’t see an arhcive file but all the individual files as they were on the remote server.

8. Limiting the bandwidth of file transfer

If you feel that transfer of files is utilizing most of the bandwidth, you can reduce the bandwidth of file transfer using -l option followed by the new bandwidth rate.

Note that the bandwidth you specify in the command is in kilobits per sec but while transferring the files, the scp command output will show the transfer rate in kilobytes per second.

Since 1 byte=8 bits, the8300 kilobits per second in the command parameter becomes 100 kilobytes per soond in the command output.

9. Preserving the original attributes of the copied files

If you need to preserve the original file attributes such as the file permissions and ownership, file timestamps, etc., use -p option.

10. Hiding the output of scp command

If you are not comfortable with the lengthy output of scp command, you can avoid the output of the command by using -q option. This is called the quite mode.

It even hides the progress of copying files.

In the above examples, you have seen how to copy the files to the remote host from the local machine. If you need to copy files from remote host to the local machine, write the path of the file/folder to be copied from the remote host as source path and the path where the file/folder has to be pasted in the local machine as destination path.

Conclusion

For more detail on the scp command, please refer to its man page.

I hope that you now understand how to make the best use of scp command to copy files between computers securely. Personally, I prefer using rsync command over scp because rsync has more features.

However, like the docker cp command, scp also follows a similar syntax to the common cp command. And that makes it an attractive choice for many Linux users.

If you come across any issues feel free to ask questions in the comment section below. And if you know any other awesome scp command tip, do share it with the rest of the us here.

Источник

Команда SCP Linux: безопасное копирование и передача файлов

img

SCP включает шифрование через соединение SSH (Secure Shell). Это гарантирует, что даже если данные будут перехвачены, они будут защищены.

Команда SCP Linux: безопасное копирование и передача файлов

Как безопасно копировать файлы с помощью SCP

Копировать файл с локального на удаленный сервер с помощью SCP

Команда scp позволяет использовать подстановочные знаки.

Используйте символ тильды ~/ для обозначения home/user каталога пользователя.

Вы можете указать строку текста со знаком * .

Например, /~/*.txt заставит SCP скопировать все файлы в домашнем каталоге, которые заканчиваются на .txt .

Как правило, вам не нужно указывать расположение файла в текущем каталоге. Если вы находитесь в каталоге /home/user и хотите скопировать файл test.txt на сервер, вы можете ввести следующее:

scp test.txt username2@destination:/location2

Чтобы скопировать все файлы .txt в домашний каталог username2 , введите следующее:

scp *.txt username2@destination_host:/~/

Если вы укажете только каталог назначения, SCP оставит имя файла как есть.

Читайте также:  Formatting usb linux fat32

Чтобы изменить имя файла, определите новое имя файла в месте назначения:

scp test.txt username2@destination_host:/user/home/user1test.txt

В этом примере файл test.txt копируется с локального компьютера, а затем сохраняется как user1test.txt в каталоге пользователя системы назначения.

Если удаленная система настроена на прослушивание SSH-запросов на порт, отличный от порта 22 по умолчанию, используйте переключатель –P , чтобы указать порт:

scp –P 1234 test.txt user2@destination_host:/location2/

Это копирует test.tx t из вашей локальной системы на целевой хост, используя порт 1234.

Копировать с одного удаленного хоста на другой

Вы не ограничены только подключением между локальным компьютером и удаленным сервером.

Чтобы скопировать из одной удаленной системы в другую:

scp user1@host1.com:/files/test.txt user2@user2.com:/files

Это приведет к репликации файла test.txt из каталога /files на host1.com в каталог /files на /host2.com. Система предложит вам ввести пароль для пользователей user1 и user2 до завершения операции.

Копирование больших файлов с помощью SCP

Если вы копируете большие файлы, запустите команду в терминальном мультиплексоре, например tmux .

Если операция прервана, мультиплексор позволит вам возобновить копирование без необходимости начинать заново.

Вы можете проверить, установлен ли в вашей системе tmux , выполнив в терминале следующее:

Рекомендации по использованию SCP

Команда scp не проверяет место назначения перед записью. Любые файлы в месте назначения с тем же именем будут перезаписаны без уведомления.

Вам будет предложено ввести пароль, когда вы нажмете Enter.

Используйте пароль пользователя в удаленной системе.

Управление разрешениями

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

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

Параметры команды SCP

scp [options] username1@source_host:/location1/file1 username2@destination_host:/location2/file2

Вот некоторые общие параметры команды scp:

  • –P — Указать порт SSH сервера
  • –p — сохранить метку времени для изменения и доступа (обратите внимание на строчные буквы)
  • –q — тихий режим, без отображения прогресса или сообщений (все равно будут отображаться ошибки)
  • –C — Сжимать данные во время передачи
  • –r — Рекурсивно — включать подкаталоги и их содержимое

Раздел, следующий сразу за параметрами, — это источник (путь) файла, который вы хотите скопировать. Вы можете скопировать из своей системы в удаленную или наоборот.

В следующем разделе указывается место, куда копируется файл. Например:

scp user@local_system:/home/user/test.txt admin@remote_system:/home/user

Это скопирует документ test.txt из пользовательского каталога в локальной системе и поместит копию в каталог учетной записи администратора в удаленной системе.

Другой пример SCP — чтобы скопировать файл с удаленного хоста на локальный:

scp user@from_host:file.txt /local/directory/

Итоги

В этом руководстве вы узнали, что такое команда scp и как ее использовать для защиты передачи файлов.

Источник

Оцените статью
Adblock
detector