Синхронизация на лаптоп с настолна машина и обратно

·3 min read·paskov

В тази статия ще покажа как с помощта на GNU/Linux и rsync да синхронизирате файлове и директории между настолния си компютър и лаптопа си.

1. Защо да синхронизираме файловете си?

Когато съм в университета, работя на лаптопа си: създавам нови файлове, редактирам съществуващи или добавям нова информация. Когато се прибера вкъщи, искам тези промени да се прехвърлят и на настолния ми компютър. Тук на помощ идва rsync, който ми помага да поддържам актуални копия на данните си и да намаля вероятността да работя с по-стара версия на някой файл.

Ако тази идея ви звучи непознато, можете да сравните rsync с функцията My Briefcase („Куфарче“) в Windows. rsync обаче предлага повече възможности и по-голяма гъвкавост.

2. Инсталиране на rsync

Повечето GNU/Linux дистрибуции предлагат готов пакет за rsync. Потърсете го в пакетния мениджър на вашата дистрибуция и го инсталирайте и на двата компютъра.

При Gentoo rsync обикновено вече е инсталиран, тъй като Portage го използва за синхронизация на хранилището.

При Debian GNU/Linux или Ubuntu изпълнете следната команда като root:

apt-get install rsync

3. Настройване на синхронизацията

Направете следните настройки на компютъра, от който ще изпращате файловете.

3.1. Създаване на директорията sync

Създайте директория с име sync в домашната си директория и влезте в нея:

cd
mkdir sync
cd sync

3.2. Избор на директории за синхронизация

С командата ln създайте символни връзки към директориите, които искате да синхронизирате. В примера потребителят е paskov; заменете пътищата с подходящите за вашата система:

ln -sf /home/paskov/documents/ ./documents
ln -sf /home/paskov/university/ ./university
ln -sf /home/paskov/gsm/ ./gsm
ln -sf /home/paskov/images/ ./images
ln -sf /home/paskov/projects/ ./projects
ln -sf /home/paskov/Mail/ ./Mail

3.3. Създаване и изпълнение на скрипта

Копирайте следния скрипт и задайте стойности на променливите SYNC_USER и RHOST. SYNC_USER е потребителското име, използвано и на двата компютъра, а RHOST е името или IP адресът на получаващата машина. Примерът предполага SSH достъп до получаващата машина и домашни директории в /home.

#!/bin/bash
# Author: Vladimir Paskov

SYNC_USER="paskov"
RHOST="mobile"
OPTIONS="-arLvu"

rsync "$OPTIONS" "/home/$SYNC_USER/sync/" \
    "$SYNC_USER@$RHOST:/home/$SYNC_USER/"

Променливата OPTIONS съдържа кратките опции за rsync, обединени в един аргумент. Опцията -L копира съдържанието, към което сочат символните връзки, вместо самите връзки. Опцията -u пропуска файловете, които са по-нови на получаващата машина. За повече информация изпълнете man rsync.

Запазете скрипта например като sync-files.sh и го направете изпълним:

chmod +x sync-files.sh

След това го стартирайте:

./sync-files.sh

Ако бъдете подканени за парола, въведете паролата на потребителя от отдалечения компютър.

Първото синхронизиране може да отнеме повече време, защото се копират всички необходими файлове. Следващите изпълнения обикновено са по-бързи, тъй като се прехвърлят само промените.

Скриптът изпраща файловете от локалния компютър към RHOST. За синхронизация в обратната посока го изпълнете на другия компютър, като създадете там същата структура ~/sync и зададете първия компютър като RHOST.