Brug af rsync over ssh

rsync er til at holde store mappestrukturer i sync hurtigt og efektivt. Hvor SSH er god til at kopiere til mellem servere, så er rsync god til at holde filsystemet synkroniserede mellem to servere. Hvis du vil køre rsync over SSH , skal du bruge parameteren -e, som vist her.

$ rsync -av -e "ssh -p 22" greendome:/home/ftp/pub/ /home/ftp/pub/

Bemærk den efterfølgende / på source filen fra kilden (greendome). Dette efterfølgende / fortæller rsync at at den skal kopiere indholdet af mappen, men ikke biblioteket selv. Hvis du vil medtage den mappe som det øverste niveau af, hvad der bliver kopieret skal du ikke bruge / i source.

$ rsync -av -e "ssh" bcnu:/home/six .

Dette vil hente indholdet af ~/six på bcnu til den aktive path. Som standard vil rsync kun kopiere filer og mapper, men ikke fjerne dem fra den destination, kun kopi , når de fjernes fra kilden. For at holde kopierne nøjagtig i sync skal du bruge slette flaget: –delete

$ rsync -av -e "ssh" --delete greendome:~one/reports .

Nu når gamle rapporter er fjernet fra ~/rapporter/ på greendome, bliver de også fjernet fra ~six/public_html/reports/ på den synkroniserede server hver gang denne kommando køres. Hvis du kører en kommando som dette i cron , skal du ikke bruge -v switch. Dette vil holde output stille (medmindre rsync har et problem kørende, i hvilket tilfælde du vil modtage en e-mail med fejlen output) . Brug SSH som din transport til rsync trafik har den fordel at kryptere data over netværket og udnytter eventuelle tillidsforhold du allerede har etableret ved hjælp af SSH klient nøgler.

 

Author:

Jeg er en professionel system administrator og grundlægger af linuxboxen.dk Jeg er en ivrig Linux-elsker og open source-entusiast. Jeg bruger Ubuntu og tror på at dele viden. Bortset fra Linux, elsker musik og dyr. Jeg er en stor fan af Dire straits.

Skriv et svar