Някога се притеснявате да не загубите данните си или да се уморявате да извършвате ръчно архивиране ежедневно или седмично? Използвай rsync
команда и автоматично синхронизирайте вашите локални файлове с отдалечен сървър толкова често, колкото желаете, без ръчна намеса. Моля, имайте предвид, че това ръководство изисква достъп до отдалечен Linux сървър (напр. AWS) и е написан под Ubuntu 20.04, въпреки че всяка дистрибуция на Linux трябва да работи добре.
Инсталирайте rsync
Преди всичко проверете дали или не rsync
е инсталиран. И на вашия локален компютър, и на уеб сървър изпълнете тази команда:
rsync -- версия
Ако получите текущата версия на rsync в замяна, тогава сте готови за следващия раздел. В противен случай, ако получите a командата не е намерена грешка, можете да инсталирате rsync
с тази команда:
sudo apt-get -y инсталира rsync
Генерирайте SSH ключ
Ще използваме a SSH ключ за удостоверяване на връзката между нашия локален компютър и отдалечения сървър. За да генерирате нов SSH ключ на вашия локален компютър в терминала, изпълнете командата:
Имате нужда от отдалечен достъп до вашия 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? Използвайте един от тези инструменти за клониране на устройства, за да клонирате вашия Linux диск.
- Linux
- Архивиране на данни
- Linux
- Архивиране в облак
- Домашна мрежа
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.