Synkronisere filer og kataloger på tvers av systemer Bruke Rsync

Rsync er en åpen kildekode-programvare som kan brukes til å synkronisere filer /mapper fra lokale til lokale datamaskiner, eller lokale til eksterne datamaskiner og vice versa. Den bemerkelsesverdige trekk ved rsync er vi kan overføre krypterte filer ved hjelp av SSH, og SSL kryptert overføring kan gjøres ved hjelp Stunnel. Dessuten har rsysnc et trekk som ikke finnes i de fleste andre lignende programmer er at speilingen skjer med bare en overføring i hver retning, eliminerer meldingen latens overhead iboende i overføring av et stort antall små meldinger.
Også rsync har muligheter til å sende filer /mapper ved hjelp av komprimering og rekursjon. Dette programmet ble først annonsert i juni 1996, opprinnelig utviklet av Andrew Tridgell og Paul Mackerras. Rsync bruker "rsync algoritme", og gir en meget rask metode for å bringe eksterne filer inn i sync
Funksjoner
Noen av de bemerkelsesverdige funksjonene i rsync er gitt nedenfor.

  • kan oppdatere hele katalogtrær og filsystemer.

    eventuelt bevarer symbolske lenker, harde lenker, fileierskap, tillatelser, enheter og tider.

    krever ingen spesielle rettigheter for å installere.

    intern pipelining reduserer ventetid for flere filer.

    kan bruke rsh, ssh eller direkte stikkontakter som transport.

    støtter anonym rsync som er ideelt for speiling.
    Installasjon
    rsync er tilgjengelig på alle moderne Unix /Linux-systemer standard repositories
    på Debian /Ubuntu-baserte systemer.
     sudo apt-get install rsyncOn CentOS /RHEL baserte systemer: 
     yum install rsyncOn SUSE /opensuse systemer : 
     zypper i rsyncUsage 
    For hensikten med denne opplæringen, vil jeg være å bruke to Ubuntu 14.04 systemer. Min kilde system (lokal system) IP-adresse er 192.168.1.200/24, og mitt mål system (eksternt system) IP-adresse er 192.168.1.250/24. Jeg ønsker å synkronisere /home /sk /Downloads /katalog av kildesystemet (192.168.1.200) med /home /sk /sync /katalog av mottakersystemet (192.168.1.250).
    1. Å synkronisere en katalog fra lokalt system med et eksternt system, skriver du inn følgende kommando:
     rsync -azvr /home /sk /Downloads /[email protected]: /home /sk /syncThe over kommandoen vil synkronisere filer /mapper med /home /sk /Downloads av lokalt system med /home /sk /sync av eksternt system 
    Sample utgangs:
    Her

    a - indikerer arkiv
    z - indikerer komprimering

    v - indikerer verbose

    r - indikerer recursion

    192.168.1.250 - Remote (mottakersystemet ip-adresse)

    Hvis du vil kontrollere de synkroniserte filene på det eksterne systemet, gå til ekstern synkronisering mappen og vise innholdet ved hjelp av "ls" kommandoen
     ls /home /sk /sync /Sample utgang. 
    2. Synkronisere kataloger mellom lokale systemet selv:
    Hvis du ønsker å synkronisere filer /mapper i de lokale systemmapper, skriver du inn følgende kommando i stedet:
     rsync -azvr /home /sk /Downloads //home /sk /DocumentsThe kommandoen over vil synkronisere /home /sk /Dokumenter katalogen med /home /SK /Dokumenter katalog i det lokale systemet selv. 
    3. Synkronisere kataloger sikkert over SSH
    Hvis du vil overføre filer sikkert til eksternt system, bruk "-e ssh" alternativet.
     rsync -azvr /home /sk /Downloads /-e ssh [email protected]. 1.250: /home /sk /sync4. Overfør bare én fil: 
    å overføre én fil til de eksterne systemer, vil kommandoen bli som under
     rsync -azvr /home /sk /Downloads /ReadMe -e ssh [email protected]. : /home /sk /syncThe kommandoen over vil overføre ReadMe filen til /home /sk /sync /katalog av det eksterne systemet 
    5.. Synkronisere en katalog fra eksternt system til lokale systemet, bruker du følgende kommando sekvens:
     rsync -azvr [email protected]: /home /sk /sync /home /sk /Downloads /På samme måte kan du overføre en fil fra et lokalt system til eksterne systemet. 
    For mer detaljert rsync bruk vises man-sidene.
    mann rsyncIn eksemplene ovenfor, har vi lært det grunnleggende bruk av rsync kommandoer. Men vi kan gjøre det permanent synkronisering mellom lokale og eksterne systemer, og planlegge dem på et bestemt intervall. For dette formålet, la oss synkronisere filer /mapper på /home /sk /Downloads av lokalt system med /home /sk /sync av eksterne systemet permanent, og planlegge synkroniseringsprosessen på et bestemt tidspunkt.
    Først, sørg . at du har installert rsync og xinetd pakker på både kilde- og mottakersystemer
    Slik installerer xinetd på Debian /Ubuntu-systemer, bruker du følgende kommando:
     sudo apt-get install xinetdOn RHEL baserte systemer: 
     yum install xinetdNow, har vi å gjøre noen endringer i konfigurasjonsfilene 
    Gjør følgende endringer på destinasjons systemer.
    Først, redigere filen /etc /default /rsync, etter < pre> sudo vi /etc /default /rsyncFind følgende linje, etter
     RSYNC_ENABLE = falseChange det å ligne nedenfor. 
     RSYNC_ENABLE = inetdSave og lukk filen. 
    Så, redigere filen /etc/xinetd.d/rsync,
    Merk: Listen filen vil ikke bli funnet på Ubuntu /Debian-fil. Du må opprette og legge linjene som er nevnt nedenfor.
     sudo VI /etc/xinetd.d/rsyncAdd/edit linjer, som vist nedenfor. 
     tjenesten rsync {deaktivere = ingen socket_type = stream vente = ingen user = root server = /usr /bin /rsync server_args = --daemon log_on_failure + = brukerid flagg = IPv6} Opprett fil /etc/rsyncd.conf, etter 
     sudo vi /etc/rsyncd.confAdd den følgende linjer:. 
     [del] path = /home /sk /synchosts tillate = 192.168.1.200hosts nekte = * list = trueuid = rootgid = rootread bare = falseSave og lukke filen 
    Her /home /sk /sync er målet system synkronisering katalogen. 192.168.1.200 er kilden system ip-adresse.
    Start xinetd og rsync service.
     sudo /etc/init.d/xinetd restartsudo /etc/init.d/rsync restartNow, gå til kilden system ( lokalt system), og start synkronisering med følgende kommando: 
     rsync -azvr /home /sk /Downloads /192.168.1.250::share
    Configure passord mindre SSH innlogging for Remote systemer
    < p> For å ta ekstern backup, må du sette opp passordet mindre SSH pålogging for eksterne systemer, slik at du trenger ikke å gå inn den eksterne brukeren passord hver gang.

    Tast inn følgende kommando på det lokale systemet (192.168.1.200) for å generere SSH nøkler:

     ssh-keygen -t rsa 

    Prøve utgang:

     Generering offentlig /privat RSA nøkkel pair.Enter filen der du vil lagre nøkkelen (/home/sk/.ssh/id_rsa): Skriv inn passordet (tom for ingen passord): Skriv inn samme passfrase igjen: Din identifikasjon er lagret i /home/sk/.ssh/id_rsa.Your offentlige nøkkelen er lagret i /home /sk /.ssh /id_rsa.pub.The Fingeravtrykket er: B9: 1c: 7a: 02: 88: 02: 47: af: 15: 3d: 74: 5f: 84: 3d: 00: 45 sk @ skThe Nøkkelen er randomart bilde: + - [RSA 2048] ---- + | . .o. o + E = o || . . .o. ... o ||. . o. . . || .o +. || o o. S ||. . o o || o + || o || | + ----------------- + 

    Kopier id_rsa.pub nøkkelfilen til eksterne systemer:

     ssh-copy-id -i /home /sk /.ssh /id_rsa.pub [email protected] 
     /usr /bin /ssh-copy-id: INFO: prøver å logge inn med den nye nøkkelen (e), til å filtrere ut noen som allerede er installert /usr /bin /ssh-copy-id: INFO: en nøkkel (er) gjenstår å bli installert - Hvis du blir bedt om nå er det å installere den nye [email protected]'s passord: Antall tasten (e) lagt : 1Now prøve å logge inn i maskinen, med: "ssh '[email protected]'" og kontroller for å sikre at bare nøkkelen (e) du ønsket ble lagt 

    Nå kan du logge inn på server med ssh uten passord. .

    Konfigurer Cron jobber

    Hvis du vil kjøre synkroniseringsprosessen på et bestemt intervall hver dag, legge følgende oppføringer i crontab
    Angi kommandoen.

     crontab -eAdd følgende linje: 
     00 05 * * * rsync -azvr /home /sk /Downloads /192.168.1.250::shareThe cron jobb filen vil kjøre hver dag på 5 am, og starter synkroniseringsprosessen automatisk .! 
    Cheers