“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. जब एक उत्पादन आईटी ढांचे को चल रहे हैं, यह जरूरी है कि हम अपने सर्वरों पर और संभव के रूप में एक सौ प्रतिशत के रूप में बंद के आवेदन पत्र प्राप्त करने के एक uptime. 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. इस अभ्यास के लिए मैं एक सर्वर है कि Apache वेब सर्वर, एक MySQL डाटाबेस सर्वर चलाता है, का उपयोग करें और घर / विभाजन है कि कुछ डेटा की जरूरत को समर्थित होना होता है पर एक निर्देशिका है जाएगा. 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. के रूप में प्रयोग मैं एक निर्देशिका / विभाजन के विकल्प पर बैकअप फोन का हिस्सा बनाया है. 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/ . हम इस निर्देशिका में बैकअप बहुत व्यवस्थित है कि प्रत्येक दिन एक बैकअप इस तरह का गठन निर्देशिका में रहता हूँ - / opt / बैकअप / वर्ष / माह / तारीख /. So on the 11th of August 2008 the backups will go into /opt/BACKUP/2008/08/11/ . इतने पर अगस्त 2008 के 11 वें बैकअप / 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-p # / 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 03 02 04 05 06 07 08 09 10 11 12
# cd /opt/backup/DATA/ # Cd / opt / बैकअप / डाटा /
# cp -r 2008 2009 # Cp-r 2008 2009
# cd /opt/backup/ # Cd / opt / बैकअप /
# cp -r DATA LOG # Cp-r आंकड़े LOG
See note below before issuing this last command. देखने के नीचे इस अंतिम आदेश जारी करने से पहले ध्यान दें.
# chown -R calvin.calvin /opt/backup # Chown-R calvin.calvin / opt / बैकअप
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 ! # / bin / मार
# SERVER DATA BACKUP V1.0 # सर्वर डेटा बैकअप v1.0
######################### #########################
# BACKUP CONFIG # बैकअप config
######################### #########################
#Configure the month, date, and day # कॉन्फ़िगर महीने, तिथि, और दिन
YEAR=`date +”%Y”` # 2008 वर्ष = `की तारीख + '% Y' = # 2008
MONTH=`date +”%m”`# 11 महीने = `की तारीख +"% मीटर "` # 11
DAY=`date +”%d”` # 14 दिवस = `की तारीख +"% d "` 14 #
YESTERDAY=`date –date=”yesterday” +%Y-%m-%d` # 2008-11-13 कल = `तारीख की तारीख =" कल "+% Y-% मीटर% d` 2008/11/13 #
YESTERDAY_DATE=`date –date=yesterday +%d` # 13 YESTERDAY_DATE = `तारीख की तारीख% कल = + D` # 13
YESTERDAY_MONTH=`date –date=yesterday +%m` # 11 YESTERDAY_MONTH = `तारीख की तारीख = कल +% मीटर` # 11
YESTERDAY_YEAR=`date –date=yesterday +%Y` # 2008 YESTERDAY_YEAR = `तारीख की तारीख = कल +% Y '# 2008
TODAY=`date +%Y-%m-%d` # 2008-11-14 टुडे = `की तारीख +% Y-% मीटर% d` 2008/11/14 #
TODAY_DATE=`date +%d` # 14 TODAY_DATE = `की तारीख +% d` 14 #
# directories to backup to के बैकअप के लिए # निर्देशिका
DATA_BACKUP_PARENT_DIR=/opt/backup/DATA/ # <-- Change this your data backup dir DATA_BACKUP_PARENT_DIR = / opt / बैकअप / डाटा / # <बदलें - यह आपके डेटा dir बैकअप
LOG_BACKUP_PARENT_DIR=/opt/backup/LOG/ # <-- Change this your log backup dir LOG_BACKUP_PARENT_DIR = / opt / बैकअप / log / # <- यह तुम्हारा लॉग बैकअप dir बदलें
# Apache Document Root Directory # अपाचे दस्तावेज़ रूट निर्देशिका
APACHE_DOCROOT=/var/www/html/ APACHE_DOCROOT = / var / www html / /
# MySQL Database config # MySQL डाटाबेस config
DB_IP="localhost" # <-- Change this to the IP of your database server DB_IP = "लोकलहोस्ट" <अपना डाटाबेस सर्वर के IP को - # इस बदलें
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 लॉग डिर
APACHE_LOG_DIR="/var/log/httpd/" # <-- Change this to the path data of your logs APACHE_LOG_DIR = "/ var / log / httpd /" <अपने लॉग का रास्ता डेटा - # इस बदलें
# Application Files' Dir # अनुप्रयोग 'फ़ाइलें डिर
APP_FILES="/home/calvin/application_files/" # <-- Change this to the path of the data directory APP_FILES = "/ home / केल्विन / application_files # <- डाटा निर्देशिका का पथ इस परिवर्तन /"
# Config Dir # Config डिर
CONFIG_DIR="/etc/" # <-- Change this to the path data directory CONFIG_DIR = "/ etc /" <मार्ग डाटा निर्देशिका में - # इस बदलें
# 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-u $ $ h () DB_USER-DB_PASS $ () () DB_NAME $> $ (p) DB_NAME DB.
tar -zcvf ${DB_NAME}.tar.gz ${DB_NAME}.db निशाना zcvf $ (DB_NAME) tar.gz. $ () DB_NAME DB.
rm -f ${DB_NAME}.db rm-F $ () DB_NAME DB.
# /etc backup # / Etc बैकअप
tar -zcf etc.tar.gz /etc निशाना zcf etc.tar.gz etc /
# Application backup # अनुप्रयोग बैकअप
tar -zcf Apache_Doc_Root.tar.gz ${APACHE_DOCROOT} निशाना zcf $ APACHE_DOCROOT (Apache_Doc_Root.tar.gz)
tar -zcf App_Files.tar.gz ${APP_FILES} निशाना zcf $ APP_FILES (App_Files.tar.gz)
########################################################### ################################################## #########
# LOG BACKUP # LOG बैकअप
########################################################### ################################################## #########
# 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 / $ (में कल) *.; कर सी.पी. $ i.; किया
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 -du shc $ DATA_BACKUP_PARENT_DIR / $ वर्ष / $ माह / $ दिवस / * | मेल-$ के लिए बैकअप s "() होस्टनाम:: किया आंकड़े
” ${EMAIL_ID} "$ EMAIL_ID ()
du -shc $LOG_BACKUP_PARENT_DIR/$YESTERDAY_YEAR/$YESTERDAY_MONTH/$YESTERDAY_DATE/* | mail -s “Backup for ${HOSTNAME}::LOG done -du shc $ LOG_BACKUP_PARENT_DIR / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH / YESTERDAY_DATE $ / * | मेल-s "$ के लिए बैकअप () होस्टनाम किया:: Log
” ${EMAIL_ID} "$ 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 + x / घर / केल्विन / लिपियों / 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 में इस स्क्रिप्ट को चलाना चाहता हूँ दैनिक AM निम्नलिखित करें:
# 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> / dev / बातिल
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. आपके सर्वर अब अपने डेटा, डेटाबेस, विन्यास फाइल, बैकअप आवेदन फ़ाइलें, और लॉग फाइल को / opt / बैकअप 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. हम कैसे कर को कवर किया जाएगा कि मेरे अगले लेख में.























{ 1 comment… read it below or (1 टिप्पणी ... या नीचे पढ़ें add one एक जोड़ } )
Hello हैलो
I'm testing the script, but I've errors with the lines: मैं स्क्रिप्ट का परीक्षण कर रहा हूँ, लेकिन मैं लाइनों के साथ त्रुटियाँ हैं:
YESTERDAY=`date –date=”yesterday” +%Y-%m-%d` # 2008-11-13 कल = `तारीख की तारीख =" कल "+% Y-% मीटर% d` 2008/11/13 #
YESTERDAY_DATE=`date –date=yesterday+%d` # 13 YESTERDAY_DATE = `तारीख की तारीख% कल = + D` # 13
YESTERDAY_MONTH=`date –date=yesterday +%m` # 11 YESTERDAY_MONTH = `तारीख की तारीख = कल +% मीटर` # 11
YESTERDAY_YEAR=`date –date=yesterday +%Y` # 2008 YESTERDAY_YEAR = `तारीख की तारीख = कल +% Y '# 2008
The error I've is by example: त्रुटि मैं उदाहरण से है:
mysystem# YESTERDAY=`date .date=.yesterday. mysystem # कल = `की तारीख. =. कल की तारीख. +%Y-%m-%d` # 2008-11-13 +% Y-% मीटर% d `2008/11/13 #
date: extra operator `+%Y-%m-%d' तिथि: अतिरिक्त ऑपरेटर '% Y + D-%% मीटर'
Try `date –help' for mor information कोशिश `तारीख mor जानकारी के लिए मदद '
I've tested it in : Ubuntu Linux 7.04 मैं इसे में परीक्षण किया है: Ubuntu Linux 7.04
Thanks (and good work !!) धन्यवाद (और अच्छा काम!)
Leave a Comment एक टिप्पणी छोड़ दो