summaryrefslogtreecommitdiff
path: root/LINUX/SCP, SFTP.md
blob: e133e5fe4de42d54cefd370a0d908c735f2931ad (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
Скопируем файл с удаленного хоста в локальный каталог:
$ 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.