Ukwenza ama-backups ngokuzenzakalelayo nge-rsync ku-Linux

  • I-Rsync ivumela ama-backups asebenzayo ngokudlulisa izinguquko kuphela, igcina izimvume kanye ne-metadata kokubili endaweni kanye nange-SSH.
  • Ukuhlanganiswa kwezikripthi, ama-cron, noma ama-timer e-systemd kuguqula i-rsync ibe uhlelo lokusekela oluzenzakalelayo, olujikelezayo, futhi olucishe lungabi nokugcinwa.
  • Imikhuba emihle efana nokungafakwa, ukusetshenziswa ngokuhlakanipha kwe--delete, ukuqapha, kanye nokuhlolwa kokubuyiselwa kwenza umehluko ekuthembekeni kwangempela kwesipele.

Ukwenza ngokuzenzakalelayo ama-backups nge-rsync ku-Linux

Uma uphatha amaseva e-Linux noma unekhompyutha enedatha ongeke ukwazi ukuyilahla, ufunda ukuyisebenzisa i-rsync ukuze yenze izipele ngokuzenzakalelayo Cishe kuyimpoqo. Asikho isidingo sokusetha i-suite ebizayo noma ukuthembela kumathuluzi akhethekile: ngemiyalo embalwa ecatshangelwe kahle, ungaba nesistimu yokusekela eqinile, esebenza kahle, futhi elula ukuyinakekela.

Kuwo wonke lo mhlahlandlela uzobona Kusukela eziyisisekelo ze-rsync kuya ekuhleleni okuthuthukisiweAma-backup endawo, ama-backup akude nge-SSH, ama-backup esitayela se-Time Machine anezithombe, izikripthi ezilungele ukukhiqizwa, i-cron, ama-timer e-systemd, okungafakwanga, ukujikeleziswa, kanye nokuqinisekiswa. Bona eyethu Ukuqhathaniswa kwezindlela zokusekelayo ukunquma isu. Umqondo uwukuthi uqedele lesi sihloko ngohlelo olucacile nemiyalo ongayikopisha futhi uyivumelanise nendawo okuyo.

Kuyini i-rsync futhi kungani isetshenziswa kakhulu kuma-backups?

I-Rsync iyithuluzi lomugqa womyalo elenzelwe vumelanisa amafayela nezinhlu zemibhalo phakathi kwezindawo ezimbili, kungaba kukhompyutha efanayo noma phakathi kwemishini ehlukene, ngokuvamile nge-SSH noma nge-daemon yayo ye-rsyncd.

Inzuzo ye-rsync kune-cp noma i-scp elula ukuthi isebenzisa i-algorithm ehlakaniphile ye ukudluliselwa kwebhulokhi ehlukileIqhathanisa umthombo nendawo oya kuyo futhi ithumela izinguquko kuphela, hhayi ifayela lonke isikhathi ngasinye. Uma unedatha eningi futhi ushintsha izingcezu ezincane kuphela, ukonga isikhathi kanye nomkhawulokudonsa kukhulu kakhulu.

Ngaphezu kwalokho, i-rsync ingakwazi gcina cishe yonke imethadathaizimvume, abanikazi, amaqembu, izitembu zesikhathi, izixhumanisi ezingokomfanekiso, amadivayisi… Yingakho iwusizo kakhulu kuma-backup “angathi sína”, lapho okuqukethwe kungabalulekile khona kuphela, kodwa futhi nendlela uhlelo lwefayela olusethwe ngayo.

Enye inzuzo ebalulekile ukuthi i-rsync iyasebenza kokubili endaweni kanye nokudeUngayisebenzisa ukuvumelanisa amafolda amabili kuseva efanayo, ukudonsa idatha kusuka kuseva ekude uye emshinini wakho wokusekelayo, noma ukusunduza idatha ku-NAS noma i-VPS ekude usebenzisa i-SSH.

I-rsync ye-Linux

Faka futhi uhlole i-rsync ekusakazweni okuhlukile

Nakuba ukusatshalaliswa okuningi sekuvele kuza ne-rsync efakiwe, kungumqondo omuhle Qinisekisa ukufakwa bese ubuyekeza inguqulo yakamuva. kokubili emishinini yomthombo kanye nendawo oya kuyo ngaphambi kokufaka ama-backup akho okuzenzakalelayo.

Kuzinhlelo ezisekelwe ku-Debian noma ku-Ubuntu, ungenza into elula njengokuthi:

rsync --version
sudo apt update
sudo apt install rsync

Ekusabalalisweni okufana ne-RHEL, i-CentOS, i-Rocky Linux, noma ezinye izinto ezisuselwe kuzo, inqubo izoba yinto efanayo kakhulu, ishintshe umphathi wephakheji kodwa ngomqondo ofanayo wokuthi qinisekisa ukuthi i-rsync iyatholakala futhi isesikhathini kuzo zombili izimo ezeqisayo.

rsync --version
sudo dnf install rsync # En sistemas modernos
sudo yum install rsync # En sistemas más antiguos

Izinketho eziyisisekelo ze-rsync ozosebenzisa ngaso sonke isikhathi

Nakuba i-rsync inenqwaba yamapharamitha amaningi, ekusebenzeni kwama-backups uzochitha u-90% wesikhathi sakho usebenzisa... isethi encane yezinketho lokho kufanele kukhunjulwe ngekhanda.

Isakhiwo somyalo siphelele silula impela, kodwa kunemininingwane eyodwa enezela amathuba amaningi: ukushelela okulandelayo ezindleleni kushintsha ukuziphatha.

I-syntax ejwayelekile:

rsync ORIGEN DESTINO

Umehluko oyinhloko ulele endleleni ophatha ngayo isiqondisi somthombo:

# Copia el directorio como tal dentro del destino
rsync -av /source/dir /backup/

# Kopisha KUPHELA okuqukethwe kwesikhombisi endaweni oya kuyo
rsync -av /source/dir//backup/

Ezinye zezinketho zokusekela ezisetshenziswa kakhulu ziwusizo kakhulu ngoba Bahlanganisa izinto eziningi embhalweni omfushane.:

  • -a: imodi yefayela. Ilingana ne--rlptgoD (ephindaphindayo, igcina izixhumanisi ezingokomfanekiso, izimvume, izitembu zesikhathi, iqembu, umnikazi, namafayela akhethekile).
  • -v: Imodi ethi "Verbose". Ibonisa ukuthi yenzani nokuthi imaphi amafayela ewafinyelelayo.
  • -z: icindezela idatha ngesikhathi sokudlulisa, ilungele amakhophi akude nge-inthanethi.
  • -h: kwenza osayizi babukeke "bahle" (MB, GB…), bafanele abantu.
  • -P: ihlanganisa inqubekela phambili namafayela angaphelele, ukuze kubonwe ukuthi izinto zihamba kanjani futhi kukwazi ukuqhubeka.
  • -Susa: isusa amafayela angasekho emthonjeni endaweni oya kuyo, ishiya ikhophi enembile.
  • -n / –ukugijima okomile: ilingisa ukwenziwa ngaphandle kokuthinta lutho, kuhle kakhulu ngokungaphazamisi izinto.
  • –khipha / –khipha-kusuka: ikuvumela ukuthi ungafaki amaphethini noma uhlu oluphelele lwemizila ongafuni ukuyikopisha.
  • –isixhumanisi-ukuphela: idala izixhumanisi eziqinile nekhophi yangaphambilini, isisekelo sama-backups akhuphukayo ohlobo lwe-Time Machine.

Amakhophi endawo enziwa ngesandla kanye nezibonelo zokuqala

Isinyathelo sokuqala ngaphambi kokwenza noma yini ngokuzenzakalela ukuba imiyalo yokukopisha ngesandla ecacile neqinisekisiweAke sibukeze izimo ezijwayelekile esizosebenzisa kamuva ngaphakathi kwezikripthi.

Uma ufuna ukuhlanganisa isiqondisi sakho sasekhaya sibe yi- idiski yokusekelayo yendawoUmyalo omncane ubuzobukeka kanje:

rsync -av /home/usuario/ /mnt/disco_backup/usuario/

Le rsync iskena i- ikhasi lasekhaya liqedela ukugcinwa kwezimvume, izinsuku kanye nesakhiwofuthi ikopisha kuphela lokho okungekho noma okushintshile kusukela ngesikhathi sokugcina, okuvele kuyikhophi ehlelekile kakhulu ngaphandle kokwenza izinto zibe nzima.

Esinye isibonelo esivamile ukuvumelanisa idatha yephrojekthi, izithombe, noma amadokhumenti phakathi kwamafolda amabili kuseva efanayo noma ngisho namadiski ahlukene, ukuze umdlalo wesibili wendawo uhlale umusha.

rsync -av /media/fotos/ /backup/fotos/

Uma kukhulunywa ngedatha yesistimu ebucayi, njenge /njll noma /var/wwwKuvamile ukufuna ikhophi eyisibuko esifana ncamashi, isusa ku-backup lokho okunyamalala kokwasekuqaleni. Yilapho-ke inketho yokususa edumile ingena khona.

rsync -av --delete /var/www/ /backup/www/

i-rsync linux

Vikela ama-backups akude nge-SSH

Lapho i-rsync ikhanya khona ngempela yilapho uyihlanganisa ne I-SSH yokuthumela amakhophi kusuka kusevaNgale ndlela, ungagcina idatha yakho kwenye i-node kunethiwekhi yakho, i-NAS, noma i-VPS ku-inthanethi. Ngale ndlela, awuxhomekile kudivayisi eyodwa futhi ulandela ingxenye yomthetho odumile we-3-2-1 (okungenani ikhophi eyodwa engaphandle kwesayithi).

Okungcono kakhulu, kufanele ulungiselele ukuqinisekiswa kokhiye womphakathi esikhundleni sokufaka amaphasiwedi ngesandla ngaso sonke isikhathi. Uma usukopishe ukhiye kuseva yokusekelayo, imiyalo iba yinkimbinkimbi kakhulu.

# Empujar datos locales a un servidor remoto de backup
rsync -avz /etc/ backup@servidor-remoto:/backups/etc/

# Ukuletha idatha kusuka kuseva ekude emshinini wakho wokusekelayo
rsync -avz backup@remote-server:/var/www/ /backups/www/

Ezimweni ezithuthukisiwe kancane, ungalungisa Ukubethela kwe-SSH, imbobo, noma ukucindezelwa kusuka ku-rsync uqobo nge--e, isibonelo uma iseva yakho ilalele kwenye ichweba noma ufuna ukwenza ngcono isixhumanisi esihamba kancane.

rsync -avz \
-e "ssh -p 2222 -c -o Compression=no" \
/origen/ backup@servidor-remoto:/destino/

Icebo eliwusizo uma kukhona ukuxhumana okubuthakathaka noma amanethiwekhi abiwe ukusebenzisa –bwlimit ukugwema ukulayisha ngokweqile isixhumanisi futhi ungashiyi muntu ngaphandle kwe-inthanethi ngenkathi uqala ikhophi yasenqolobaneni enkulu.

rsync -avz --bwlimit=5000 /datos/ backup@servidor-remoto:/backups/datos/

Ama-backups aphelele, ahlukile, kanye nangokwengeziwe nge-rsync

Nakuba i-rsync isivele yenza ukudluliselwa okuhlukile ezingeni lebhulokhi, kusukela embonweni wesu lokusekelayo kufanelekile ukucatshangelwa izinhlobo ezintathu zamakhophi: okugcwele, okuhlukile, kanye nokukhuphukayoongakusebenzisa ngqo ngezinketho ze-rsync.

Ikhophi ephelele ilula: iphinda idale konke okuqukethwe komthombo endaweni oya kuyo, okulungile njenge isipele sokuqala noma ukuba nereferensi ehlanzekile.

# Copia completa de un árbol de directorios
rsync -a /ruta/origen/ /ruta/destino/

Ukukopisha okuhlukile kwakha phezu kwaleso sisekelo futhi kugxile ekugcineni indawo lapho uya khona ihambisana nomthombo, ukukopisha izinguquko nokususa lokho okungasekho. Yilokho ovame ukukusho uma ukhuluma... babe nesibuko sohlelo.

# Copia diferencial, manteniendo el destino idéntico al origen
rsync -a --delete /ruta/origen/ /ruta/destino/

Ingxenye emnandi kakhulu ukusekela ngokulondoloza "kwangempela" okuqhubekayo, lapho ngaphezu kokuvumelanisa, Ugcina imilando ngosuku ngaphandle kokuphinda idathaYilapho inketho ethi –link-dest iqala khona ukusebenza, edala izixhumanisi eziqinile ngokumelene nekhophi yangaphambilini yamafayela angakashintshi.

# Copia incremental apoyada en una copia previa
rsync -a --link-dest=/ruta/a/copiaprevia \
/ruta/origen/ /ruta/destino-incremental/

Ngale ndlela, ifolda ngayinye yokusekelayo ibonakala iyikhophi ephelele, kodwa ngaphakathi Amafayela afanayo abelana ngamabhulokhi kudiskiLokhu kunciphisa kakhulu isikhala esisetshenziswayo futhi kuvumela ukuzulazula okulula ngezithombe zomlando.

Amakhophi agciniwe esitayela se-Time Machine anezithombe ezimfushane nezixhumanisi eziqinile

Abantu abaningi bafuna ukuphinda kube lula ku-Linux Umshini Wesikhathi we-macOS onezithombe zawo ngosukuNge-rsync kungenzeka ngokuphelele ngokuhlanganisa i--link-dest, igobolondo elincane kanye nenhlangano ethile.

Umqondo uwukugcina isiqondisi samanje esikhomba kukhophi yokugcina enhle, bese ngasikhathi sinye udala amafolda anesitembu sesikhathi (usuku nesikhathi) ezimele isithombe ngasinye. Amafayela angashintshiwe axhunywe nezixhumanisi eziqinile esithombeni sangaphambilini, futhi amabhlogo amasha abhalwa kuphela uma kukhona umehluko wangempela.

Umyalo ojwayelekile kulolo hlelo ungaba into efana nale:

rsync -avPh --delete \
--link-dest="$TARGETDIR/current" \
"$SOURCEDIR/$USER/" \
"$TARGETDIR/$USER-$TIMESTAMP"

Ngemuva kwalokho iskripthi sinakekela ukubuyekeza isixhumanisi esingokomfanekiso okwamanje ukuze kuhlale kukhombe esithombeni sakamuvakanye nokugcina umlando omncane uhlelwe ngosuku. Ngaleyo ndlela, ungaphequlula amakhophi amadala ngokufaka ifolda oyithandayo.

Ukuzenzakalela kuza ngokwemvelo: ugcina iskripthi entweni efana naleyo /usr/local/bin/rsync-time-machine bese uyihlela ukuthi isebenze nsuku zonke ne-cron ngesikhathi esikufanele kakhulu.

0 5 * * * bash /usr/local/bin/rsync-time-machine

Yenza ngokuzenzakalelayo ama-backups nge-cron nsuku zonke

Kufika isikhathi lapho ukwenza amakhophi ngesandla kungasasebenzi; into evamile okufanele yenziwe Hlela ukwenza izipele nge-cron ukuze zisebenze ngokuzenzakalelayo ngezikhathi ezingezona ezimatasa (ngokwesibonelo ekuseni kakhulu) futhi ungakhohlwa ngazo ngaphandle kokuhlola amalogi ngezikhathi ezithile.

Inqubo iyafana njalo: ulungiselela iskripthi esenza ikhophi ephelele nazo zonke izinketho (okungafakwanga, amalogi, njll.), uyinika izimvume zokusebenzisa bese uyixhuma ku-crontab yomsebenzisi ofanele noma ukuze uyisuse uma kuhilela ukuthinta lonke uhlelo.

Isibonelo seskripthi esilula sokukopisha sendawo singaba:

#!/bin/bash
SOURCE_DIR="/home"
BACKUP_DIR="/backup/home"
LOG_FILE="/var/log/backup/rsync-local.log"
DATE=$(date +"%Y-%m-%d %H:%M:%S")

mkdir -p «$BACKUP_DIR» «$(igama lesisho «$LOG_FILE»)»
echo "Ukusekela ngokulondoloza kwendawo kuqalile" >> "$LOG_FILE"

rsync -av –susa
–khipha='*.tmp' \
–khipha='.i-cache' \
–khipha='Ukulanda/*' \
«$SOURCE_DIR/» «$BACKUP_DIR/» >> «$LOG_FILE» 2>&1

uma; khona-ke
echo » Isipele siqediwe ngempumelelo» >> «$LOG_FILE»
futhi
echo » Isipele esinamaphutha» >> «$LOG_FILE»
fi

Uma usunayo iskripthi, isibonelo, /usr/local/bin/rsync-local-backup.sh Futhi umakwe njengesebenzisekayo, uyayifaka ku-cron ukuze isebenze ngesikhathi esithile.

sudo chmod +x /usr/local/bin/rsync-local-backup.sh
sudo crontab -e

Ngaphakathi kwe-crontab ungafaka into efana nale:

0 2 * * * /usr/local/bin/rsync-local-backup.sh

ama-timer esistimu: enye indlela yesimanje esikhundleni se-cron

Ezinhlelweni zanamuhla kuvame ukuba wusizo Sebenzisa izibali zesikhathi zesistimu esikhundleni se-cronikakhulukazi uma ufuna ukuhlanganisa kangcono izinsizakalo, ukuphatha ukuxhomeka kwenethiwekhi, noma ukuba namalogi aphakathi ku-journalctl.

Umqondo uwukuchaza isevisi esebenzisa iskripthi sakho sokusekelayo kanye nesibali sikhathi esibonisa ukuthi kufanele siyisebenzise nini. Isevisi ingaba yinto efana nale:


Description=Rsync Backup Service
After=network-online.target
Wants=network-online.target

Uhlobo=isithombe esisodwa
I-ExecStart=/usr/local/bin/rsync-remote-backup.sh
Umsebenzisi=impande
I-StandardOutput=ijenali
Iphutha Elijwayelekile=ijenali
Isikhathi SokuvalaSekhondi=7200

WantedBy = mult-user.target

Futhi isibali sikhathi esihambisanayo singachazwa kanje, nge isipele sansuku zonke ngo-2 ekuseni ngokungahleliwe okuthile ukuze kunganqotshwa konke ngesikhathi esisodwa:


Description=Daily Rsync Backup Timer
Requires=rsync-backup.service

Ikhalenda=*-*-* 02:00:00
Okuqhubekayo = iqiniso
Ukulibaziseka okungahleliwe=10min

I-WantedBy=timers.target

Ngalokho, okusele nje ukulayisha kabusha i-systemd, ukusebenzisa i-timer, nokuqinisekisa ukuthi ihlela kahle nokuthi Ilogi yesevisi ikhombisa ukuthi amakhophi aqaliswa uma sekuyisikhathi.

sudo systemctl daemon-reload
sudo systemctl enable --now rsync-backup.timer
systemctl list-timers
journalctl -u rsync-backup.service

Hlela ama-backups ajikelezayo: nsuku zonke, masonto onke, kanye nenyanga zonke

Uma ufuna into eyinkimbinkimbi kakhulu kunekhophi eyodwa engaguquki, ungasetha isakhiwo se- ama-backups ajikelezayo: nsuku zonke, masonto onke, kanye nenyanga zonkekusetshenziswa izixhumanisi eziqinile ukuze kongiwe isikhala futhi kutholakale ukuze kuhlanzwe amafayela amadala.

Iphethini yakudala ihilela ukuba nesiqondisi samanje esibuyekezwa njalo nge-rsync bese sihlanganisa lowo muthi ngezixhumanisi eziqinile kumafolda ansuku zonke, amasonto onke kanye nanyanga zonke kuye ngosuku.

#!/bin/bash
SOURCE_DIR="/var/www"
BACKUP_ROOT="/backup/www"
CURRENT="$BACKUP_ROOT/current"
DAILY="$BACKUP_ROOT/daily"
WEEKLY="$BACKUP_ROOT/weekly"
MONTHLY="$BACKUP_ROOT/monthly"
DATE=$(date +%Y%m%d)
DOW=$(date +%u)
DOM=$(date +%d)

mkdir -p «$CURRENT» «$DAILY» «$VIKI NGESONTO» «$NYANGA NGENYANGA»

rsync -av -delete -link-dest=»$CURRENT»\
«$SOURCE_DIR/» «$CURRENT/»

&& cp -al «$CURRENT» «$DAILY/$DATE»
&& cp -al «$CURRENT» «$WEEKLY/$DATE»
&& cp -al «$CURRENT» «$NYANGA/$USUKU»

thola «$DAILY» -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
thola «$WEEKLY» -maxdepth 1 -type d -mtime +28 -exec rm -rf {} \;
thola «$MONTHLY» -maxdepth 1 -type d -mtime +365 -exec rm -rf {} \;

Ngalesi simiso unayo ifasitela lomlando elinengqondo ngaphandle kokugcwalisa idiski ngamakhophi aphelele, futhi isithombe ngasinye sihlala singasebenziseka njengefolda evamile.

Uma idatha yakho ishintsha ngokushesha noma inkulu kakhulu, ungalungisa izikhathi zokugcina, amaza, noma uhlanganise lokhu nezifinyezo ze-LVM noma ze-ZFS ukuqinisekisa ukuhambisana kwezizindalwazi noma imishini ebonakalayo.

Gada, qinisekisa, futhi uthole ukuthi ama-backup akho awusizo yini.

Ukuba nemisebenzi yokusekelayo esebenza nsuku zonke kuhle, kodwa uma kungekho muntu ohlola umphumela Ngeke kukusize ngalutho. Kubalulekile ukusetha ukuqapha okuyisisekelo ukuze wazi ukuthi ngabe kwenziwe nini futhi nini ikhophi yokugcina.

Icebo elilula ukushiya uphawu oluncane kufolda yendawo lapho ukwenziwa kwekhophi yasenqolobaneni kuqeda ngempumelelo, isibonelo, ifayela le-.last-backup-success elinedethi. Ngemuva kwalokho, iskripthi sangaphandle, noma ngisho nokuhlola kwe-Nagios/Icinga, kungakwazisa uma lelo fayela lidala kakhulu.

MARKER="/backup/www/.last-backup-success"
if ; then
echo "Marcador de backup no encontrado"
exit 1
fi

Omunye umkhuba onempilo ukuhlola Hlola amalogi e-rsync ukuze uthole amaphutha noma amazinga okudlulisa angajwayelekileIsikripthi esikhipha izibalo ezifana nokuthi "Inani lamafayela", "Usayizi ophelele", "Isivinini" nokunye okunjalo kukunikeza isithombe esifushane sendlela izinto ezihamba ngayo.

Futhi, vele, okwenza umehluko ngempela ukujwayelana nakho ngezikhathi ezithile. ukwenza ukuvuselelwa kwangempelaThatha ifayela elithile, ubuyisele inguqulo yangozolo noma yesonto eledlule, bese uhlola ukuthi ivula kahle. Lena ukuphela kwendlela yokuqiniseka ukuthi, uma konke kuhamba kabi ngolunye usuku, ama-backup akho azokwazi ukwenza umsebenzi.

Uma uhlanganisa zonke lezi zingcezu—i-rsync elungiselelwe kahle, ukuzenzekela nge-cron noma i-systemd, ukujikeleza okunengqondo, ukuqapha, nokubuyisela ukuhlolwa—uzogcina unayo uhlelo lokusekelayo lwe-Linux oluqinile, oluguquguqukayo, nolungabizi, esebenzisa ngokugcwele izinzuzo zesofthiwe yamahhala ngaphandle kokukuphoqa ukuthi ulahle ukulula noma ukuthembeka.

I-athikili ehlobene:
Umhlahlandlela ophelele wokwenza izipele ezingeziwe ku-Windows

Engeza njengomthombo okhethwayo