Как да копирате файлове с Rsync през SSH?

Как да копирате файлове с Rsync през SSH?

Friendly Geeks отново са на помощ с нова полезна статия. В този урок ще разгледаме необходимите стъпки, чрез които да копирате файлове с Rsync през SSH в CentOS 6.4, Debian или платформата Ubuntu.


Изисквания:
CentOS 6.4, Debian или Ubuntu, инсталиран на вашия компютър/ сървър
Достъп до SSH (Command line достъп до сървъра)
Root привилегии
Основни умения за работа с Linux

Rsync е чудесен инструмен, който ви позволява да прехвърляте и синхронизирате данни между сървъри. Тази команда може да се използва през SSH, което криптира връзката.

Инсталиране на Rsync
Ако командата не е включена по подразбиране в сървърната конфигурация, може лесно да го добавите, като използвате default package manager.

CentOS 6.4:

sudo yum install rsync

Debian/Ubuntu:

sudo apt-get install rsync

Проверка на конфигурацията на SSH
За да се уверите, че сте в състояние да прехвърляте файлове от/към отдалечен сървър, използвайки Rsync през SSH, първо опитайте да установите SSH връзка (Можете да научите как от нашата помощна статия - Как да настроите SSH ключове):

ssh user1@X.X.X.X

Където X.X.X.X е IP адресът на отдалечения сървър. Вместо един IP адрес, може да бъде използвано и хост име.
Ако връзката е успешна, не би трябвало да имате проблеми свързани с трансфера.
В зависимост от метода на SSH удостоверяването, конфигуриран на сървъра, може да бъдете препратени към въвеждане на SSH парола или ключова фраза за достъп при изпълнение на командата Rsync.

Transfer data using rsync

Копиране на файлове от локален сърър към отдалечен сървър:

rsync -v -e ssh /home/localuser/testfile.txt remoteuser@X.X.X.X:/home/remoteuser/transfer

В горния пример, ще копираме файл, наречен testfile.txt от текущия сървър към отдалечен и ще го поставим в папката /home/remoteuser/transfer.

Резултатът трябва да е подобен на следния пример:

sent X bytes received X bytes X.X bytes/sec
total size is X speedup is X.X

Ако отдалечения сървър не е конфигуриран да работи по подразбиране с SSH порт (различен от порт 22), това може да се дефинира в -e опцията:

rsync -v -e "ssh -p2222" /home/localuser/testfile.txt remoteuser@X.X.X.X:~/transfer

testfile.txt отново ше се копира в папката /home/remoteuser/transfer, която се намира в отдалечения сървър.

Копиране на файл от отдалечен сървър в локална папка:

rsync -v -e ssh remoteuser@X.X.X.X:/home/remoteuser/transfer/testfile.txt /home/localuser/

В горния пример ще копираме файл, наречен tesfile.txtt от отдалечен сървър в една локална папка, наречена /home/localuser/.

Синхронизиране на локална папка на отдалечен сървър:

rsync -r -a -v -e ssh --delete /home/localuser/testfolder <remoteuser@X.X.X.X:/home/remoteuser/testfolder>

Синхронизиране на папка от отдалечен сървър на локален сървър:

rsync -r -a -v -e ssh --delete remoteuser@X.X.X.X:/home/remoteuser/testfolder /home/localuser/testfolder

Важно! Използвайте "/" в края на path:
Ако "/" се поставя в края на папката източник, Rsync ще копира съдържанието на папката.
Когато не се използва "/" в края на папката източник, Rsync ще копира самата папка и съдържанието и.

Ако "/" се поставя в края на местоназначената папка, Rsync ще постави данните директно в папката. Когато не използвате "/" в края на целевата папка, Rsync ще създаде папка с това име и ще постави данните вътре в тази папка.

--delete - изтриване на файлове, които не съществуват в системата

-v - verbose (-vv ще предостaви по-подробна информация)

-e "ssh options" - посочи the ssh като remote shell

-a - archive mode - той запазва разширения (собственици, групи), пъти, символични връзки и устройства

-r - recurse в директории

-z - компресиране на файлови данни по време на прехвърлянето

--exclude 'foldername' – изключване на съответната папка от трансфер

-P – покажи напредъка по време на прехвърлянето

Етикети: #ip-adres #konfiguratsiya-na-ssh #kriptirane-na-fajlove #centos-6-4 #transfer-data #lokalen-sarvar #dostap-do-otdalechen-sarvar #kriptirana-vrazka #kopirane-na-fajlove #sinhronizirane-na-papka #debian #rsync #sinhronizirane-na-danni #ubuntu #ssh