Някога се притеснявате да не загубите данните си или да се уморявате да извършвате ръчно архивиране ежедневно или седмично? Използвай rsync команда и автоматично синхронизирайте вашите локални файлове с отдалечен сървър толкова често, колкото желаете, без ръчна намеса. Моля, имайте предвид, че това ръководство изисква достъп до отдалечен Linux сървър (напр. AWS) и е написан под Ubuntu 20.04, въпреки че всяка дистрибуция на Linux трябва да работи добре.

Инсталирайте rsync

Преди всичко проверете дали или не rsync е инсталиран. И на вашия локален компютър, и на уеб сървър изпълнете тази команда:

rsync -- версия

Ако получите текущата версия на rsync в замяна, тогава сте готови за следващия раздел. В противен случай, ако получите a командата не е намерена грешка, можете да инсталирате rsync с тази команда:

sudo apt-get -y инсталира rsync

Генерирайте SSH ключ

Ще използваме a SSH ключ за удостоверяване на връзката между нашия локален компютър и отдалечения сървър. За да генерирате нов SSH ключ на вашия локален компютър в терминала, изпълнете командата:

instagram viewer
Как да настроите SSH на Linux и да тествате вашата настройка: Ръководство за начинаещи

Имате нужда от отдалечен достъп до вашия Linux компютър или сървър? Ето как да настроите и конфигурирате SSH на Linux, Windows и мобилни устройства.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key

Когато бъдете подканени за парола, оставете го празно и натиснете клавиша Enter два пъти. Това ще генерира два нови файла във вашия ~/.ssh/ именувана директория rsync.key който е частният ключ и rsync.key.pub, публичният ключ.

Настройка на отдалечен сървър

Въпреки че не е задължително, за това ръководство ще създадем a нов потребител на отдалечения сървър за rsync връзки и за съхраняване на всички архивни файлове. Влезте в отдалечения сървър чрез SSH и изпълнете тази команда:

sudo useradd -m rsync

Горният пример използва потребителското име rsync, но можете да го промените с каквото пожелаете. В опцията просто казва на Linux да създаде домашна директория за нашия нов потребител.

За да позволите на вашия локален компютър да се удостовери, публичният SSH ключ, който беше генериран в предишния раздел, трябва да бъде копиран на отдалечения сървър. Отвори /~.ssh/rsync.key.pub файл в а текстов редактор и ще видите една голяма линия, която изглежда нещо подобно.

ssh-rsa потребител@хост

Тази дълга линия е публичният SSH ключ. Копирайте го в клипборда си и в рамките на вашия отдалечен сървър изпълнете тези команди:

sudo su rsync
mkdir -m 0700 $HOME/.ssh
echo "ssh-rsa AAAAB... потребител@хост" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys

Във втората последна команда заменете текста между кавичките с този дълъг публичен ключов ред на SSH. Това е всичко, вашият локален компютър вече ще може да се удостоверява с вашия отдалечен сървър.

Конфигурирайте ssh конфигурационния файл

За простота добавете запис към ~/.ssh/config файл на вашия локален компютър, за да се свържете лесно с отдалечения сървър. Отворете файла на вашия локален компютър с командата.

nano $HOME/.ssh/config

Във файла добавете запис за отдалечения сървър, като например:

резервен_сървър на хост
 име на хост 192.168.0.24
 потребителски rsync
 IdentityFile ~/.ssh/rsync

Променете името на хоста на IP адреса на вашия отдалечен сървър и ако сте използвали потребителско име, различно от "rsync", променете и това. Можете да използвате всичко, което пожелаете за хоста, но за този пример беше използван "backup_server". Запазете и затворете файла, като натиснете Ctrl+X, последвано от клавишите "Y" и Enter.

Тествайте вашата SSH връзка с отдалечения сървър с командата.

ssh резервен_сървър

Ако приемем, че всичко е настроено правилно, сега трябва да сте влезли във вашия отдалечен сървър чрез SSH. Затворете връзката с командата.

изход

Синхронизирайте вашите файлове

Сега тествайте rsync функционалност и например, за да синхронизирате вашата директория с документи на вашия локален компютър, изпълнете командата:

rsync -avz --progress ~/Documents/ backup_server:~/Documents

Първото появяване на ~/Документи/ определя локалния файл или директория за синхронизиране, резервен_сървър съответства на записа, добавен към ~/.ssh/config файл и края :~/Документи просто указва да се качи всичко в директорията /Documents на отдалечения сървър спрямо домашната директория.

Влезте в отдалечения сървър и трябва да видите нова директория с документи, която е синхронизирана с тази на вашия локален компютър. Всеки път, когато стартирате горната команда, ще бъдат качени само файлове, които са били променени от последния път, така че не качвате постоянно цялото съдържание на директорията.

Автоматизиране чрез Crontab

Сега, когато всичко е тествано и работи правилно, можем лесно да автоматизираме целия процес, като добавим задание за crontab към нашия локален компютър. За да синхронизирате автоматично вашата локална папка с отдалечения сървър на всеки 15 минути, изпълнете командата в терминала.

(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab

Може да получите съобщение „няма crontab за потребителя“ и можете просто да го игнорирате. Променете Документи директория към всичко, което искате да архивирате, но се уверете, че оставяте крайна наклонена черта за директории, в противен случай те няма да архивират правилно.

Проверете, за да се уверите, че заданието на crontab е добавено успешно с командата.

crontab -l

Ако видите заданието на crontab, което току-що е добавено, значи всичко е на мястото си. Изчакайте 15 минути, проверете вашия отдалечен сървър и всички необходими файлове трябва да са там. От сега всички промени, направени във вашите файлове, ще бъдат автоматично качени на отдалечения сървър на всеки 15 минути.

Изтеглете от отдалечен сървър

Можете също да използвате rsync за да изтеглите файлове от отдалечения сървър и да ги синхронизирате с вашия локален компютър. Използвайки горния пример за директория /Documents, в терминала изпълнете командата:

rsync -chavzP резервен_сървър:~/Документи/ ~/Документи

В ~./Документи директорията на вашия локален компютър вече трябва да бъде огледален образ на отдалечения сървър.

Включване и изключване на шаблони

Ако някога ви се наложи да синхронизирате само файлове, които съответстват на определен модел, като край с .html можете да използвате --включете модел. Изпълнете командата в терминала.

rsync -avz --включи "*.html" --прогрес ~/mysite/ backup_server:~/public_html

Проверете отдалечения сървър и ще видите, че само файлове с разширение .html от локалната директория /mysite/ са качени в отдалечената директория /public_html/. По същия начин можете също да синхронизирате всичко, освен определени файлове с -- изключване опция. Например, следната команда ще синхронизира всички файлове с изключение на тези с a .текст разширение.

rsync -avz --exclude "*.txt" --progress ~/mysite/ backup_server:~/public_html

Синхронизиране на две локални директории

Ако някога е необходимо, можете също да синхронизирате две локални директории с командата.

rsync -zvr ~/source/directory ~/destination/directory

Тази команда работи точно както при синхронизиране с отдалечен сървър, като единствената разлика е, че това са две локални директории.

Спокойно

Вече можете да въздъхнете с облекчение, знаейки, че шансовете ви за загуба на данни са значително по-ниски. В тази статия сте научили какво rsync е, как да генерирате и инсталирате SSH ключ, да дефинирате сървър в рамките на ~./.ssh/config файл, синхронизирайте локална и отдалечена директория и автоматизирайте целия процес чрез crontab. В бъдеще всички необходими файлове винаги ще бъдат синхронизирани с вашия отдалечен сървър само с 15 минути закъснение.

електронна поща
Как да клонирате вашия твърд диск на Linux: 4 метода

Трябва да клонирате вашия твърд диск или дял на Linux? Използвайте един от тези инструменти за клониране на устройства, за да клонирате вашия Linux диск.

Свързани теми
  • Linux
  • Архивиране на данни
  • Linux
  • Архивиране в облак
  • Домашна мрежа
За автора
Мат Дизак (публикувани 13 статии)Още от Matt Dizak

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.