วิธีการสำรองข้อมูลเซิร์ฟเวอร์ Centos เต็มรูปแบบ?


24

ฉันเปลี่ยนไม่กี่สัปดาห์ที่ผ่านมาจากเซิร์ฟเวอร์เฉพาะเป็น VPS ตอนนี้ทุกอย่างทำงานได้ดีบน VPS ฉันต้องการปิดเซิร์ฟเวอร์เฉพาะและปิดบัญชีของฉันกับ บริษัท โฮสติ้ง

เพื่อความอุ่นใจและเพื่อความปลอดภัยฉันต้องการสำรองข้อมูลเต็มรูปแบบของเซิร์ฟเวอร์ก่อนที่จะหยุด

ที่ดีที่สุดคือการสำรองข้อมูลที่ฉันสามารถเรียกดูถ้าฉันพบว่าฉันต้องการบางสิ่งบางอย่างในการสำรองข้อมูล

สิ่งที่จะเป็นทางออกที่ดีที่สุดจากบรรทัดคำสั่ง?

อัปเดต:

ปานกลาง: เครือข่าย

คำตอบ:


28

เครื่องมือที่ดีที่สุดที่จะใช้ในการนี้คือการถ่ายโอนข้อมูลซึ่งเป็นเครื่องมือ linux มาตรฐานและจะให้ระบบไฟล์ทั้งหมดแก่คุณ ฉันจะทำสิ่งนี้:

/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 และ ssh ไปยังเซิร์ฟเวอร์ระยะไกล (backupserver.example.com) เก็บไว้ใน / backup / . หากภายหลังคุณจำเป็นต้องเรียกดูข้อมูลสำรองที่คุณใช้คืนค่า:

restore -i

ตัวเลือกอื่นหากคุณไม่มีสิทธิ์ในการถ่ายโอนข้อมูลคือใช้ tar และทำสิ่งที่ต้องการ

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

แต่ tar ไม่รองรับการเปลี่ยนแปลงในระบบไฟล์เช่นกัน


คำสั่ง dump นี้ดูแลโปรแกรมที่ติดตั้งด้วยใช่มั้ย เหมือน Nginx ฯลฯ ..
ทะเล

การถ่ายโอนข้อมูลเป็นสำเนาที่แท้จริงของระบบไฟล์ที่มีทุกอย่างในนั้น ตราบใดที่คุณไม่มีมากกว่าหนึ่ง (ตรวจสอบโดยทำงานmount) นั่นคือทั้งหมดที่คุณต้องการ
Bill Weiss

ฉันได้รับสิ่งนี้-bash: /sbin/dump: No such file or directory
Lucas Bustamante

@LucasB คุณอาจต้องติดตั้งดัมพ์ บน Ubuntu คุณทำสิ่งที่ชอบsudo apt-get install dump
pehrs

@pehrs คุณจะกู้คืนโดยใช้.gzไฟล์ได้อย่างไร คุณช่วยเพิ่มในคำตอบของคุณได้ไหม มันช่วยได้จริงๆ
ขวดแดง

10

หากคุณต้องการสำรองข้อมูลจาก Linux ไปยัง Linux ฉันจะไม่ใช้การถ่ายโอนข้อมูลเพราะไม่สะดวกเมื่อคุณต้องการเข้าถึงบางสิ่งภายในไฟล์สำรองข้อมูล เพียงแค่ใช้rsyncSSH มากกว่าเพื่อทำการสำรองข้อมูลระบบอย่างสมบูรณ์ควรจะใช้ได้ในกรณีส่วนใหญ่:

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

สิ่งนี้จะทำให้ทุกอย่างมีความสำคัญและให้คุณเรียกดูข้อมูลสำรองโดยไม่มีขั้นตอนเพิ่มเติม

คุณอาจต้องการเพิ่ม--deleteตัวเลือกrsync หากคุณใช้งานหลายครั้งในโฟลเดอร์สำรองเดียวกัน ในกรณีนี้ตรวจสอบให้แน่ใจว่าเส้นทางต้นทางไม่ได้จบด้วย/*หรือตัวเลือกนี้จะมีผลกับไฟล์ที่อยู่ในไดเรกทอรีย่อยของไดเรกทอรีต้นทาง แต่จะไม่มีผลกับไฟล์ที่อยู่ภายในไดเรกทอรีต้นทางโดยตรง


3

คุณจะใช้สื่อประเภทใดในการจัดเก็บข้อมูลสำรอง หากคุณสำรองข้อมูลผ่านเครือข่ายฉันจะใช้ sshfs / nfs ติดตั้งปลายทางของฉันบนเซิร์ฟเวอร์ต้นทางและใช้งานดังนี้:

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 สูงเมื่อไม่สามารถเชื่อมต่อปลายทางได้ เนื่องจากโฮสติ้ง VPS หลายแห่งอาจถูกรีเซ็ตในกรณีเช่นนี้ฉันแนะนำให้ตรวจสอบโหลดซีพียูเพื่อฆ่ากระบวนการ lftp เพื่อป้องกันเซิร์ฟเวอร์ของคุณปิดโดยเจ้าของโฮสต์ ตัวอย่างสำหรับโหลดเฉลี่ย> 1.33 สำหรับกระบวนการ lftp (และ dropbox) น่าเสียดายที่ฉันจำรหัสที่มาเริ่มต้นไม่ได้ขอบคุณคนที่:

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

คุณเคยได้ยินBaculaบ้างไหม?

Bacula เป็นชุดของ Open Source โปรแกรมสำหรับองค์กรพร้อมโปรแกรมคอมพิวเตอร์ที่อนุญาตให้คุณ (หรือผู้ดูแลระบบ) จัดการการสำรองข้อมูลการกู้คืนและการตรวจสอบข้อมูลคอมพิวเตอร์ในเครือข่ายคอมพิวเตอร์ต่าง ๆ Bacula นั้นใช้งานง่ายและมีประสิทธิภาพในขณะที่มีคุณสมบัติการจัดการพื้นที่เก็บข้อมูลขั้นสูงมากมายซึ่งทำให้ง่ายต่อการค้นหาและกู้คืนไฟล์ที่สูญหายหรือเสียหาย ในแง่เทคนิคมันเป็นโอเพ่นซอร์สองค์กรพร้อมโปรแกรมสำรองข้อมูลบนเครือข่าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.