Как создать резервную копию полного Centos Server?

Я переключил несколько недель назад с выделенного сервера на VPS. Теперь, когда все работает на VPS, я хотел бы закрыть выделенный сервер и закрыть мою учетную запись в хостинговой компании.

Для спокойствия и для того, чтобы быть более безопасным, я хотел бы сделать полную резервную копию сервера, прежде чем останавливать его.

Лучше всего было бы резервное копирование, которое я мог бы просматривать, если обнаружил, что мне нужно что-то в резервной копии.

Какое будет лучшее решение из командной строки?

Обновление:

Средняя: Сеть

22 голоса | спросил benjisail 8 MarpmMon, 08 Mar 2010 21:30:25 +03002010-03-08T21:30:25+03:0009 2010, 21:30:25

5 ответов


24

Лучшим инструментом для этого является, вероятно, dump, который является стандартным инструментом linux и предоставит вам всю файловую систему. Я бы сделал что-то вроде этого:

/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish [email protected] dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz

Это сделает дамп файловой системы /(убедитесь, что вам не нужно сбрасывать другие монтирования!), сжимайте его с помощью gzip и ssh на удаленный сервер (backupserver.example.com), сохраняя его в /резервное копирование/. Если позже вам понадобится просмотреть резервную копию, вы используете восстановление:

restore -i

Другая опция, если у вас нет доступа к дампу, - это использовать tar и сделать что-то вроде

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

Но tar также не обрабатывает изменения в файловой системе.

ответил pehrs 8 MarpmMon, 08 Mar 2010 21:42:25 +03002010-03-08T21:42:25+03:0009 2010, 21:42:25
7

Если вы хотите сделать резервную копию из Linux в Linux, я бы не использовал дамп, потому что это неудобно, когда вам нужно получить доступ к чему-либо внутри файла резервной копии. Просто используя rsync через SSH до выполнить полную резервную копию системы в большинстве случаев должно быть хорошо:

rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / [email protected]:backup-folder

Это позволит сохранить все важные и , чтобы вы могли просматривать резервные копии без дополнительных шагов.

  

Вы можете добавить параметр rsync --delete, если вы используете этот   несколько раз в одну и ту же папку резервного копирования. В этом случае убедитесь, что   путь источника не заканчивается на /*, или этот параметр будет иметь только   влияние на файлы внутри подкаталогов исходного каталога,   но это не повлияет на файлы, находящиеся непосредственно внутри   исходный каталог.

ответил Rafael Bugajewski 31 J000000Friday15 2015, 20:34:39
3

На каком носителе вы будете хранить резервную копию? Если вы выполняете резервное копирование по сети, я бы установил sshfs /nfs мой пункт назначения на исходном сервере и выполнил что-то вроде:

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

Обратите внимание, что это не было протестировано, просто мое общее мнение о том, что вы можете исключить больше или меньше этого.

ответил d34dh0r53 8 MarpmMon, 08 Mar 2010 21:41:46 +03002010-03-08T21:41:46+03:0009 2010, 21:41:46
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 может привести к высокому использованию ЦП, когда адресат недоступен, пытаясь повторно подключиться. Поскольку многие хостинговые 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***[email protected]
fi

Примечание 2: Утилита dump не работает на OpenVZ VPS или на некоторых других виртуальных серверах.

ответил Rapekaz 15 62014vEurope/Moscow11bEurope/MoscowSat, 15 Nov 2014 23:39:22 +0300 2014, 23:39:22
2

Вы слышали о Bacula ?

  

Bacula - это набор программ с открытым исходным кодом, готовых к работе, компьютерных программ, которые позволяют вам (или системному администратору) управлять резервным копированием, восстановлением и проверкой компьютерных данных по сети компьютеров разных типов. Bacula относительно прост в использовании и эффективен, предлагая множество передовых функций управления хранилищами, которые позволяют легко находить и восстанавливать потерянные или поврежденные файлы. С технической точки зрения, это программа резервного копирования с открытым исходным кодом, готовая к работе в сети, основанная на сети.

ответил dani.jtk 12 MarpmFri, 12 Mar 2010 21:47:26 +03002010-03-12T21:47:26+03:0009 2010, 21:47:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132