طرق الباك أب في لينوكس

السلام عليكم ورحمة الله وبركاته …

أخواني الأعزاء هذا أول موضوع أكتبه في موقعنا كلنا الجديد … وأحببت أن يكون عن الباك أب Backup أكيد الكثيرين يعرفون مثل هذه الأمور … لكن لمن ﻻ يعرف كيف يعمل باك آب لملفاته المهمة سيكون هذا الدرس البسيط جدا …

على بركة الله نبدأ الدرس:
الباك آب هي أن تأخذ نسخة إحتياطية من ملفاتك المهمة خوفا من التلف. هذا يمكن تعريف بسيط جدا للغاية قد ﻻ يشبع رغبات المحترفين. على العموم … طرق الباك آب كثيرة وكثيرة جدا … أيضا يجب قبل أن تأخذ باك آب أن تحدد أين ستقوم بوضع هذا الباك آب ؟؟؟ هل على نفس الجهاز HD ؟ هل على سي دي CD ؟ هل على دي في دي DVD ؟ أم على شريط Tape ؟ أم سترسله الى ريموت سيرفر Remote Server؟ كل هذه الأمور يجب أن تكون في الحسبان قبل أن تأخذ الباك آب أصلا…

الآن ما سأذكره هنا في هذا الدرس هي الأوامر التالية:

* tar
* cpio
* dump
* restore

نأتي للأمر الأول الي هو tar يعتبر من أقدم أومر الباك آب وظهر أيام يونكس بالتحديد ولم تكن وﻻدته على لينوكس أولا … أيضا كلمة tar هي إختصارا ل Tape Archive وذلك ﻷنه يأخذ الملفات التي تحددها له كمدخلات ويحولها الى سجل واحد أو في عالم الحاسوب ملف واحد … الآن لنأخذ بعض الأمثلة عن الإستعمال:

1- لكي تأخذ نسخة إحتياطية من مجلد ال Home الخاص بك … أستعمل التالي:

tar cvf myhome.tar /home

هذا سيقوم بأخذ نسخة من مجلدك ويضعه في ملف أسمه myhome.tar … طبعا الحرف c يعني أخلق Create لي أرشيف والحرف v يعني أعرض لي ماذا يجري Verbose Messages والحرف f يعني خذ الأسم الذي ذكرناه myhome.tar على إنه أسم الملف الجديد أو أسم الأرشيف الجديد …

2- الآن ممكن نأخذ نسخة إحتياطية من نفس المجلد من خلال tar وإضافة مسألة جميلة وهي ضغط الملف هذا من خلال إستعمال ميزة gzip أو bzip2 … الآن لكي نأخذ نفس الباك آب من مجلدك home مع ضغطه بميزة gzip عليك بالتالي:

tar czvf myhome.tar.gz /home

هذه أخذت نسخة إحتياط مع ضغطها بواسطة ال gzip والحرف z هو الذي يدل على ذلك … الحين لو تريد تضغط بإستعمال ميزة bzip2 ضع بدل الحرف z ضع الحرف j …

الآن أخذت الباك آب وتريد أن ترجعه في حالة حصلت مشكلة لديك … كل ما عليك فعله هو التالي:
1- الوقوف على المجلد الأب Parent للمجلد الذي أخذت منه الباك آب … يعني هنا في مثالنا نحن أخذنا باك أب للمجلد home/ يعني يجب أن نكون على المجلد / فقط لكي نستطيع أن نرجع المجلد بشكل صحيح … ظرورية هذه الملاحظة الخاصة بالمجلد … ﻷنه الأمر tar ﻻ يعرف من أين تم أخذ الباك آب ولذلك عليك أن تحدد له ذلك … لكن هو يبقى محافظا لك على هيكلية الملفات داخل الأرشيف … يعني مثال: بداخل مجلد ال home/ كان لديك مجلد أسمه 1 ومجلد أسمه 2 وفايل أسمه 3 داخل مجلد 1 يبقى محافظا على هذه الترتيب …
2- الآن لفك الأرشيف في حالة لم يكن مضغوط نستعمل الأمر tar بالطريقة التالية:

tar xvf myhome.tar

لتوضيح الأمر فهو سيقوم بعمل فك للأرشيف داخل المجلد الذي أنت عليه … والدليل على إنه سيقوم بفك الأرشيف هو إستعمالنا للحرف x معه والذي يعني Extract … وباقي الأحرف المستعملة تؤدي نفس دور ما تم ذكره أثناء عملية الأرشفة …

3- لو كان الملف الذي عندك مضغوط كل ما عليك فعله هو مثلا أن تتعرف على الأداة التي تم الضغط الأرشيف به من خلال مثلا تنفيذ الأمر التالي:

file myhome

طبعا هذا في حالة لم تجد ال extention مثل tar.gz. الذي يدل على إنه من نوع أرشيف مضغوط بالأداة gzip … أما إن كان واضح لديك ما عليك إﻻ أن تعمل التالي:

tar xzvf myhome.tar.gz

نفس الشي سيقوم بفك الأرشيف في المكان الذي أنت واقف عليه + إستعمالنا للحرف z مع الحرف x هو دليل على الفك للأرشيف والفك للضغط من خلال إستعمال ميزة gzip …

ملاحظة مهمة: إن الأمر tar يعمل عكس الكثير من الأوامر في لينوكس وذلك ﻷنه نمتب الهدف Destination قبل أن نكتب المصدر Source …

الآن نأتي الى إستعمال الأمر cpio. طبعا كلمة cpio هي إختصار ل copy input / output… الآن, إن من أهم ميزة هذا الأمر على الأمر tar هو إمكانيته لعمل أرشيف لملفات موزعة في أكثر من مجلد, بينما الأمر tar كان يعمل أرشيف للملفات التي تقع في نفس المجلد … إذن الأمر جميل صح ؟

إحدى أكثر الطرق إستخداما بالنسبة لي وبالنسبة لأصحاب السيرفرات هي: جمع ملفات ال conf. الخاصة بإعدادات السيرفرات والخدمات الموجودة على جهازك أو سيرفرك… ويتم ذلك من خلال الأمر التالي:

find / -name '*.conf' | cpio -o > myConf_Files.cpio

التفسير: قمنا بعمل بحث عن ملفات من نوع conf. في جميع النظام / وهذه الخطوة تتمثل في الشطر

find / -name '*.conf'

ومن ثم قمنا بتحويل او تمرير الناتج الى الأمر cpio الذي أخذ الناتج من الأمر السابق find … وقام بعمل أرشيف من خلال تمرير هذه المدخلات الى output الذي تمثلت في o- في المثال ومن ثم عملنا تحويل للناتج الى ملف أسمه myConf_Files.cpio الذي سيتم تخزين الباك آب للملفات التي أخترناها …

الآن لفك هذا الأرشيف نقوم بالتالي:
cpio -i < myConf_Files.cpio

التفسير: سيقوم ها الأمر بأخذ المدخلات من خلال التحويل اليه ... وسيقوم الأمر cpio بفك الأرشيف الى الملفات كما تم أخذها ... وهذه العملية تتمثل في الجزء cpio -i والتي تعني input...

أيضا يمكنك أخذ نسخة إحتياطية من مجلدك وإرساله الى القرص الصلب من نوع سكازي أو قرص من نوع USB Disk ... طبعا إذا كانت مساحة ال USB Disk تكفي مجلدك ... يتم ذلك من خلال الأمر التالي:
find /home/ali | cpio -o > /dev/sda1

الآن لإرجاع المعلومات من القرص ال USB Disk نستعمل الأمر التالي:
cpio -i < /dev/sda1

طريقة إستعمال الأمر dump :
الأمر dump يجعل مسألة أخذ نسخة إحتياطية لمجلد أو بارتيشن بشكل دوري أمر سهل جدا ... وهذا ما سنراه في الشرح هذا... طبعا يفضل تشغيل هذه الأوامر وأنت لك صلاحيات المستخدم root لكي تتجنب مشاكل الصلاحيات التي قد تحصل عندما تعمل نسخة إحتياطية لمجلدات معينة ...

الآن أول شيء نقوم به هو أخذ نسخة إحتياطية كاملة Full Backup للمجلد أو البارتشن الذي ستعمل له باك آب بصورة دورية ... هنا في شرحي هذا سأقوم بأخذ نسخة إحتياطية لمجلدي الخاص وأضعه على USB Disk كبير الحجم يكفيني لأخذ نسخة إحتياطية عليه ... يعني الحين لعمل نسخة إحتياطية لمجلدي الخاص نقوم بتنفذ الأمر التالي:
dump 0f /dev/sda1 /home/ali

التفسير:سيقوم هذا الأمر بأخذ نسخة إحتياطية كاملة للمجلد المحدد والذي هو هنا مجلدي الخاص
/home/ali

طبعا الأمر
dump 0f

هو من حدد نوع الباك آب, والذي هو Full Backup هنا من خلال الرقم 0. الآن بعد فترة اسبوع تقوم بأخذ نسخة إحتياطية أخرى من خلال الامر التالي:
dump 1f /dev/sda1 /home/ali

بحيث ال 1f تعني أخذ باك آب ثاني للمجلد, لكن ما سيقوم به هو أخذ نسخة إحتياطية للملفات المعدلة أو المضافة حديثا للمجلد فقط, ونقصد المجلد

/home/ali

ولهذا سيكون حجمها أصغر من حجم النسخة الإحتياطية في أغلب الأحوال وتعتمد على حسب التغييرات التي عملتها أنت وحسب الإضافات أيضا ... يعني: لو رحت وضعت لي دي في دي في المجلد حديثا أكيد سيكون أكبر من النسخة الأولى كلها دون أدنى شك

الآن بعد أسبوع آخر تريد أخذ باك آب تقوم بعمل التالي:
dump 2f /dev/sda1 /home/ali

هذا سيقوم بأخذ نسخة إحتياطية للملفات المحدثة أو المضافة حديثا بالمقارنة مع النسخة الإحتياطية التي أخذناها في الإسبوع الماضي والذي عملناها من خلال الأمر
dump 1f

... الحين لو تريد أخذ نسخة أخرى ما عليك سوى ان تغيير الرقم الى 3 وبعد أسبوع 4 وهكذا ...

ملاحظة:-
1- مسألة أخذ باك آب كل أسبوع ليست شرط !!!! يعني ممكن كل يوم ممكن كل شهر ممكن كل سنة ... حسب أنت وإحتياجاتك وإحتياجات العمل الذي تقوم به ... يعني لو بياناتك مهمة جدا أكيد راح تعمل لها باك اب يومي كما يحصل في البنوك ... لو مثلي ومثلك مستخدمين عاديين في البيت ممكن كل شهر جيد

2- لكي تعمل طريقة نسخ إحتياطي بشكل يجب أن تراعي بعض الأمور:
2-1- أن تعمل نسخة أحتياطية كاملة Full Backup من خلال الأمر:
dump 0f /dev/sda /destination

2-2- عندما تأخذ باك آب جديد تراعي إنك تستعمل رقم أعلى من الرقم السابق وهذه في حالة كان نوع الباك آب Incremental ... يعني لو كان الأمر السابق 3f يكون الرقم الحالي 4f وهكذا ...

الآن مسألة آخرى على السريع:
لو تريد عمل نسخة إحتياطية لقرص صلب أي filesystem أو partition يفضل إستعمال الخيارات التالية:
dump 0uf /dev/sda1 /

بحيث سيقوم الخيار u بعمل تحديث على ملف
/etc/dumpdates

الذي سيفيدك عندما تعمل تحديثات ﻻحقة أو تأخذ نسخ أحتياطية ﻻحقة حيث سيستخدمه الأمر dump لفحص التغييرات التي حصلت منذ آخر نسخ إحتياطي ...

الى هنا نأتي الى نهاية الأمر dump ولقاءنا القادم مع الأمر restore بعد قليل ...

ملاحظة مهمة جدا:
إذا كنت ستعمل باك آب لمجلدك الخاص كما في المثال ونسخه على بارتيشن ... يجب أن يكون البارتيشن فارغ ... وإﻻ سيحصل فقدان لجميع ما عليه بسبب كتابة برنامج ال dump عليه مباشرة دون النظر الى المحتويات ... ولهذا يجب أن يكون فارغ ... لكن لو ﻻ يوجد لديك بارتيشن فارغ ... فكل ما عليك فعله هو النسخ الى ملف وليس الى بارتيشن ... طبعا مع العلم البارتيشن هو نوع من أنواع الملفات بحد ذاتها ... لكن أليكم الطريقة:
dump 0f myBackup /home/ali

حيث سيتم تخزين الباك آب في هذا الملف الذي أسمه myBackup ... وللتأكد من ذلك أستعمل الأمر file وأسم الملف وسترى إنه من نوع dump ...

طريقة إستعمال الأمر restore:
يمكن من خلال الأمر restore أن نعمل إسترجاع الى جميع بيانات والمفات التي تم عملها على شكل نسخة إحتياطية من خلال الأمر dump كما رأينا في ردي السابق. وأيضا يمكن أن نقوم بإسترجاع بيانات معينة ومحددة من هذه النسخ الإحتياطية, يعني ليس شرط إسترجاعها كلها, بل حسب الحاجة

أيضا يمكن من خلال هذا الأمر restore أن نعرض محتويات نسخة إحتياطية أخذناها على ال USB Disk من خلال الأمر التالي:
restore -tf /dev/sda1

الآن لنفرض تريد الدخول الى داخل هذه النسخة الإحتياطية والتجول فيها ... مثلا قد يكون للبحث عن ملف معين ... يمكن ذلك من خلال تطبيق الأمر أوﻻ التالي:
restore -if /dev/sda1

هذا الأمر سيدخلنا الى داخل النسخة الإحتياطية ويفتح لي prompt خاصة بالأمر restore أستطيع أن أدخل عليها أوامر بسيطة مثل ls و cd وغيرها ... يمكن أن ترى قائمة الأوامر المسموح بها من خلال كتابة الأمر help على ال prompt الخاصة بالأمر restore ...

أيضا ملاحظة مهمة هنا, قبل أن تقوم بعمل rsstore مثلا للمجلد الذي أخذنا له نسخة إحتياطية في ردي السابق حين شرحنا الأمر dump ... يجب أن تكون على مسار أعلى من المسار المراد إرجاع المجلد أليه ... يعني لو كان المجلد الذي نريد نرجعه هو /home/ali يجب أن نكون نحن على ال
/home

... وهكذا ... الحين لعمل فك لهذه النسخة الإحتياطية نعمل التالي:
restore -xf /dev/sda1

ﻻ تنسى أن تكون واقف على الملجد الصح

ملاحظات أخيرة:
1- بعض المرات قد يسألك الأمر restore عن الصلاحيات وعن وصاحب هذه الملفات يعني ال owner وال mode لهم ... لكي يرجع لك الملفات الى صورتها الصحيحة ... فما عليك سوى تعريفا له ... وأكيد تعرف كيف صح ؟

2- يوجد خيارات أخرى للأوامر صعب إحصائها في موضوع بسيط ومتواضع مثل هذا ... ولهذا أنصحكم بالرجوع دائما الى ال

man pages

لهذه الأوامر ... يعني مثلا
man restore
... وهكذا ...

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

أخوكم [email protected] ...

4 thoughts on “طرق الباك أب في لينوكس

  1. شكرا علي هذا الشرح فوق ممتاز ونرجو المزيد من الدروس حول (uix solaris 10
    “admin1 “) operating system

  2. useradd+option
    usermod+option
    roleadd
    group
    اريد شرحا بالتفصيل ولكم جزييييييييييييييييييييييل الشكر

  3. تسلم اخوي ،،
    ولكن سؤال .. !!
    هل في امر معين ياخذ باك اب لكل السيرفر .. يعني مثلا ابي انقل سيرفر من داتا سنتر لداتا سنتر..
    وعاوز اخد باك اب كامل ومرة وحدة ولكل السيرفر ..

    ارجو الرد بأسرع وقت

  4. الله يسلمك أهلا أخي Sp1d3r_Net نورت الزون يا عم ::18
    أنت ليش تريد تاخذ باك أب للسيرفر كامل عشان الـ Databases يعني ؟ أم عشان الإعدادات ؟
    إن كان عشان الملفات عادي أوامر الـ tar تنفذ لك ذلك أيضاً … وإن كان عشان القواعد يفضل أن تقوم بأخذها من خلال طرق أخذ الباك أب للقواعد ويوجد تدوينة تشرح ذلك …

    هل هذا ما تريده يا Spider ؟ خبرني ولو محتاج مساعدة إن شاء الله ما بقصر معك ::20
    ونورت الزون بجد …

Comments are closed.