एक पूर्ण Centos सर्वर का बैकअप कैसे लें?


24

मैंने कुछ हफ़्ते पहले एक समर्पित सर्वर से VPS में स्विच किया। अब जब VPS पर सब कुछ अच्छा चल रहा है तो मैं समर्पित सर्वर को बंद करना चाहूंगा और होस्टिंग कंपनी के साथ अपना खाता बंद करूंगा।

मन की शांति के लिए और अधिक सुरक्षित रहने के लिए मैं इसे रोकने से पहले सर्वर का पूरा बैकअप लेना चाहूंगा।

सबसे अच्छा एक बैकअप होगा जिसे मैं ब्राउज़ कर सकता हूं अगर मुझे लगता है कि मुझे बैकअप में कुछ चाहिए।

कमांड लाइन से सबसे अच्छा उपाय क्या होगा?

अद्यतन करें :

माध्यम: नेटवर्क

जवाबों:


28

इसके लिए उपयोग करने के लिए सबसे अच्छा उपकरण संभवतः डंप है, जो एक मानक लिनक्स उपकरण है और आपको पूरे फाइल सिस्टम देगा। मैं ऐसा कुछ करूंगा:

/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish user@backupserver.example.com dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz

यह एक फ़ाइल सिस्टम डंप करेगा / (सुनिश्चित करें कि आपको किसी अन्य माउंट को डंप करने की आवश्यकता नहीं है!), इसे gzip के साथ संपीड़ित करें और इसे एक दूरस्थ सर्वर (backupserver.example.com) में जमा करें, इसे / backup / में संग्रहीत करें । यदि आपको बाद में बैकअप का उपयोग करने की आवश्यकता है जिसे आप पुनर्स्थापित करते हैं:

restore -i

एक अन्य विकल्प, यदि आपके पास डंप तक पहुंच नहीं है, तो टार का उपयोग करें और कुछ ऐसा करें

tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .

लेकिन टार फाइल सिस्टम में बदलाव को भी हैंडल नहीं करता है।


यह डंप कमांड स्थापित कार्यक्रमों का भी ध्यान रखता है? जैसे nginx, आदि ..
Thale

डंप फ़ाइल सिस्टम की एक शाब्दिक प्रतिलिपि है, जिसमें सब कुछ है। जब तक आपके पास एक से अधिक (रन करके चेक नहीं mount) है, जो आपको चाहिए।
बिल वीस

मुझे यह मिलता है-bash: /sbin/dump: No such file or directory
लुकास Bustamante

@LucasB आपको डंप स्थापित करने की आवश्यकता हो सकती है। Ubuntu पर आप कुछ ऐसा करते हैंsudo apt-get install dump
pehrs

@pehrs आप .gzफ़ाइल का उपयोग करके कैसे पुनर्स्थापित करते हैं? क्या आप कृपया अपने उत्तर में इसे जोड़ सकते हैं। यह वास्तव में मदद करेगा।
रेड बॉटल

10

यदि आप लिनक्स से लिनक्स पर बैकअप लेना चाहते हैं, तो मैं डंप का उपयोग नहीं करूंगा, क्योंकि जब आप बैकअप फ़ाइल के अंदर कुछ एक्सेस करना चाहते हैं तो यह असुविधाजनक है। एक पूर्ण सिस्टम बैकअपrsync करने के लिए बस SSH का उपयोग करना ज्यादातर मामलों में ठीक होना चाहिए:

rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder

यह सब कुछ महत्वपूर्ण रखेगा और आपको अतिरिक्त चरणों के बिना बैकअप ब्राउज़ करने देगा।

--deleteयदि आप एक ही बैकअप फ़ोल्डर में कई बार चला रहे हैं तो आप rsync का विकल्प जोड़ना चाहते हैं। इस स्थिति में सुनिश्चित करें कि स्रोत पथ के साथ समाप्त नहीं होता है /*, या यह विकल्प केवल स्रोत निर्देशिका की उपनिर्देशिकाओं के अंदर फ़ाइलों पर प्रभाव पड़ेगा, लेकिन इसका स्रोत निर्देशिका के अंदर सीधे रहने वाली फ़ाइलों पर कोई प्रभाव नहीं पड़ेगा।


3

आप किस माध्यम पर बैकअप स्टोर करने जा रहे हैं? यदि आप नेटवर्क पर बैकअप ले रहे हैं, तो मैं स्रोत सर्वर पर अपना गंतव्य माउंट करूंगा और कुछ इस तरह चलाऊंगा:

tar cvjf /<remote_mnt>/<point>/source-030810-full.tar.bz2 /* --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/<remote_mnt>

ध्यान दें कि परीक्षण नहीं किया गया है, बस मेरी सामान्य सोच आप इससे अधिक या कम बाहर करना चाह सकते हैं।


3

मैं pehrs से ऊपर वर्णित कमांड का उपयोग करता हूं, लेकिन ftp उपयोग के लिए संशोधित। Crontab नमूना:

30 3 1 * * sudo /sbin/dump -0uan -f server-full-backup-root-`date '+%d-%B-%Y'`.dump / && gzip -1 /<path_to_backup_file>/server-full-backup-root-`date '+%d-%B-%Y'`.dump
50 * * * * lftp -f upload.x

upload.x में ftp क्रेडेंशियल और अपलोड के नियम शामिल हैं:

open -u user,password -p 21 192.168.1.1
mirror -c -e -R /<path_to_backup_folder> /<path_to_remote_folder_without_trailing_slash>
exit

नोट 1: गंतव्य को पुन: कनेक्ट करने के लिए पहुंच से बाहर होने पर lftp उच्च CPU उपयोग का कारण हो सकता है। क्योंकि ऐसे मामलों में कई होस्टिंग वीपीएस को रीसेट किया जा सकता है, इसलिए मैं आपके सर्वर को होस्ट मालिक द्वारा बंद करने से रोकने के लिए एलएफटी प्रक्रिया को मारने के लिए सीपीयू लोड की निगरानी करने का सुझाव देता हूं। लोड औसत के लिए एक उदाहरण> प्रक्रियाओं के लिए 1.33 (और ड्रॉपबॉक्स)। दुर्भाग्य से, मुझे प्रारंभिक कोड का स्रोत याद नहीं है, किसी के लिए धन्यवाद:

crontab */5 * * * * /home/cms/cron/loadmon.sh

#!/bin/bash
FROM_EMAIL_ADDRESS=cms
  trigger=1.33
  load=`cat /proc/loadavg | awk '{print $1}'`
  response=`echo | awk -v T=$trigger -v L=$load 'BEGIN{if ( L > T){ print "greater"}}'`
if [[ $response = "greater" ]]
then
  killall dropbox lftp
  nice -n 19 sh /cms/.dropbox-dist/dropboxd
  sar -q | mailx -s "High load on server - [ $load ]" r***s@gmail.com
fi

नोट 2: डंप उपयोगिता OpenVZ VPS या कुछ अन्य वर्चुअल सर्वर पर काम नहीं कर सकती है।


2

क्या आपने बकुला के बारे में सुना है ?

बकुला ओपन सोर्स, एंटरप्राइज रेडी, कंप्यूटर प्रोग्राम का एक सेट है, जो आपको (या सिस्टम एडमिनिस्ट्रेटर) विभिन्न प्रकार के कंप्यूटरों के नेटवर्क में कंप्यूटर डेटा के बैकअप, रिकवरी और वेरिफिकेशन के प्रबंधन की अनुमति देता है। बकुला अपेक्षाकृत उन्नत और कुशल है, जबकि कई उन्नत भंडारण प्रबंधन सुविधाएँ प्रदान करते हैं जो खोई या क्षतिग्रस्त फ़ाइलों को ढूंढना और पुनर्प्राप्त करना आसान बनाते हैं। तकनीकी शब्दों में, यह एक ओपन सोर्स, एंटरप्राइज रेडी, नेटवर्क आधारित बैकअप प्रोग्राम है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.