سواء كنتَ مسؤول نظام أو مستخدماً عادياً، فأنت على الأرجح بحاجة إلى إنشاء نسخ احتياطية دورية لملفاتك أو مزامنتها بين أنظمة متعددة. إذا كانت هذه المهمة تستلزم استبدال جميع الملفات في كل مرة، فستكون مضيعة للوقت ومرهقة. هنا يأتي دور أداة Rsync Linux للخادم البعيد لتنقذك. سيُعرِّفك هذا الدليل بأهم أوامر Rsync، حتى تتمكن من الاستفادة من ميزات النقل السريع والآمن.
ما هي أداة Rsync؟
Remote Sync (Rsync) أمرٌ معروف في Linux/Unix يُستخدَم لنسخ الملفات والمجلدات ومزامنتها عبر الشبكة أو محلياً. يتيح لك أمر Rsync تنفيذ مهام متعددة تتعلق بالبيانات، كالمزامنة والنسخ وإنشاء النسخ الاحتياطية. كما يمكنك نسخ نظام Linux بأكمله إلى نظام آخر.
الفكرة الأساسية وراء استخدام Rsync مع الخوادم البعيدة هي الاستفادة من سرعة نقل الملفات؛ إذ يعتمد في نقل البيانات بين مصدرَين على الفروق بينهما فقط. بمعنى آخر، يُجنِّبك أمر Rsync هدر الوقت في نقل البيانات بشكل أعمى، لأنه لا يعالج سوى ما تغيَّر بين نظامَي Linux.
لماذا نستخدم Rsync؟
كما تعلم، ثمة أدوات نسخ احتياطي متعددة يمكن الاعتماد عليها. السؤال هو: ما الذي يُميِّز أداة Rsync عن غيرها من الأدوات والأوامر؟
على سبيل المثال، يمكنك استخدام بروتوكول نقل الملفات (FTP) للحصول على نسخة محلية من موقعك الإلكتروني أو بروتوكول النسخ الآمن (SCP) لهذه المهمة. غير أن كلا البروتوكولين يأتيان بقيود. فـ FTP لا يوفر تشفير البيانات، وهو ما لا يُعدّ خياراً مناسباً. أما SCP فرغم أنه يُشفّر البيانات المنقولة، إلا أن عملية النقل تستغرق وقتاً أطول نظراً لاعتماده على نفق مُشفَّر.
لذلك، كحل بديل لهذه المشكلات، يمكن استخدام Rsync مع الخادم البعيد عبر التشفير المستند إلى المفاتيح (يُعرف اختصاراً بـ Rsync SSH أو Rsync over SSH)، مما يمنع إرسال البيانات المكررة ويستخدم مفتاح SSH. تجدر الإشارة أيضاً إلى أن Rsync يعتمد الضغط وفك الضغط عند إرسال البيانات واستقبالها، مما يُقلل من استهلاك النطاق الترددي.
كيفية تثبيت Rsync؟
على الأرجح يكون Rsync مثبتاً مسبقاً على نظامك، لكن دعنا نتناول التفاصيل. قبل البدء، تأكد من أن SSH مثبت على كلٍّ من نظام المصدر ونظام الوجهة، إذ سنستخدم Rsync over SSH.
الخطوة الأولى: التحقق من إصدار SSH
يمكنك التحقق من إصدار SSH باستخدام الأمر التالي:
ssh -V
لاستخدام Rsync مع خادم بعيد، ستحتاج إلى خادم محلي يعمل بوصفه المصدر، وخادم بعيد يعمل بوصفه الوجهة. تأكد أيضاً من أن الخادم المحلي يمتلك صلاحيات إدارية (sudo).
الخطوة الثانية: تثبيت Rsync على Linux
يُمكّنك الأمر التالي من تثبيت Rsync على Ubuntu وLinux Mint وDebian:
sudo apt install rsync -y
إن كنت تستخدم توزيعات Linux أخرى مثل Fedora وCentOS وAlmaLinux وRed Hat، فاكتب الأمر التالي لتثبيت خدمة Rsync على نظامك:
sudo dnf install rsync
ملاحظة: apt هو أداة تثبيت حزم مُفيدة تُستخدم في التوزيعات المبنية على Debian.
الخطوة الثالثة: تشغيل Rsync
الآن تحتاج إلى تشغيل Rsync وتفعيله للبدء في استخدامه عبر الأوامر التالية:
sudo systemctl start rsync
sudo systemctl enable rsync
الخطوة الرابعة: التحقق من تثبيت Rsync
أدخل الأمر التالي للتأكد من صحة تثبيت Rsync ومعرفة الإصدار الذي تستخدمه على نظام Linux:
rsync --version
في القسم التالي، سنتناول كيفية استخدام هذه الأداة لإنشاء نسخ احتياطية عبر المصادقة المستندة إلى المفاتيح.
كيفية إنشاء نسخ احتياطية باستخدام Rsync over SSH؟
إنشاء النسخ الاحتياطية التزايدية هو أحد استخدامات Rsync over SSH. تمعّن في الأمر التالي لفهم آلية عمله:
rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir
سيساعدك تشغيل الأمر أعلاه على مزامنة sourceDir و destinationDir. يتضمن هذا الأمر خيارات أخرى يجب أن تكون على دراية بها، مثل -a (archive) و -v (verbose). لاحظ أن -e ssh يتطلب هذا الخيار أن يعمل Rsync عبر بروتوكول SSH.
إذا أردت أن يتم قبول اتصال SSH عبر منفذ مختلف عن المنفذ الافتراضي (المنفذ 22)، فعليك تحديد رقم المنفذ بعد -e ssh. انظر إلى الأمر التالي لفهم آلية عمله.
rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir
في الأمر أعلاه، نفترض أننا نريد استخدام المنفذ 1998 بدلاً من 22 كمنفذ SSH.
يوفر Rsync إلى الخادم البعيد عبر SSH خيارات أخرى مفيدة. على سبيل المثال، يتيح لك استخدام الخيار –partial استئناف عملية النقل المتقطعة في حال حدوث مشكلة كانقطاع Rsync. كما يمكنك متابعة تقدم نقل الملف الحالي من خلال الخيار –progress . علاوةً على ذلك، تتيح لك أداة Rsync إلى الخادم البعيد Linux استخدام هاتين الميزتين معاً. لتحقيق ذلك، يمكنك استخدام الخيار -p في سطر الأوامر.
rsync -avP -e ssh /sourceDir/ user@remote:/path/to/destinationDir
يتيح لك أمر Rsync إلى الخادم البعيد بالمفتاح ضغط البيانات قبل نقلها إلى الوجهة. وعلى الرغم من أن ذلك سيستهلك CPU لإتمام عملية الضغط، إلا أنه لا يزال مفيداً لأنه يسرّع نقل الملفات ويقلل استهلاك النطاق الترددي.
يمكنك استخدام أمر Rsync لنسخ الملفات والمجلدات، سواء عن بُعد أو محلياً. الميزة الرئيسية لـ Rsync هي اعتماده على خوارزمية النقل التفاضلي، التي تمنع نسخ البيانات المكررة من المصدر إلى الوجهة. وكما أشرنا سابقاً، تساعدك هذه الميزة في Rsync إلى الخادم البعيد إذا أردت إدارة النسخ الاحتياطية اليومية ومزامنة النظام. مع ذلك، لنستعرض كيفية استخدام أمر Rsync للحالات المحلية.
كيفية استخدام Rsync للمزامنة المحلية؟
قبل الغوص في المزامنة المحلية وكيفية استخدام أمر Rsync لها، يجب أن تعرف البنية العامة لـ Rsync المحلي الموضحة أدناه:
rsync [options] [Source] [Destination]
نسخ الملفات محلياً
لنفترض أننا نريد مزامنة ملف أو نسخه من مجلد سطح المكتب (المسمى Cloudzy) إلى /home/Public المجلد؛ إليك ما تحتاج إلى إدخاله:
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
يتضمن أمر Rsync أعلاه ثلاثة خيارات هي -zvh؛ باستخدام -z، سيتم ضغط ملفك أثناء النقل. الخيار v يعني عرض المخرجات التفصيلية، أما الخيار h فيتيح لنا قراءة المخرجات بصيغة مفهومة للبشر، أي عرض مخرجات قابلة للقراءة.
نسخ المجلدات محلياً
إذا أردنا نسخ مجلد سطح المكتب المسمى Cloudzy) إلى /home/Public المجلد؛ اكتب الأمر التالي:
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
الـ -a يعمل هذا الخيار في الأمر على أرشفة المجلدات والملفات أثناء المزامنة.
يمكنك التحقق سريعاً من قائمة المجلدات في المجلد الهدف للتأكد من نسخ المجلد أو عدمه. استخدم الأمر التالي للقيام بذلك:
ls -ld /home/Public
مزامنة الملفات والمجلدات بشكل متكرر ومحلي (Recursive Rsync)
ماذا لو كانت هناك عدة مجلدات وملفات داخل /desktop/Cloudzy، وأردت نسخها بشكل متكرر باستخدام أمر Rsync Linux؟
في هذه الحالة، استخدم الخيار -r لمزامنة ملفاتك ومجلداتك المحلية بشكل متكرر. يمكنك أيضاً استخدام خيار الأرشفة (-a) إذ يتيح حالات استخدام أخرى كالنسخ المتكرر. اطلع على الأمر التالي للتعرف على أوامر Rsync المتكررة.
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
نسخ المجلدات والملفات من النظام المحلي إلى النظام البعيد
بالإضافة إلى خصائص Linux Rsync مع الخادم البعيد التي أشرنا إليها في الأقسام السابقة، يتيح هذا الأمر المعروف أيضاً مزامنة الملفات والمجلدات من الجهاز المحلي إلى النظام البعيد.
لنفترض أننا نريد نسخ مجلد (/desktop/Cloudzy/مجلد_جديد) من الجهاز المحلي إلى النظام البعيد (بعنوان IP: 192.168.1.79) ضمن /mycpt؛ فيما يلي مثال يوضح كيفية عمل ذلك:
rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt
كيفية نسخ المجلدات دون محتوياتها باستخدام Rsync
في بعض الحالات، قد نحتاج إلى استخدام Linux Rsync مع الخادم البعيد لنسخ المجلدات دون ملفاتها، سواء من الجهاز البعيد إلى النظام المحلي أو بالعكس.
في هذا المقال، كنّا نستخدم النظام البعيد على عنوان 192.168.1.79. لنفترض أنه موجود داخل مجلد /mycpt ونريد نسخ مجلد /desktop/Cloudzy من النظام المحلي دون تضمين ملفاته. أدخل الأمر التالي لتنفيذ ذلك:
rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/
أوامر Rsync مفيدة أخرى
فيما يلي بعض أوامر Linux Rsync الإضافية التي قد تكون مفيدة لك.
تحديد الحجم الأقصى لنقل الملفات في Rsync
يمكنك تحديد حد أقصى لحجم الملفات المنقولة باستخدام أمر Rsync، وهو أمر مفيد عندما تُشغّل Rsync بانتظام مع خادم بعيد وجهاز محلي وتكون عرض النطاق الترددي والوقت عاملَين أساسيَّين. تعرّف على كيفية ضبط حدود الحجم في نقل ملفات Rsync من خلال الأمر التالي:
rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public
تحديد الحجم الأدنى لنقل الملفات في Rsync
تماماً كما تحدد حجماً أقصى لنقل الملفات، يمكنك تحديد الحجم الأدنى للملف الذي تريد نقله عبر Rsync إلى الخادم البعيد. في الأمر التالي، سنضبط الحجم الأدنى للملف على 10k:
rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public
حذف الملفات من المصدر بعد اكتمال المزامنة
بعد الانتهاء من استخدام أمر Rsync، قد لا تحتاج إلى الاحتفاظ بالملف على النظام المصدر. في هذه الحالة، يمكنك استخدام أمر Linux Rsync كما يلي لحذف الملفات من المصدر:
rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
تشغيل تجريبي للمزامنة
إن كنت جديداً على أداة Linux Rsync وغير مُلمّ بخياراتها، فإن التشغيل التجريبي (dry run) هو الخيار الأنسب. عند استخدام التشغيل التجريبي مع Rsync، لن يُجري الأمر أي تغييرات على الملفات، بل يعرض لك ناتج الأمر فقط. بعد التأكد من رغبتك في تنفيذ الأمر، يمكنك حذف --dry-run قم بإزالة هذا الخيار من الأمر ثم نفّذه في الطرفية. اطلع على الأمر التالي لمعرفة المزيد حول آلية عمل التشغيل التجريبي.
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
ملخص: استخدام أوامر Linux Rsync
شرحت هذه المقالة كيفية استخدام Linux Rsync للنقل إلى خادم بعيد (وإلى خادم محلي) في حالات استخدام متعددة، منها مطابقة النظاموإنشاء نسخ احتياطية للملفات، ونسخ الملفات والمجلدات محلياً وعن بُعد بطريقة فعّالة. يتيح لك هذا الأمر الشهير في Linux نقل الملفات بسرعة مع دعم SSH وضغط البيانات.
احصل على VPS اقتصادي أو متميز يعمل بنظام Linux لاستضافة موقعك الإلكتروني أو سطح المكتب البعيد، بأفضل الأسعار المتاحة. يعمل VPS على Linux KVM لكفاءة أعلى، ويستند إلى أجهزة قوية مع تخزين NVMe SSD لسرعة أكبر.
اقرأ المزيديمكنك الاستفادة القصوى من هذا النظام بالحصول على Linux VPS حل من Cloudzy يتيح لك خطط استضافة تعتمد على KVM. نقدم خدمات VPS عالية الأداء بنسبة تشغيل ٩٩٫٩٥٪، واستقرار تام، وزمن استجابة منخفض، ومراكز بيانات حول العالم (١٢ موقعاً)، وتخزين SSD فائق السرعة، ودعماً تقنياً على مدار الساعة. يمكنك البدء باستخدام VPS الخاص بك على Linux بدءاً من ٤٫٩٥ دولار، مع إمكانية الترقية متى احتجت إلى حل أكثر تقدماً.
الأسئلة الشائعة
أي منفذ TCP يستخدمه Rsync؟
يستخدم SSH المنفذ ٢٢ افتراضياً. لذلك، عند تشغيل rsync عبر SSH، يعمل على هذا المنفذ تحديداً. أما عند استخدام Rsync daemon، فيُستخدم المنفذ ٨٧٣.
ما هو Rsync؟
Rsync أداة Linux تتيح مزامنة الملفات والمجلدات محلياً أو عن بُعد. باستخدام أمر Rsync، يمكنك تنفيذ مهام متعددة تتعلق بالبيانات، كالمزامنة والنسخ وإنشاء النسخ الاحتياطية.