नमस्ते
नियमित बैकअप के महत्व के बारे में बहुत सारे शब्द पहले ही कहे जा चुके हैं। इस लेख में, हम अपने पाठकों को बैकअप फ़ाइलों और MySQL डेटाबेस के लिए सरल लिपियों के उदाहरण पेश करते हैं, इसके बाद अभिलेखों को दूरस्थ FTP सर्वर पर अपलोड करते हैं।
इस तथ्य के बावजूद कि हम
NQhost में VPS कंटेनरों के स्नैपशॉट को बचाने के लिए समाधान प्रदान करते हैं, अपने आप में बैकअप प्रक्रिया सबसे महत्वपूर्ण बात है।
अर्थव्यवस्था
एक आभासी या भौतिक सर्वर स्थापित लिनक्स-ओएस, एक वेब सर्वर और MySQL डेटाबेस के साथ।
वेब सर्वर फ़ाइलें निर्देशिकाओं में स्थित हैं
/ घर / साइट 1
/ घर / साइट 2
/ घर / साइट 3
कार्य
दूरस्थ एफ़टीपी सर्वर को बचाने और हर दिन इसे चलाने के साथ बैकअप फ़ाइलों और डेटाबेस के लिए एक स्क्रिप्ट बनाना।
निर्णय
उदाहरण की सादगी के लिए, हम रूट से काम करेंगे, बैकअप फ़ाइलों को संग्रहीत करने के लिए निर्देशिका / रूट / बैकअप / सर्वर है, और MySQL के लिए - / रूट / बैकअप / mysql
बैकअप फ़ाइलें
यहाँ बैकअप फ़ाइलों के लिए एक स्क्रिप्ट का एक उदाहरण है, स्पष्टता के लिए, रूसी में वर्ग कोष्ठक में स्पष्टीकरण दिए गए हैं।
#!/bin/sh
### System Setup ###
BACKUP=/root/backup/server
### FTP ###
FTPD="/"
FTPU="username" [ () ftp-c]
FTPP="megapassword" [ ftp-]
FTPS="my_remote_backup.ru" [, ftp- IP]
### Binaries ###
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
## Today + hour in 24h format ###
NOW=$(date +%Y%m%d) [ , server-YYYYMMDD.tar.gz]
### Create tmp dir ###
mkdir $BACKUP/$NOW
$TAR -cf $BACKUP/$NOW/etc.tar /etc [c /etc ]
$TAR -cf $BACKUP/$NOW/site1.tar /home/site1/
$TAR -cf $BACKUP/$NOW/site2.tar /home/site2/
$TAR -cf $BACKUP/$NOW/site2.tar /home/site3/
ARCHIVE=$BACKUP/server-$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW
$TAR -zcvf $ARCHIVE $ARCHIVED
### ftp ###
cd $BACKUP
DUMPFILE=server-$NOW.tar.gz
$FTP -n $FTPS <<END_SCRIPT
quote USER $FTPU
quote PASS $FTPP
cd $FTPD
mput $DUMPFILE
quit
END_SCRIPT
### clear ###
rm -rf $ARCHIVED
इस स्क्रिप्ट का परिणाम डायरेक्टरी / रूट / बैकअप / फॉर्म सर्वर के सर्वर-YYYYMMDD.tar.gz में एक निर्मित फ़ाइल होगी जिसमें निर्देशिका / आदि, / होम / साइट 1, / होम / साइट 2 और होम / साइट 3 के संग्रह अभिलेखागार शामिल होंगे।
उसी फ़ाइल को FTP सर्वर पर अपलोड किया जाएगा, जिसे हमने स्क्रिप्ट की शुरुआत में निर्दिष्ट किया था।
बैकअप MySQL डेटाबेस
इस स्क्रिप्ट के साथ हम MySQL डेटाबेस को अनलोड करते हैं (तथाकथित "डंप)। प्रत्येक डेटाबेस को एक अलग फ़ाइल में अपलोड किया जाता है।
#!/bin/sh
# System + MySQL backup script
### System Setup ###
BACKUP=/root/backup/mysql
### Mysql ### [ MySQL]
MUSER="root"
MPASS="megapassword"
MHOST="localhost"
### FTP ###
FTPD="/"
FTPU="username" [ () ftp-c]
FTPP="megapassword" [ ftp-]
FTPS="my_remote_backup.ru" [, ftp- IP]
### Binaries ###
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
## Today + hour in 24h format ###
NOW=$(date +%Y%m%d)
### Create temp dir ###
mkdir $BACKUP/$NOW
### name Mysql ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
### ###
mkdir $BACKUP/$NOW/$db
FILE=$BACKUP/$NOW/$db/$db.sql.gz
echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
done
ARCHIVE=$BACKUP/mysql-$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW
$TAR -zcvf $ARCHIVE $ARCHIVED
### ftp ###
cd $BACKUP
DUMPFILE=mysql-$NOW.tar.gz
$FTP -n $FTPS <<END_SCRIPT
quote USER $FTPU
quote PASS $FTPP
cd $FTPD
mput $DUMPFILE
quit
END_SCRIPT
### clear ###
rm -rf $ARCHIVED
स्क्रिप्ट का परिणाम निर्देशिका / रूट / बैकअप / प्रपत्र mysql-YYYYMMDD.tar.gz में एक फाइल है जिसमें सभी डेटाबेस के डंप के साथ टार अभिलेखागार होता है और इसे एक FTP सर्वर पर अपलोड किया जाता है।
स्वचालन
हम इन स्क्रिप्ट्स को /etc/cron.daily निर्देशिका में सहेजते हैं, / etc / crontab फ़ाइल में जाँचने के बाद कि स्क्रिप्ट इस निर्देशिका से प्रतिदिन चलती हैं।
निष्कर्ष
बेशक, प्रत्येक मामले में, स्क्रिप्ट बदल सकते हैं और दिए गए उदाहरण बैकअप को व्यवस्थित करने के कई विकल्पों में से एक हैं।
हमें उम्मीद है कि इस लेख को पढ़ने के बाद आप अपने स्वयं के बैकअप समाधान के बारे में सोचेंगे, यदि किसी कारण से आपने अभी तक इस सबसे महत्वपूर्ण प्रक्रिया का आयोजन नहीं किया है।