Linux: rsync, scp передача файлов между серверами Linux

RSYNC

rsync – удобная утилита для выгрузки файлов с одного сервера на другой. Часто используется для backup. Rsync поддерживает шифрование (для уменьшения объема передаваемых данных) и может работать по ssh (мной только так и используется) при использовании опции -e (для безопасной передачи по сети). Есть и реализация на Windows, по слухам работает ок. Rsync может использоваться (и используется ;)) для Backup, синхронизации файлов между серверами.

Выгружаем рекурсивно -r все файлы и папки (кроме скрытых) у пользователя <username> на сервере <server> доступного по ssh на кастомном порту <port> в папку пользователя <username2> на локальном сервере. Отображаем процесс получения данных -v (verbose).

rsync -v -r -e "ssh -p <port>" <server>:/home/<username>/* /home/<username2>/

SCP

examples

с удаленного хоста кладем на локальный

scp support@<host>:/home/<dir>/<file> /home/<dir>/

с локального на удаленный

scp /home/<dir>/ support@<host>:/home/<dir>/<file>

копируем и файлы и папки с опцией -r (recursive, по аналогии с обычным cp)

scp -r 192.168.1.116:/home/user/* /home/user/

scp может работать с аутентификацией с использованием ssh-ключей

scp -i key.pem dump.pcap ubuntu@1.1.1.1:/home/ubuntu/dump.pcap

с помощью sshpass можно пройти аутентификацию и выгрузить файл(ы), без использования expect. Опция StrictHostKeyChecking=no позволяет подключаться к хостам, ключи которых отсутствуют в knownhosts.

sshpass -p "12345" scp -o StrictHostKeyChecking=no  ubuntu@1.1.1.1:/home/file /home/file

scp может не работать если в ssh задано кастомное приветствие в .bashrc/.profile.

Check the target user's .bashrc or equivalent file. ~/.bashrc is sourced for non-interactive logins. If there's an echo or command that outputs anything, it will break the SCP protocol.

TAR

Перед передачей желательно использовать tar + gz. Подробнее об архивации и компрессии тут.

tar -czf 10.225.12.242.tar.gz /var/log/

 

Leave a Reply