- Главная
- Блог
- Без категории
- SCP копирование файлов с удаленного сервера в Linux
SCP копирование файлов с удаленного сервера в Linux
Команды:
scp (secure copy protocol) - защищенный протокол копирования
scp -P (Port - порт) - указываем не стандартный порт SSH
scp -r (-recursive - рекурсивно) - все содержимое, включая подкаталоги
scp -p (-preserve - сохранять) - сохранять атрибуты файлов и директорий при копировании
Периодически, нам нужно будет получать или отправлять какие-нибудь файлы на сервер, либо какую-нибудь другую машину и сделать это можно через тот же протокол SSH используя утилиту scp
scp (secure copy protocol) - защищенный протокол копирования
Ubuntu Client
Допустим, мы хотим скопировать какие-то файлы с удаленного сервера, на нашу машину, для этого указываем команду.
scp -P 2222 it-skills@192.168.0.14:/home/it-skills/mtr_report.txt "/home/user-ubuntu/Рабочий стол"
"" - так как в пути используются русские символы и пробел
-P (Port) указываем порт, так как у нас он не стандартный
mtr_report.txt 100% 3452 547.8KB/s 00:00
Все, файл был скопирован к нам на рабочий стол, можем его открыть и посмотреть.
Давайте изменим содержание файла на "Привет всем!", переименуем в mtr_report_2.txt и отправим файл на сервер.
scp -P 2222 "/home/user-ubuntu/Рабочий стол/mtr_report_2.txt" it-skills@192.168.0.14:/home/it-skills
И, само собой, для того, чтобы мы могли копировать на машину или с неё, на ней должна быть установлена и запущена служба SSH, так как именно через SSH выполняется обмен данными.
Чтобы скопировать все файлы, каталоги и подкаталоги необходимо использовать ключ -r, т.е. все содержимое профиля пользователя it-skills с сервера.
scp -P 2222 -r it-skills@192.168.0.14:/home/it-skills "/home/user-ubuntu/Рабочий стол/it-skills_user"
-r (recursive - рекурсивно)
ini 100% 3685 1.3MB/s 00:00
user 100% 907 168.7KB/s 00:00
1cv8u.pfl 100% 527 75.1KB/s 00:00
lognhist.reg 100% 74 18.3KB/s 00:00
1cv8strt.pfl 100% 1594 1.0MB/s 00:00
1cv8conn.pfl 100% 1996 694.7KB/s 00:00
1cv8c.pfl 100% 26 6.2KB/s 00:00
registry.xml 100% 97 18.6KB/s 00:00
1cv8cmn.pfl 100% 6386 3.1MB/s 00:00
cacheData 100% 324 87.4KB/s 00:00
cacheStorage 100% 3556KB 35.7MB/s 00:00
1cv8.pfl 100% 58 39.6KB/s 00:00
100% 8 2.1KB/s 00:00
salt 100% 8 2.6KB/s 00:00
hsts-storage.sqlite 100% 12KB 2.4MB/s 00:00
salt 100% 8 4.6KB/s 00:00
salt 100% 8 5.1KB/s 00:00
ibases.v8i 100% 536 101.3KB/s 00:00
index 100% 1280KB 66.1MB/s 00:00
Tree 100% 35 22.2KB/s 00:00
salt 100% 8 5.0KB/s 00:00
salt 100% 8 5.0KB/s 00:00
.bashrc 100% 3771 2.2MB/s 00:00
mtr_report.txt 100% 3452 3.2MB/s 00:00
1cv8prim.pfl 100% 26 4.4KB/s 00:00
Важный нюанс, когда мы копируем файлы и директории, они создаются на нашей машине c правами, согласно логики конкретной машины и в результате, в финальном результате права на файлы и папки могут отличаться, от изначальных. Поэтому, чтобы принудительно оставить исходные права, нам необходимо добавить ключ -p, причем, так же сохранится и дата последнего изменения файла.
Ubuntu Srv
cd /home/it-skills/
chmod 777 mtr_report.txt
Ubuntu Client
scp -P 2222 it-skills@192.168.0.14:/home/it-skills/mtr_report.txt "/home/user-ubuntu/Рабочий стол"
ll
-rwxrwxr-x 1 user-ubuntu user-ubuntu 3452 окт 17 13:44 mtr_report.txt*
scp -P 2222 -p it-skills@192.168.0.14:/home/it-skills/mtr_report.txt "/home/user-ubuntu/Рабочий стол"
-p (preserve - сохранять)
ll
-rwxrwxrwx 1 user-ubuntu user-ubuntu 3452 окт 4 12:53 mtr_report.txt*
Да, теперь действительно, все права были скопированы корректно, и дата последнего изменения так же сохранилась.
Теперь вы знаете, как копировать файлы с удаленной машины и на удаленную машину, рекурсивным методом копировать все содержимое директории и её вложения, а также с сохранением прав доступа и даты изменения.