CodeGym /Kurslar /Docker SELF /Ehtiyat nüsxə yaratma rsyncscp

Ehtiyat nüsxə yaratma rsyncscp istifadə edərək

Docker SELF
Səviyyə , Dərs
Mövcuddur

Ehtiyat nüsxə yaratma rsyncscp istifadə edərək

1. Niyə ehtiyat nüsxə vacibdir?

Bu gün biz IT və proqramlaşdırma dünyasında hər kəs üçün ən vacib tapşırıqlardan biri olan məlumatların ehtiyat nüsxəsinin yaradılmasından danışacağıq. Əgər siz heç vaxt disk nasazlığı və ya bir səhv üzündən vacib məlumatları itirmisinizsə, bunun nə qədər kritik olduğunu başa düşürsünüz. Əgər itirməmisinizsə — biz buradayıq ki, bunun qarşısını alaq!

Təsəvvür edin: bir neçə ay layihə üzərində çalışmısınız və bir gün sizin sərt diskiniz tətillərə gedib. Bəli, bu, SQL sorğusunun sonunda nöqtəli vergül qoymağı unutmaq qədər bezdiricidir, amma min qat daha pis. Sistemlər etibarsız ola bilər, insanlar səhvlər edə bilər və fayllar itirilir. Ehtiyat nüsxə belə xoşagəlməz sürprizlərə əvvəlcədən hazırlaşmağa imkan verir.

Linux-da ehtiyat nüsxə yaratmaq üçün bir neçə güclü vasitə var. Bu gün biz onlardan ikisi ilə tanış olacağıq: rsyncscp.


2. rsync komandası: məlumatların surətini çıxarmaq üçün sürətli və ağıllı alət

rsync — məlumatların surətini çıxarmaq və sinxronlaşdırmaq üçün ən məşhur alətlərdən biridir. Onun əsas gücü sürətdə və effektivlikdədir. Hər şeyi təkrar kopiyalamaqdansa, rsync yalnız dəyişdirilmiş faylları kopiyalayır. Bu onu böyük miqdarda məlumatların müntəzəm ehtiyat nüsxəsini çıxarmaq üçün ideal edir.

rsync komandası üçün sintaksis

Komandanın əsas formatı belədir:

rsync [açarlar] mənbə təyinat

Harada:

  • mənbə — kopiyalamaq istədiyiniz fayl və ya qovluğa yol.
  • təyinat — bu məlumatların çatdırılmalı olduğu yer.

Əsas açarlar və onların funksiyaları

Ən çox istifadə olunan açarlardan bir neçəsi:

  • -a (archive): bütün metadata-nı (giriş hüquqları, zaman ştampları və s.) kopiyalayır.
  • -v (verbose): baş verənləri görmək üçün ətraflı çıxış daxil edir.
  • --progress: kopiyalama prosesinin vəziyyətini göstərir (böyük faylları kopiyalayarkən çox rahatdır).
  • --delete: mənbədən artıq olmayan faylları təyinat tərəfində silir. Tam sinxronizasiya üçün faydalıdır.
  • -z (compress): məlumatları ötürməzdən əvvəl sıxır, işi sürətləndirir (xüsusən şəbəkə əməliyyatlarında vacibdir).

Nümunə: lokal məlumatların kopiyalanması

Ehtiyat nüsxələri saxlamaq üçün /backup qovluğu yaradaq.

mkdir /backup

/home qovluğunun bütün məzmununu /backup-a kopiyalayırıq:

rsync -av /home /backup

Bu nümunəni analiz edək:

  • -a faylların strukturu və giriş hüquqlarını saxlayır.
  • -v prosesin gedişi barədə məlumat verir.

Əgər bu komandanı yenidən yerinə yetirsəniz, o yalnız dəyişdirilmiş və ya yeni faylları kopiyalayacaq.

Nümunə: uzaqdan ehtiyat nüsxə yaratmaq

İndi təsəvvür edək ki, ehtiyat nüsxəni uzaq serverə göndərmək istəyirsiniz. Bunun üçün rsync SSH istifadə etməyi dəstəkləyir.

rsync -av /backup user@remote_server:/remote_backup

Harada:

  • user — uzaq serverdəki istifadəçi adı.
  • remote_server — uzaq serverin ünvanı (məsələn, IP ünvanı və ya domen adı).
  • /remote_backup — serverdə məlumatları saxlamaq istədiyiniz yol.

Əgər SSH açarınız varsa, ötürmə daha asan (və təhlükəsiz) olacaq.


3. scp komandası: sadə və effektiv

scp (Secure Copy Protocol) — faylları lokal və uzaq maşınlar arasında köçürmək üçün vasitədir. Bu, rsync-dən bir az daha sadədir və tam sinxronizasiya lazım olmadıqda uyğun olur.

scp-nin sintaksisi

Komandanın əsas formatı belə görünür:

scp [opsiyalar] mənbə təyinat

Burada:

  • mənbə — köçürmək istədiyiniz faylın yolu.
  • təyinat — onu hara çatdırmaq lazımdır.

Əsas açarlar və onların funksiyaları

Bəzi faydalı opsiyalar:

  • -r: qovluqlar üçün rekursiv kopiyalama.
  • -C: göndərilməzdən əvvəl faylları sıxışdırır.
  • -P: SSH üçün standart portdan (22) fərqli bir port göstərir.

Misal: faylın uzaq maşına köçürülməsi

Lokal kompüterinizdən faylları serverə köçürmək istəyirsiniz. Tutaq ki, faylın adı document.txt-dir.

scp document.txt user@remote_server:/remote_folder

Əgər fayl /home/user/documents qovluğunda yerləşirsə, komanda belə görünəcək:

scp /home/user/documents/document.txt user@remote_server:/remote_folder

İndi fayl uzaq maşında /remote_folder qovluğunda olacaq.

Misal: faylların serverdən lokal maşına köçürülməsi

Proses əks istiqamətdə də işləyir:

scp user@remote_server:/remote_folder/document.txt /home/user/documents

Bu halda, document.txt faylı lokal qovluğunuzda olacaq.


4. rsyncscp arasındakı fərqlər

Hər iki komanda faylları kopyalamağa imkan verər, amma onların özünəməxsus xüsusiyyətləri var.

Xüsusiyyət rsync scp
Surət götürmə sürəti Yalnız dəyişdirilmiş məlumatlar, böyük həcmlər üçün daha sürətli Hər şeyi kopyalayır, hətta fayl dəyişdirilməyibsə də
Sinxronizasiya Tam sinxronizasiya dəstəyi Sinxronizasiya dəstəkləmir
Məlumat sıxılması Var -z Var -C
İstifadə rahatlığı Konfiqurasiyası daha çətindir Sadə interfeys

Deməli, sizə yalnız tez bir fayl ötürmək lazımdırsa — scp istifadə edin. Əgər mütəmadi sinxronizasiya və böyük həcmli məlumatlar barədə söhbət gedirsə — mütləq rsync.


5. Real misal: ehtiyat nüsxə çıxarmaq üçün quruluş

Budur, praktiki bir tapşırıq: layihənizin tam ehtiyat nüsxəsini uzaq serverə qurmaq istəyirsiniz.

  1. Fərz edək ki, layihə fayllarınız /home/user/project qovluğunda saxlanılır. Onların backup.server.com serverində /backups/project qovluğunda ehtiyat nüsxəsi çıxarılmasını istəyirsiniz.

  2. Kopyalama prosesini sürətləndirmək üçün rsync istifadə edəcəyik.

Ehtiyat nüsxə çıxarma skriptinin quruluşu

backup.sh faylını yaradın:

#!/bin/bash

SOURCE="/home/user/project"
DESTINATION="user@backup.server.com:/backups/project"

# rsync ilə ehtiyat nüsxə çıxarırıq
rsync -av --delete "$SOURCE" "$DESTINATION"

# Tamamlandığını bildiririk
echo "Ehtiyat nüsxə çıxarma tamamlandı!"

Faylı icra edilə bilən edin:

chmod +x backup.sh

İndi bu skripti əl ilə işə sala bilərsiniz:

./backup.sh

Və ya avtomatik icra etmək üçün onu cron-a əlavə edə bilərsiniz (cron haqqında daha sonra kursda danışacağıq).


6. Tipik səhvlər və onların qarşısını almaq yolları

  1. Komanda sətrində yanlış yollar. Əgər fayllara səhv yol göstərsəniz, rsync və ya scp heç nə köçürməyəcək. Yolların düzgün olduğuna əmin olmaq üçün ls və ya pwd komandalarından istifadə edin.

  2. Avtorizasiya açarının olmaması. SSH istifadə edərkən açar qurulmadıqda, hər dəfə parol soruşulacaq. Prosesi sadələşdirmək üçün SSH-açarları qurun.

  3. Ehtiyat nüsxələmənin kəsilməsi. Əgər şəbəkə qeyri-sabitdirsə, rsync növbəti işə salmada ötürməni davam etdirəcək. Amma scp yenidən başlamaq məcburiyyətində qalacaq.

rsyncscp vasitəsilə həm lokal kompüterdə, həm də uzaq serverlərdə məlumatlarınızı inamla köçürə və sinxronizasiya edə bilərsiniz. Bu alətlər vacib fayllarınızı qorumaq mövzusunda sizin etibarlı köməkçilərinizdir.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION