Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Açıklab profile imageZeki Ahmet Bayar
Zeki Ahmet Bayar forAçıklab

Posted on • Edited on

     

Rsync ile CentOS8 Üzerinde Dizin Senkronizasyonu

Rsync ile dizin senkronizasyonu yapmak için öncelikle sunucular arasında parolasız erişimi sağlamak gerekmektedir.

1- SSH Paketinin Kurulması

Senkronizasyon yapılacak sunucuların her ikisine gidilerek,

yuminstallssh
Enter fullscreen modeExit fullscreen mode

komutu ile SSH paketi kurulur.

2- SSH Konfigürasyon Ayarlarının Yapılması

Her ikisi sunucuda da,

cd ~mkdir .sshtouch .ssh/config .ssh/known_hosts .ssh/authorized_keys
Enter fullscreen modeExit fullscreen mode

komutları ile gerekli SSH dizin yapısı oluşturulur. Daha sonra ilk sunucuda,

nano .ssh/config
Enter fullscreen modeExit fullscreen mode

ile konfigürasyon dosyası açıldıktan sonra,

Host server02# İkinci sunucu kısa adı    HostName 10.0.0.2# İkinci sunucu ip adresi    User root# Rsync için kullanılacak user    Port 22
Enter fullscreen modeExit fullscreen mode

ikinci sunucunun bilgileri girilir. Aynı işlem ikinci sunucuda da, birinci sunucunun bilgileri girilerek uygulanır.

3- SSH Anahtarının Oluşturulması

SSH anahtarı oluşturmak için her iki sunucuda da,

ssh-keygen
Enter fullscreen modeExit fullscreen mode

komutu çalıştırılır. Gelen sorular boş geçilerek anahtar ikilisi oluşturulur.

ssh-keygenEnter fileinwhich to save the key(/root/.ssh/id_rsa):Enter same passphrase again:Your public key has been savedin /root/.ssh/id_rsa.pub.SHA256:*************************** username@pc+---[RSA 3072]----+|..B+             ||                 ||o.o..            ||+* ..         o  ||+.o.    S.. + ||.  ... oo o. E o||.... + ||+o +sssss     o  ||+o*o.*+o       |+----[SHA256]-----+
Enter fullscreen modeExit fullscreen mode

Her iki sunucuda da anahtar ikilisi oluşturulduktan sonra birinci sunucuda,

ssh-copy-id server02
Enter fullscreen modeExit fullscreen mode

ve ikinci sunucuda,

ssh-copy-id server01
Enter fullscreen modeExit fullscreen mode

komutları çalıştırılarak anahtarlar birbirlerine kopyalanır. Kopyalama işleminden sonra birinci sunucuda,

ssh server02exit
Enter fullscreen modeExit fullscreen mode

ve ikinci sunucuda,

ssh server01exit
Enter fullscreen modeExit fullscreen mode

komutları çalıştırıldığında parolasız erişimin sağlandığı görülmelidir. SSH bağlantılarının sonlandırılması için her bağlantı sonrasında exit komutu çalıştırılmalıdır.

4- Betiğin Sisteme Eklenmesi

4.1. - Gerekli Paketlerin Kurulması

yuminstallinotify-tools
Enter fullscreen modeExit fullscreen mode

ile gerekli paketler kurulur.

4.2. - Dosya Senkronizasyonu Betiğinin Sisteme Yerleştirilmesi

Gerekli dizini oluşturmak için,

mkdir /usr/share/rsync
Enter fullscreen modeExit fullscreen mode

komutu kullanıldıktan sonra,

nano /usr/share/rsync/file-sync.sh
Enter fullscreen modeExit fullscreen mode

komutu ile ilgili dosya açılır ve içerisine,

whileinotifywait-r-e modify,attrib,close_write,move,create,delete /bu/sunucuda/esitlenecek/dizin/;dorsync-aAXru--progress--delete /bu/sunucuda/esitlenecek/dizin/ server02:/karsi/sunucuda/esitlenecek/dizin/done
Enter fullscreen modeExit fullscreen mode

betiği yerleştirilir.

Bu betikte,/bu/sunucuda/esitlenecek/dizin/ yerine betiğin yerleştirileceği sunucuda eşitlenmesi istenen dizinin yolu verilmelidir.

/karsi/sunucuda/esitlenecek/dizin/ yerine ise, karşı sunucuda eşitlenmesi istenen dizinin yolu verilmelidir.

Bu uygulama her iki sunucuya da çapraz olarak yapılmalıdır.

5- Servis Dosyalarının Oluşturulması

Yukarıda hazırlanan betiklerin servis haline getirilip sürekli olarak senkronizasyonun sağlanması gerekmektedir. Bunun için,

nano /etc/systemd/system/rsync-client.service
Enter fullscreen modeExit fullscreen mode

komutu ile servis dosyası açılır ve içerisine,

[Unit]Description= SyncServiceAfter= network.target[Service]PIDFile= /run/syncservice/syncservice.pidUser= rootGroup= rootExecStartPre= /bin/mkdir /run/syncserviceExecStart= /bin/bash /usr/share/rsync/file-sync.shExecReload= /bin/kill-s HUP$MAINPIDExecStop= /bin/kill-s TERM$MAINPIDExecStopPost= /bin/rm-rf /run/syncservicePrivateTmp=true[Install]WantedBy= multi-user.target
Enter fullscreen modeExit fullscreen mode

dosyası eklenir.

Bu dosyanın değiştirilmesine gerek yoktur. Her iki sunucuya da aynı şekilde eklenmelidir.

6- Servislerin Başlatılması

Servisler hazırlandıktan sonra,

systemctl daemon-reloadsystemctl start rsync-client.servicesystemctlenablersync-client.service
Enter fullscreen modeExit fullscreen mode

işlemleri her iki sunucuda da yapılmalıdır.

Servisin doğru çalıştığı, çıktının aşağıda yer alan çıktıya benzerliği ile kontrol edilebilir.

[root@localhost ~]# systemctl status rsync-client.service● rsync-client.service - SyncService   Loaded: loaded(/etc/systemd/system/rsync-client.service; disabled; vendor preset: disabled)   Active: active(running) since Tue 2021-09-28 06:10:30 EDT; 13s ago  Process: 8286ExecStopPost=/bin/rm-rf /run/syncservice(code=exited,status=0/SUCCESS)  Process: 8284ExecStop=/bin/kill-s TERM$MAINPID(code=exited,status=0/SUCCESS)  Process: 8289ExecStartPre=/bin/mkdir /run/syncservice(code=exited,status=0/SUCCESS) Main PID: 8291(bash)    Tasks: 2(limit: 4755)   Memory: 592.0K   CGroup: /system.slice/rsync-client.service           ├─8291 /bin/bash /usr/share/rsync/file-sync.sh           └─8294 inotifywait-r-e modify,attrib,close_write,move,create,delete /root/yedek/Sep 28 06:10:30 localhost.localdomain systemd[1]: rsync-client.service: Succeeded.Sep 28 06:10:30 localhost.localdomain systemd[1]: Stopped SyncService.Sep 28 06:10:30 localhost.localdomain systemd[1]: Starting SyncService...Sep 28 06:10:30 localhost.localdomain systemd[1]: Started SyncService.Sep 28 06:10:30 localhost.localdomain bash[8291]: Setting up watches.  Beware: since-r was given, th>Sep 28 06:10:30 localhost.localdomain bash[8291]: Watches established.
Enter fullscreen modeExit fullscreen mode

NOT : Senkronizasyonda yaşanan gecikmeler veri kaybına sebep olabilir !

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

aciklab, linux, açık kaynak

More fromAçıklab

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp