Değişiklik yapmadan önce, dosyaları geri yükleyebilmeniz için güvenli bir yere kaydetmeniz yararlı olabilir. Dosyaların yalnızca değişen kısımlarını kopyalayarak trafiği en aza indiren rsync yardımcı programı bu görevde yardımcı olacaktır.
Öncelikle eğer paket mevcut değilse her iki sunucuya da paketi kuralım. Aşağıdaki komutu kullanıyoruz:
sudo apt-get install rsync (CentOS için apt-get yerine yum kullanın)
Bir uzak sunucudan kopyalamak için, kopyalamaya başlamadan önce bir parola girmemiz gerekeceğinden, doğal olarak ona erişmemiz gerekir. Örneğimizde, veriler /remote/source dizininden /local/destination dizinine kopyalanacak ve dizin mevcut değilse oluşturulacak ve içinde var olan dosyaların üzerine yazılmayacak:
rsync -avzP --stats [email protected]:/remote/source/ /local/destination/
- -a tarihler, sembolik bağlantılar ve dosya izinleri hakkındaki bilgileri kaydeder
- -z verileri arşivler
- -v, programın çalışması sırasında mesajların ayrıntı düzeyini artırır
- -P, “progress” (kopyalama sırasındaki ilerlemeyi göster) ve “kısmi”yi (bağlantı koptuğunda kopyalamaya devam etmek için) birleştirir
Her şeyin yolunda gittiğinden emin olmak istiyorsanız, ek olarak “prova” seçeneğini ekleyebilirsiniz – bu durumda, yardımcı program bir günlük girişi ile bir kopyalama simülasyonu başlatır, ancak dosyaların gerçek kopyalanması gerçekleşmez.
Uzak bir sunucuya kopyalamak için, kopyanın yapılacağı dizin için bir bağlantı kurun:
rsync -avzP --stats /local/source/ [email protected]:/remote/destination/
Kapanış eğik çizgisi hakkında not:
Bir dizinin yolunu kaynak olarak belirtirken, dizin adının sonundaki / karakteri olan kapanış eğik çizgiye dikkat etmelisiniz. Kapanış eğik çizgi iç içerik anlamına gelir, yani /source/ bir eğik çizgi ile biterse, rsync /source/ içeriğini /destination/ dizinine kopyalar. Ancak /source’ta eğik çizgi yoksa, rsync /destination/ içinde bir dizin dizini oluşturur ve /source/’ın tüm içeriğini /destination/source/’a kopyalar. Bununla birlikte, kopyanın yer alacağı dizinin adında bir kapanış eğik çizginin varlığı veya yokluğu önemli değildir.
Kaynaklar:
- https://help.ubuntu.com/community/rsync
- https://www.servers.ru/knowledge/linux-administration/how-to-copy-files-between-linux-servers-using-rsync