“A stitch in time saves nine”, goes an old saying. "غرزة في وقت ينقذ تسعة" ، وغني عن قول قديم. In the world of computers we refer to that stitch as backups. في العالم من الحواسيب نشير إلى أن غرزة كما النسخ الاحتياطي. When running a production IT infrastructure, it is imperative that we achieve an uptime on our servers and applications of as close to a hundred percent as possible. عندما يدير إنتاج البنية التحتية لتقنية المعلومات ، يتحتم علينا أن تحقيق الجهوزية على خدمتنا وتطبيقات أقرب إلى مئة في المئة ممكن. While there are a number of ways to make an IT infrastructure solid, it is impossible to make it failure proof. وفي حين أن هناك عددا من السبل لتقديم البنية التحتية لتقنية المعلومات الصلبة ، ومن المستحيل لجعله دليلا على الفشل. So we make a plan B. ولذا فإننا تقديم خطة بديلة.
Servers are made of three broad layers - the hardware, the operating system and applications, and the data. خوادم مصنوعة من ثلاث طبقات واسعة -- المعدات ، نظام التشغيل والتطبيقات ، والبيانات. In case of a hardware failure it is rather simple to replace the machine with a new one. في حالة وجود معدات الفشل ، بل هو بسيط ليحل محل آلة جديدة مع احد. Installing the operating system and applications too are relatively simple. تركيب نظام التشغيل والتطبيقات جدا هي بسيطة نسبيا. The part that is hard to replace is the data and configuration that your applications use. الجزء الصعب هو لتحل محل البيانات والتكوين أن استخدام التطبيقات الخاصة بك. In case of failure this is the part that can not be replaced. في حال فشل هذا هو جزء لا يمكن الاستغناء عنه. So we backup that data on a regular basis. ولذا فإننا احتياطية أن البيانات على أساس منتظم. We back it up in such a way that it becomes easy to retrieve in case of emergency. عدنا إلى أنه حتى في مثل هذه الطريقة التي يصبح من السهل استرجاعها في الحالات الطارئة.
I will guide you through writing a script to take daily backups on your system. وسوف دليل لكم من خلال كتابة السيناريو لاتخاذ النسخ الاحتياطي اليومية على النظام الخاص بك. For this exercise I will use a server that runs the Apache web server, a MySQL database server, and has a directory on the /home partition that contains some data that needs to be backed up. لهذه العملية سوف استخدام الخادم الذي يدير أباتشي خادم الويب ، خادم قاعدة البيانات ماي. س. ك ، ودليل على / الرئيسية التقسيم تحتوي على بعض البيانات التي تحتاج إلى دعم. We will also backup the previous day’s Apache access logs in a separate backup directory. كما أننا احتياطية في اليوم السابق اباتشي سجلات الدخول في احتياطية منفصلة دليل. First, we need to create a directory where our backups will reside. أولا ، نحن بحاجة إلى وضع دليل لدينا حيث سوف يقيم النسخ الاحتياطي. As part of the exercise I have created a directory called BACKUP on the /opt partition. وكجزء من هذه العملية لقد خلقت دليل على ودعت BACKUP / اختيار التقسيم. We will organize the backups in this directory so that each days backup resides in a directory formed like this - /opt/BACKUP/YEAR/MONTH/DATE/ . ونحن سوف تنظم النسخ الاحتياطي في هذا دليل ذلك أن كل أيام احتياطية يقيم في دليل تشكيل مثل هذا -- / اختيار / BACKUP / السنة / الشهر / التاريخ /. So on the 11th of August 2008 the backups will go into /opt/BACKUP/2008/08/11/ . حتى على 11th من آب / أغسطس 2008 فإن النسخ الاحتياطي سيدخل / opt/BACKUP/2008/08/11 /. Let’s create these directories. ولخلق هذه الأدلة. Run the following set of commands as the root user. تشغيل المجموعة التالية من الأوامر لأن المستخدم الجذر.
# mkdir -p /opt/backup/DATA/2008 # mkdir بين ع / opt/backup/DATA/2008
# cd /opt/backup/DATA/2008 # مؤتمر نزع السلاح / opt/backup/DATA/2008
# mkdir 01 02 03 04 05 06 07 08 09 10 11 12 # mkdir 01 02 03 04 05 06 07 08 09 10 11 12
# cd /opt/backup/DATA/ # مؤتمر نزع السلاح / اختيار / الاحتياطية / بيانات /
# cp -r 2008 2009 # القطري ص 2008 2009
# cd /opt/backup/ # مؤتمر نزع السلاح / اختيار / الاحتياطية /
# cp -r DATA LOG # القطري ص بيانات دخو
See note below before issuing this last command. انظر الملاحظة أدناه قبل إصدار هذا الأخير القيادة.
# chown -R calvin.calvin /opt/backup # chown - صاد calvin.calvin / اختيار / الاحتياطية
We now have two sets of backup directories - one for data and another for log files. ولدينا الآن مجموعتين من الأدلة الاحتياطية -- واحدة للبيانات وملفات أخرى لتسجيل الدخول. With the backups directories created we are now ready to start writing the script. Note: I’m using the user calvin throughout this article. مع النسخ الاحتياطي أدلة خلق ونحن الآن على استعداد للبدء في كتابة السيناريو. ملاحظة : أنا باستخدام كالفن المستخدم في جميع أنحاء هذه المادة. Please replace calvin with your own username. يرجى الاستعاضة عن كالفن مع اسم المستخدم الخاص بك.
########################################################### ################################################## #########
# CODE BEGINS HERE # مدونة يبدأ هنا
########################################################### ################################################## #########
#!/bin/bash #! / بن / سحق
# SERVER DATA BACKUP V1.0 # خادم البيانات الاحتياطية V1.0
#########################
# BACKUP CONFIG # BACKUP التكوين
#########################
#Configure the month, date, and day # تهيئة شهر ، حتى الآن ، واليوم
YEAR=`date +”%Y”` # 2008 = تاريخ `العام +" ٪ نعم "' # 2008
MONTH=`date +”%m”`# 11 تاريخ شهر واحد = '+" ٪ م "' # 11
DAY=`date +”%d”` # 14 تاريخ يوم = '+" ٪ د "' # 14
YESTERDAY=`date –date=”yesterday” +%Y-%m-%d` # 2008-11-13 يوم أمس = 'تاريخ أحدث =" أمس "+ ٪ ٪ ص م د - ٪' # 2008-11-13
YESTERDAY_DATE=`date –date=yesterday +%d` # 13 YESTERDAY_DATE = 'تاريخ أحدث أمس = + ٪ د' # 13
YESTERDAY_MONTH=`date –date=yesterday +%m` # 11 YESTERDAY_MONTH = 'تاريخ أحدث أمس = + ٪ م' # 11
YESTERDAY_YEAR=`date –date=yesterday +%Y` # 2008 YESTERDAY_YEAR = 'تاريخ أحدث أمس + =' # ٪ ذال 2008
TODAY=`date +%Y-%m-%d` # 2008-11-14 تاريخ اليوم = '+ ٪ ٪ ص م د - ٪' # 2008-11-14
TODAY_DATE=`date +%d` # 14 تاريخ TODAY_DATE = '+ ٪ د' # 14
# directories to backup to # أدلة لدعم ل
DATA_BACKUP_PARENT_DIR=/opt/backup/DATA/ # <-- Change this your data backup dir DATA_BACKUP_PARENT_DIR = / اختيار / الاحتياطية / بيانات / # <-- هذا التغيير بياناتك احتياطية دير
LOG_BACKUP_PARENT_DIR=/opt/backup/LOG/ # <-- Change this your log backup dir LOG_BACKUP_PARENT_DIR = / اختيار / الاحتياطية / دخو / # <-- هذا التغيير الاحتياطية الخاصة بك سجل دير
# Apache Document Root Directory # اباتشي وثيقة من وثائق دليل الجذر
APACHE_DOCROOT=/var/www/html/ APACHE_DOCROOT = / فار / على شبكة الاتصالات العالمية / هتمل /
# MySQL Database config # ماي. س. ك قاعدة بيانات التكوين
DB_IP="localhost" # <-- Change this to the IP of your database server DB_IP = "localhost" # <-- هذا التغيير إلى الملكية الفكرية من خادم قاعدة البيانات الخاصة بك
DB_USER="calvin" # <-- Change this to your database username DB_USER = "كالفن" # <-- هذا التغيير لقاعدة البيانات اسم المستخدم
DB_PASS="calvin_password" # <-- Change this to your database password DB_PASS = "calvin_password" # <-- هذا التغيير لقاعدة البيانات كلمة السر الخاصة بك
DB_NAME="clientlist" # <-- Change this to your database name DB_NAME = "clientlist" # <-- هذا التغيير إلى اسم قاعدة البيانات الخاصة بك
# Apache Log Dir # اباتشي سجل دير
APACHE_LOG_DIR="/var/log/httpd/" # <-- Change this to the path data of your logs APACHE_LOG_DIR = "/ فار / السجل / httpd /" # <-- هذا التغيير إلى طريق البيانات الخاصة بك من جذوع الأشجار
# Application Files' Dir # تطبيق ملفات 'دير
APP_FILES="/home/calvin/application_files/" # <-- Change this to the path of the data directory APP_FILES = "/ الوطن / كالفن / application_files /" # <-- هذا التغيير إلى مسار دليل البيانات
# Config Dir # التكوين دير
CONFIG_DIR="/etc/" # <-- Change this to the path data directory CONFIG_DIR = "/ الخ /" # <-- هذا التغيير إلى مسار دليل بيانات
# Mail report address # التقرير معالجة البريد
EMAIL_ID="you@youremailid.com" # <-- Change this to your e-mail ID EMAIL_ID = "you@youremailid.com" # <-- هذا التغيير إلى حسابك في البريد الإلكتروني هوية
########################################################### ################################################## #########
# DATA BACKUP # الحفظ الاحتياطي للبيانات
########################################################### ################################################## #########
# Create and go into backup directory # والذهاب إلى إنشاء دليل الاحتياطية
cd $DATA_BACKUP_PARENT_DIR/$YEAR/$MONTH مؤتمر نزع السلاح DATA_BACKUP_PARENT_DIR دولار / دولار خلال عام / دولار الشهر
mkdir $DAY mkdir دولار في اليوم
cd $DAY مؤتمر نزع السلاح دولار في اليوم
# Database backup # قاعدة البيانات الاحتياطية
mysqldump -h ${DB_IP} -u ${DB_USER} -p${DB_PASS} ${DB_NAME} > ${DB_NAME}.db mysqldump - ح $ () DB_IP - ش $ () DB_USER - DB_PASS $ (ع)) $ (DB_NAME> DB_NAME $ (). ديسيبل
tar -zcvf ${DB_NAME}.tar.gz ${DB_NAME}.db القطران بين zcvf $ (DB_NAME). tar.gz $ (DB_NAME). ديسيبل
rm -f ${DB_NAME}.db جمهورية مقدونيا - و DB_NAME $ (). ديسيبل
# /etc backup # / إلخ الاحتياطية
tar -zcf etc.tar.gz /etc القطران بين zcf etc.tar.gz / الخ
# Application backup # تطبيق احتياطية
tar -zcf Apache_Doc_Root.tar.gz ${APACHE_DOCROOT} القطران بين zcf Apache_Doc_Root.tar.gz $ () APACHE_DOCROOT
tar -zcf App_Files.tar.gz ${APP_FILES} القطران بين zcf App_Files.tar.gz $ () APP_FILES
########################################################### ################################################## #########
# LOG BACKUP # دخو BACKUP
########################################################### ################################################## #########
# Create and go into backup directory # والذهاب إلى إنشاء دليل الاحتياطية
cd $LOG_BACKUP_PARENT_DIR/$YESTERDAY_YEAR/$YESTERDAY_MONTH مؤتمر نزع السلاح دولار LOG_BACKUP_PARENT_DIR / YESTERDAY_YEAR دولار / دولار YESTERDAY_MONTH
mkdir $YESTERDAY_DATE mkdir دولار YESTERDAY_DATE
cd $YESTERDAY_DATE مؤتمر نزع السلاح دولار YESTERDAY_DATE
# HTTPD Log Backup # HTTPD سجل النسخ الاحتياطي
for i in ${APACHE_LOG_DIR}/access_log.${YESTERDAY}*; do cp $i .; done لط APACHE_LOG_DIR في $ () / access_log. دولار يوم امس () * ؛ القيام ب ق ط دولار. ؛ القيام به
for i in access_log.${YESTERDAY}*; do gzip $i; done لأنني في access_log. دولار يوم امس () * ؛ لا gzip دولار ط ؛ القيام به
########################################################### ################################################## #########
# Send out mail notifications # إرسال البريد الإخطارات
########################################################### ################################################## #########
# Mail notify # تخطر البريد
du -shc $DATA_BACKUP_PARENT_DIR/$YEAR/$MONTH/$DAY/* | mail -s “Backup for ${HOSTNAME}::DATA done :)” ${EMAIL_ID} دو حالات العسر الشديد DATA_BACKUP_PARENT_DIR دولار / دولار خلال عام / دولار الشهر / دولار اليوم / * | البريد ق "النسخ الاحتياطي ل$ () اسم المضيف : : بيانات القيام به : (" $ () EMAIL_ID
du -shc $LOG_BACKUP_PARENT_DIR/$YESTERDAY_YEAR/$YESTERDAY_MONTH/$YESTERDAY_DATE/* | mail -s “Backup for ${HOSTNAME}::LOG done :)” ${EMAIL_ID} دو حالات العسر الشديد LOG_BACKUP_PARENT_DIR دولار / دولار YESTERDAY_YEAR / YESTERDAY_MONTH دولار / دولار YESTERDAY_DATE / * | البريد ق "النسخ الاحتياطي ل$ () اسم المضيف : : سجل دخولك القيام به : (" $ () EMAIL_ID
########################################################### ################################################## #########
# CODE ENDS HERE # مدونة تنتهي هنا
########################################################### ################################################## #########
Save this script in a directory such as /home/calvin/scripts/backup.sh. حفظ هذا البرنامج النصي في دليل مثل / الوطن / كالفن / مخطوطات / backup.sh. Give executable permissions to the file: منح أذونات للتنفيذ إلى الملف :
# chmod +x /home/calvin/scripts/backup.sh # chmod + س / الوطن / كالفن / مخطوطات / backup.sh
Now you are good to go. الآن انت جيدة الذهاب. Run the script form your command line: تشغيل البرنامج النصي الخاص بك شكل سطر الأوامر :
# /home/calvin/scripts/backup.sh # / الوطن / كالفن / مخطوطات / backup.sh
You can also optionally add this script as a cron job so that it will be executed on a daily basis at a time of your choice. يمكنك أيضا اختياريا إضافة هذا النص بوصفه وظيفة كرون ذلك أن يقام على أساس يومي في الوقت الذي تختاره. If you want to run this script at 4 AM daily do the following: إذا كنت تريد تشغيل هذا البرنامج النصي في 4 صباحا يوميا القيام بما يلي :
# crontab -e # crontab - ه
Create a new line in the file that opens and add the following: إنشاء الخط الجديد في الملف الذي يفتح ويضاف ما يلي :
0 4 * * * /home/calvin/scripts/backup.sh > /dev/null 0 4 * * * / الوطن / كالفن / مخطوطات / backup.sh> / ديف / لاغية
There you go. هناك تذهب. Your server will now backup your data, database, configuration files, application files, and log files to /opt/backup everyday at 4 AM. الخادم الخاص بك الآن احتياطية بياناتك ، قاعدة البيانات ، التشكيل صورة ، تطبيق ملفات ، وسجل لملفات / اختيار / الاحتياطية اليومية في 4 صباحا. A smart thing to do now would be to export these backups to a remote machine so that you don’t lose your backups if your server faces problems. ألف الذكية ما ينبغي القيام به الآن سيكون لتصدير هذه النسخ الاحتياطي إلى آلة النائية حتى انك لا تفقد النسخ الاحتياطي الخاص بك إذا يواجه مشاكل الخادم الخاص بك. We will cover how to do that in my next article. نحن سوف تغطي كيفية القيام بذلك في وجهتي المقبلة المادة.

![[سبورل]](/images/sharing/stumbleupon.png)




















{ 0 comments… (0 التعليقات... add one now إضافة واحد الآن } )
Leave a Comment ترك التعليق