برمجة سكربت في باش bash (لينكس) يقوم بالنسخ الاحتياطي لملفاتك بشكل دوري وتلقائي

برمجة سكربت في باش (لينكس) يقوم بالنسخ الاحتياطي لملفاتك بشكل دوري وتلقائي

في هذه المقالة سنشرح كيف برمجة باش سكربت في لينكس لإنشاء نسخة احتياطية لملفاتك بشكل تلقائي. النسخ الاحتياطي في لينكس هو مهمة يجب أن يستطيع أي مدير نظام أن يقوم بها, إذا كنت مدير نظام فبالتأكيد ستحتاج أن تقوم بذلك.

استخدام تار Tar لإنشاء نسخة احتياطية لملفاتك

قم باستخدام محرر النصوص الخاص بك وليكن vim لكي تنشئ وتكتب السكربت، لنقل سنقوم بتسمية السكربت ب backup_files.sh تذكر ان الباش السكربت في لينكس دائما ينتهي باللاحقة sh. 

لنقوم بنسخ المحتوى التالي إلى هذا السكربت:

#!/bin/bash # دائما السطر الأول في سكربتات باش يبدأ بهذه التعليمة
 
BACKUPTIME=`date +%b-%d-%y` #سنقوم بالاستعانة بدالة التاريخ لأعطاء النسخة الاحتياطية اسم يدل على تاريخ أنشائها
 
DESTINATION=/home/usr/path/backup-$BACKUPTIME.tar.gz #قم بتعديل هذا المسار لكي تحدد مكان تخزين النسخة الاحتياطية، تذكر ان تحافظ على لاحقة الملف .tar.gz
 
SOURCEFOLDER=/home/usr/path/data_folder #قم بتعديل هذا المسار ليتضمن المجلد الذي تريد نسخه
 
tar -cpzf $DESTINATION $SOURCEFOLDER #هذه التعليمة تقوم بإنشاء نسخة احتياطية من المصدر إلى الهدف

يحوي السكربت بشكل اساسي أربع عناصر:

  • اسم الملف الخرج، يفضل ان يكون الاسم فريد، مثلا اذا كنت تريد تشغيل النسخ الاحتياطي كل يوم، فأضل اسم يمكن اعطائه للملف يجب ان يحوي تاريخ اجراء النسخة.
  • المصدر، اي المجلد الذي ترغب بنسخه احتياطيا.
  • تعليمة النسخ الاحتياطي tar -cpzf $destination $source

لاحظ أننا قمنا بتمرير البارمترات التالية لتعليمة tar وتعني بالتفصيل:

c: إنشاء 

v: خرج تفصيلي هذا البارامتر ليس مهم ولكن يعني انك تريد طباعة الملفات التي قمت بضغطها إلى الخرج للمعلومات فقط

p: الحفاظ على صلاحيات الملفات وعدم تغييرها عند ضغطها لكي يسهل استرجاعها كما كانت

z: نسخ الملفات مما يساعد في خفض حجم النسخة

f: استخدم الملف للأرشفة 

تذكر ان جميع البارامترات في الأعلى يجب ان تكون بأحرف صغيرة حصرا.

الخطوة الأخيرة هي تغيير صلاحية السكربت ليصبح قابل للتنفيذ, تذكر ان هذه الخطوة مهمة جدا ولن يعمل اي باش سكربت في حال نسيت ذلك، للقيام بذلك كل ما عليك تنفيذ التعليمة

chmod u+x backup_files.sh 

كما اننا نريد المسار الكامل لهذا السكربت لكي نقوم بجدولته، لنفترض أن مسار السكربت /home/myname/backup_files.sh

جدولة سكربت النسخ الاحتياطي في لينكس ليعمل بشكل تلقائي

الأن بعد أن أصبح السكربت جاهز، بالتأكيد لا ترغب كل يوم ان تشغله بنفسك، الخبر السار انه يمكن جدولة هذه العملية في لينكس عن طريق ملفات crontab. للقيام بذلك قم بتنفيذ التعليمة

crontab -e

هذه التعليمة ستقوم بفتح محرر كرون تاب الذي يحوي أسطر ذات التنسيق التالي:

minute(0–59) hour(0–23) day(1–31) month(1–12) weekday(0–6) command

شرح ملفات crontab في لينكس

الملف  الذي عرضناه في الأعلى يقوم بتحديد عنصرين أساسين: متى تريد تنفيذ أمر ما, وماذا تريد ان تنفذ.

مثلا إذا أردنا أن ننفذ السكربت الذي قمنا بكتابه في الأعلى نقوم بإضافة سطر جديد إلى كرون تاب كمايلي:

29 0 * * * /bin/bash /home/myname/backup_files.sh

السطر يعني أنك تريد تنفيذ السكربت كل يوم (لان خانة الأيام تحوي نجمة * ) من كل شهر في كل يوم عمل وذلك الساعة 0 (اي الثانية عشر ليلا) و٣٠ دقيقة (٢٩ تعني الدقيقة ٣٠).