Aggódott valaha az adatok elvesztése miatt, vagy belefáradt a napi vagy heti manuális biztonsági mentések végrehajtásába? Használja a rsync
parancsot, és automatikusan szinkronizálja a helyi fájlokat egy távoli szerverrel, ahányszor csak akarja, manuális beavatkozás nélkül. Kérjük, vegye figyelembe, hogy ez az útmutató hozzáférést igényel egy távoli Linux szerverhez (pl. AWS), és az Ubuntu 20.04 alatt íródott, bár minden Linux disztribúció jól működik.
Az rsync telepítése
Mindenekelőtt ellenőrizze, hogy nem rsync
telepítve van. Mind a helyi számítógépen, mind a webszerveren futtassa ezt a parancsot:
rsync --version
Ha cserébe megkapja az aktuális rsync verziót, akkor készen áll a következő szakaszra. Ellenkező esetben, ha megkapja a parancs nem található hiba, telepítheti rsync
ezzel a paranccsal:
sudo apt-get -y telepíti az rsync-et
SSH kulcs generálása
Használjuk a SSH kulcs a helyi számítógépünk és a távoli szerver közötti kapcsolat hitelesítéséhez. Ha új SSH-kulcsot szeretne generálni a helyi számítógépen a terminálon belül, futtassa a következő parancsot:
Távolról kell elérnie Linux számítógépét vagy szerverét? Így állíthatja be és konfigurálhatja az SSH-t Linuxon, Windowson és mobileszközökön.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key
Amikor a rendszer jelszót kér, hagyja üresen, és nyomja meg kétszer az Enter billentyűt. Ez két új fájlt generál az Önön belül ~/.ssh/
nevű könyvtár rsync.key
amely a privát kulcs, és rsync.key.pub
, a nyilvános kulcs.
Távoli szerver beállítása
Bár nem kötelező, ehhez az útmutatóhoz elkészítjük a új felhasználó a távoli kiszolgálón az rsync kapcsolatokhoz és az összes biztonsági másolat tárolásához. Jelentkezzen be a távoli kiszolgálóra SSH-n keresztül, és futtassa ezt a parancsot:
sudo useradd -m rsync
A fenti példa a felhasználónevet használja rsync, de bármire módosíthatja, amit csak akar. Az -m
Az opció egyszerűen azt mondja a Linuxnak, hogy hozzon létre egy kezdőkönyvtárat új felhasználónk számára.
A helyi számítógép hitelesítéséhez az előző részben generált nyilvános SSH-kulcsot át kell másolni a távoli kiszolgálóra. Nyissa meg a /~.ssh/rsync.key.pub
fájl a szöveg szerkesztő és látni fog egy nagy vonalat, amely valahogy úgy néz ki.
ssh-rsa user@host
Ez a hosszú sor a nyilvános SSH-kulcs. Másolja a vágólapra, és a távoli szerveren futtassa a következő parancsokat:
sudo su rsync
mkdir -m 0700 $HOME/.ssh
echo "ssh-rsa AAAAB... user@host" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys
A második utolsó parancsban cserélje ki az idézőjelek közötti szöveget arra a hosszú nyilvános SSH-kulcssorra. Ez az, a helyi számítógép mostantól képes lesz hitelesíteni a távoli szervert.
Állítsa be az ssh konfigurációs fájlt
Az egyszerűség kedvéért adjon hozzá egy bejegyzést a ~/.ssh/config
fájlt a helyi számítógépen, hogy könnyen csatlakozhasson a távoli szerverhez. Nyissa meg a fájlt a helyi számítógépen a paranccsal.
nano $HOME/.ssh/config
A fájlon belül adjon hozzá egy bejegyzést a távoli szerverhez, például:
host backup_server
gazdagépnév 192.168.0.24
felhasználói rsync
IdentityFile ~/.ssh/rsync
Módosítsa a gazdagépnevet a távoli kiszolgáló IP-címére, és ha az „rsync”-től eltérő felhasználónevet használt, módosítsa azt is. Bármit használhat a gazdagéphez, de ebben a példában a "backup_server" értéket használtuk. Mentse és zárja be a fájlt a Ctrl+X, majd az "Y" és az Enter billentyűk lenyomásával.
Tesztelje az SSH-kapcsolatot a távoli kiszolgálóval a paranccsal.
ssh backup_server
Feltéve, hogy minden megfelelően van beállítva, most be kell jelentkeznie a távoli kiszolgálóra SSH-n keresztül. Zárja be a kapcsolatot a paranccsal.
kijárat
Szinkronizálja a fájlokat
Most tesztelje a rsync
funkciókat, és például a helyi számítógépen lévő Dokumentumok könyvtár szinkronizálásához futtassa a következő parancsot:
rsync -avz --progress ~/Documents/ backup_server:~/Documents
Az első előfordulása ~/Dokumentumok/
megadja a szinkronizálandó helyi fájlt vagy könyvtárat, backup_server
megfelel a hozzáadott bejegyzésnek ~/.ssh/config
fájlt és a végét :~/Dokumentumok
egyszerűen megadja, hogy mindent a távoli kiszolgáló /Documents könyvtárába kell feltölteni a saját könyvtárhoz képest.
Jelentkezzen be a távoli kiszolgálóra, és egy új Dokumentumok könyvtárat kell látnia, amely szinkronban van a helyi számítógépével. A fenti parancs minden egyes futtatásakor csak a legutóbbi alkalom óta módosított fájlok kerülnek feltöltésre, így nem tölti fel folyamatosan a könyvtár teljes tartalmát.
Automatizálás a Crontab segítségével
Most, hogy mindent teszteltünk és megfelelően működik, egyszerűen automatizálhatjuk a teljes folyamatot egy crontab feladat hozzáadásával a helyi számítógépünkhöz. Ha 15 percenként automatikusan szinkronizálni szeretné a helyi mappát a távoli szerverrel, futtassa a parancsot a terminálon belül.
(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab
Kaphat egy "no crontab for user" üzenetet, és figyelmen kívül hagyhatja. Változtasd meg a Dokumentumok
könyvtárba, amire biztonsági másolatot szeretne készíteni, de ügyeljen arra, hogy hagyjon egy záró perjelet a könyvtárakhoz, különben nem készülnek megfelelően biztonsági mentésük.
Ellenőrizze, hogy a crontab feladat sikeresen hozzáadva a paranccsal.
crontab -l
Ha látja az imént hozzáadott crontab feladatot, akkor minden a helyén van. Várjon 15 percet, ellenőrizze a távoli szervert, és minden szükséges fájlnak ott kell lennie. Mostantól kezdve a fájlokon végzett összes módosítás 15 percenként automatikusan feltöltődik a távoli szerverre.
Letöltés távoli szerverről
Ön is használhatja rsync
fájlok letöltéséhez a távoli szerverről és szinkronizálásához a helyi számítógépre. A fenti /Documents könyvtár példájával a terminálon belül futtassa a parancsot:
rsync -chavzP backup_server:~/Documents/ ~/Documents
Az ~./Dokumentumok
A helyi számítógépen lévő könyvtárnak most a távoli kiszolgáló tükörképének kell lennie.
Minták felvétele és kizárása
Ha valaha is csak olyan fájlokat kell szinkronizálnia, amelyek megfelelnek egy bizonyos mintának, például a következővel: .html
használhatja a --beleértve
minta. A terminálon belül futtassa a parancsot.
rsync -avz --include "*.html" --progress ~/mysite/ backup_server:~/public_html
Ellenőrizze a távoli kiszolgálót, és azt fogja látni, hogy csak a .html kiterjesztésű fájlokat töltötték fel a /public_html/ távoli könyvtárba a helyi /mysite/ könyvtárból. Hasonló módon, bizonyos fájlok kivételével mindent szinkronizálhat a -- kizárni
választási lehetőség. Például a következő parancs minden fájlt szinkronizál, kivéve azokat, amelyeknél a .txt
kiterjesztés.
rsync -avz --exclude "*.txt" --progress ~/mysite/ backup_server:~/public_html
Két helyi könyvtár szinkronizálása
Szükség esetén két helyi könyvtárat is szinkronizálhat a paranccsal.
rsync -zvr ~/forrás/könyvtár ~/cél/könyvtár
Ez a parancs pontosan ugyanúgy működik, mint távoli kiszolgálóval való szinkronizáláskor, az egyetlen különbség az, hogy ez két helyi könyvtár.
Nyugi
Most megkönnyebbülten fellélegezhet, tudván, hogy az adatvesztés esélye lényegesen kisebb. Ebből a cikkből megtudta, mit rsync
Az SSH-kulcs létrehozása és telepítése, a szerver meghatározása a ~./.ssh/config
fájlt, szinkronizáljon egy helyi és távoli könyvtárat, és automatizálja a teljes folyamatot a crontab segítségével. A továbbiakban az összes szükséges fájl mindig csak 15 perces késéssel szinkronizálódik a távoli szerverrel.
Klónoznia kell Linux merevlemezét vagy partícióját? Használja az alábbi meghajtóklónozó eszközök egyikét a Linux lemez klónozásához.
- Linux
- Adatmentés
- Linux
- Biztonsági mentés a felhőből
- Otthoni hálózat
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!
Még egy lépés…!
Kérjük, erősítse meg e-mail címét az imént küldött e-mailben.