blob: a470d9ddeea37c8329bd193ba2442342932d2440 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
*Загружаем все файлы из текущей папки на сервер в нужную директорию*
`scp * vlapa@vlapa.ru:/var/www/html/
*Устанавливаем правильные права доступа (если вдруг файлы недоступны)*
`sudo chmod 644 /var/www/html/favicon*
Скопируем файл с удаленного хоста в локальный каталог:
$ scp user@host:/path/to/file /local/dir
Скопируем файлы с локального компьютера на удаленный хост:
$ scp /local/dir/file user@host:/remote/dir
Скопируем файл с одного удаленного хоста на другой:
$ scp user1@host1:/remote/file user2@host2:/remote/dir
========================================
Прога **sftp** не требует постоянно указывать адрес **ssh** сервера. Вместо этого мы подключаемся к нему один раз и используем интерфейс **get** и **put**:
$ sftp user@host
sftp> get /remote/dir/file /local/dir
sftp> put /local/dir/file /remote/dir
Для передачи каталогов используем флаг "**-r**":
$ scp -r /local/dir user@host:/remote/dir
$ sftp> put -r /local/dir /remote/dir
***Также хочется отметить, что **sftp** имеет важное преимущество перед обычным **ftp** — она не требует, чтобы на удаленном узле работал сервер **FTP**. Ей необходим только **SSH**.
========================================
```sh
mkdir bot
scp /полный/путь/к файлу/скрипта/bot.py vlapa@10.10.10.2:~/work_prog
# Копируем файл на сервер (копирум = что -> куда):
scp -r source_file_name username@destination_host:destination_folder
# параметр: -r – рекурсивное копирование папок (включая подкаталоги)
scp /etc/wireguard/wg0.conf vlapa@10.0.0.1:/home/vlapa/wg000.conf
scp vlapa@10.0.0.1:/home/vlapa/wg0.conf log.txt
scp path/myfile user@8.8.8.8:/full/path/to/new/location/
# Копируем файл с сервера:
scp user@8.8.8.8:/full/path/to/file /path/to/put/here
```
```
-r - рекурсивное копирование
-p - сохраняет временные метки и права доступа на файлы
-q - тихий режим. Подавляет все сообщения, кроме ошибок
-C - включает сжатие данных
-P 1345 - указывает порт подключения к удаленному хосту
```
💻 **Передача файлов с помощью scp**
Когда нам необходимо быстро передать файл на сервер или наоборот, скопировать файл с сервера на локалку, мы можем воспользоваться утилитой — **scp (Secure Copy Protocol)**.
SCP — это утилита командной строки в Linux, используемая для безопасной передачи файлов между локальным и удаленным узлами или между двумя удаленными узлами. Она использует протокол SSH (Secure Shell) для передачи данных, обеспечивая безопасное копирование файлов с использованием тех же мер аутентификации и безопасности, что и SSH.
⚙️ **Примеры использования**
• Копирование файла на удалённый сервер:
`scp file.txt user@remote_host:/path/to/destination
• Скачивание файла с сервера:
`scp user@remote_host:/path/to/file.txt ./
• Передача директории:
`scp -r папка user@remote_host:/path/to/destination
`-r — ключ для копирования директории
• Указание порта SSH:
Если вдруг используется нестандартный порт, мы можем его передать установив флаг -P:
`scp -P 2222 file.txt user@remote_host:/path/to/destination
➡️ Для оптимизации передачи больших файлов, можем добавить флаг -C для сжатия файлов. А также, для проверки удачной передачи, включаем подробный вывод -v.
|