Borgia

Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Организация Небольшой сети на linux Fedore Core3 Часть восьмая резервирование данных (Backup) Решил пока немного перепрыгнуть от запланированых тем веб и почта так как реально столкнулся с тем что, то что наиденно, записано и создано надо как то архивировать и куда-то складывать. Я думаю у каждого есть какая то информация -фаилы с которыми бы он не очень хотел растоваться . Для тех у кого очень критичная информация да и к тому же конфиденциальная написаное здесь не будет решением их проблем . Нас же интересует просто удобное сохранение определенных данных на случай краха системы и быстрое их востановление.( я дальше буду просто сокращать словом - backup) Сюда могут входить как личные файлы так и всевозможные конфигурационные файлы системы. В начале немнного идеологий backup .Для себя я вынес основную мысль сказаную ниже. Основные правила очень простые 1. чем больше копий тем лучше, при условии что они находятся в разных местах и плюс на разных носителях 2. стоимость backup не должна превышать стоимости самих данных ( тут каждый сам решает на сколько ему важны его данные ) 3. сама организация backup должна быть достаточно простой и удобной и по возможности автоматизированной хотя бы на програмном уровне 4. Надо обязательно раз в какое то время делать тестовое востоновления данных из backup что бы удостовериться что вы деиствительно сможете при аварии вернуть свои данные Все сказаное ИМХО. И так что мы имеем на сегодняшний день в виде носителей на которые можно делать backup данных. 1. HARD DISK 2. CD-RW 3. DVD-RW 4. TAPE Их намного больше но я имхо отметил наиболее актуальные для небольщой сети . И так - как я это вижу . В сети должен быть компьютер не обязательно выделенный -но желательно , на котоый будут скидываться данные с компьютеров в сети для этого он должен обладать достаточным дисковым пространством ( в оптимале SCSI RAID 5 ) хм ну кто знает ??? более дешевое решение RAID SATA, еще более дешевое просто HARD DISK SCSI , ну и самое дешевое HARD DISK IDE . И все это будет дублироваться backup на TAPE или CD-RW,DVD-RW на случай выхода из строя HARD DISK. Поверьте изголяться можно до бесконечности но здесь вступает правило 2 ,, стоимость backup не должна превышать стоимости самих данных ( тут каждый сам решает на сколько ему важны его данные ),, Теперь о програмном обеспечении. Его достаточно много и в том числе и бесплатных вы можете ознакомиться со списком http://www.opennet.ru/prog/sml/45.shtml Есть и уже встроенные программы tar, dump, cpio . Есть так же в дистрибутиве и программа AMANDA - Распределенная система, для создания резервных копий с находящихся в различных местах сети машин на централизованном бэкап сервере. Но покопавшись я понял что без ящика пива и соседа гуру я врядли сам разберусь ( хотя я может и не прав, но толковых статей я в инете не нашел) dump Описание Dump полностью отличается от tar; эта программа предназначена для резервного копирования и восстановления файловой системы. Она создает резервные копии элементов файловой системы не файлов. Dump проверяет файлы на файловой системе ext2, определяет резервные копии каких из них необходимо выполнить и копирует эти файлы на заданный диск, ленту, файл или другой носитель. Это позволяет получить дамп одной файловой системы быстро и эффективно. К сожалению, его нельзя применить к отдельным каталогам, поэтому архивы потребляют больше места на устройстве хранения. Dump был написан специально для резервного копирования. Команда restore выполняет функцию обратную dump; она восстанавливает полную резервную копию файловой системы. Последующие добавочные резервные копии могут быть наложены слоями на вершину полной копии. Отдельные файлы и каталоги могут быть также восстановлены из полной или частичной резервной копии. Вы можете использовать dump если нуждаетесь в процедуре резервного копирования и восстановления файловых систем Программа dump выполняет резервное копирование всей файловой системы, располагающейся на устройстве. Невозможно выполнить резервное копирование части файловой системы или дерева каталогов, которые располагаются более чем в одной файловой системе. Утилита dump не записывает на ленту файлы и каталоги, она записывает блоки данных, из которых строятся файлы и каталоги. tar Описание Программа резервного копирования tar это программа архивирования, которая была создана для хранения и извлечения файлов из архива, известного как тарфайл. Тарфайл может быть создан на лентопротяжном устройстве; однако, чаще всего тарфайлы записываются как обычные файлы. tar работает с файловой системой; tar записывает на ленту файлы и каталоги. cpio является оригинальной программой UNIX для обмена файлами на магнитных носителях. В утилите cpio имеются опции (кроме всего прочего), позволяющие выполнять изменение порядка следования байтов, поддерживающие различные форматы архивов и выполняющие перенаправление данных другим программам. Последняя возможность делает cpio прекрасным выбором для целей установки. cpio не знает о том, как работать с каталогами, список файлов должен даваться через stdin. вот линки интересные линки откуда я брал информацию. http://www.mgul.ac.ru/~t-alex/Linux/optimization/ch22_1.html http://www.mgul.ac.ru/~t-alex/Linux/optimization/ch22_2.html#9 Выбор за вами я остановил пока свой выбор на tar так как места для хранения у меня не много и backup я буду делать определенным папкам настроек системы и своим личным. Теперь каким директориям мы должны делать backup, и если с личными папками нет проблем то с ситемными не все так обстоит понятно. Вот что я нашел по этому поводу Предостережение: При резервировании файловых систем НЕ резервируйте псевдосистему `` /proc''! Файлы в /proc не настоящие, а только указатели на структуры данных ядра. Резервирование файлов типа ``/proc/kcore'', который является псевдофайлом, с содержанием всей памяти, является довольно большой и бессмысленной тратой ленты. Также не стоит резервировать файлы в ``/mnt'', поскольку там находятся файлы на CD-ROM, дискетах, сетевых дисках и других смонтированных внешних носителях. Сюда же наверно надо отнести и var/spool/squid если есть squid. Здесь вообщем то вопрос к гуру интересует минимальный набор директорий для востановления системы . То есть если принято волевое решение что лишнего места нет и простой в пару тройку часов не критичен при установке сервера с нуля но хочется потом не вспоминать какие там были опции в том или ином конфиге там и что то где то мы еще добавляли в каком не помню месте, что нужно бекапить кроме /etc что бы вернуть в строи допустим стандартные сервисы DHCPD DNS FTP и тд. Хочется добавить что если речь идет о workststion то может быть и вполне достаточно сделать backup директории /home то для сервера может быть совсем не лишнем сделать имидж диска полностью с помощью таких програм как ghost, acronis http://www.desktop-linux.net/backups.htm или бесплатных под линукс Partimage http://www.partimage.org/ , Mondo Rescue http://www.mondorescue.org/ http://www.chem.vu.nl/~stol/Mondo-Rescue-Mindi-Linux-HOWTO.pdf , Ghost for Linux http://freshmeat.net/projects/g4. Ну продолжим и так нам нужно создать архив с определенными диреториями и перекинуть это по сети на выделенный сервер назовем его backup server, в определенную директорию . Я создал ее в /var/ftp/pub/backup и несколько подпапок по имени компьютеров чтоб в дальнеишем не запутаться. ( Почему там, ну во первых доступ по фтп нам не помешает во вторых если у вас есть диск выделенный под backup вы можете смонтировать его под эту папку что имхо тоже не плохая мысль) Не забудьте на папку backup дать разрешения тому юзеру под которам вы будете производить backup. Из под рута $ chown username backup И уже из под этого юзера создать подпапки по именам компьютеров. При переброске фаилов по сети мы будем использовать SSH . Но здесь есть одна проблемка при поключение по ssh к другому компу он требует аутентификацию что никак не входит в наши планы. Значит нам нужно сгенерировать паблик кеу и перенести его backup server чтоб он нам доверял и не спрашивал пароль . Делается это довольно просто из под юзера который будет производить backup даите команду $ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/andreys/.ssh/id_rsa): ( здесь нажмите Enter - что вы согласны) Enter passphrase (empty for no passphrase) ничего не пишите просто Enter) Enter same passphrase again: ( ничего не пишите просто Enter) Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: a6:84:5d:a6:cd:ff:31:48:21:85:ca:46:93:88:7a:50 xxx@localmachine все ключ создан можете проверить в домашней директории в скрытой папке ~/.ssh -rw------- 1 xxxxxx xxxxx 883 Feb 26 14:10 id_rsa -rw-r--r-- 1 xxxxx xxxxxx 238 Feb 26 14:10 id_rsa.pub Дальше нам его надо скопировать на backup server не забудьте что там нужно создать перед этим такого же юзера и в его директории создать папку ~/.ssh - на локальной машине даем команду ssh remotemachine “mkdir .ssh; chmod 600 .ssh” Дальше нам осталось скопировать публик кей на backup server $ scp ~/.ssh/id_rsa.pub remotemachine:.ssh/authorized_keys2 у вас спросят пассворд юзера введите. Все теперь нам осталось проверить пускает ли нас backup server по ssh без пассворда : $ssh 192.168.1.252 backup_server$ _ вы должны попасть на сервер без пароля . Материал брался отсюда http://madpenguin.org/Article1505.html Теперь уже непосредственно работа с tar Здесь каждый должен выбрать наиболее ему подходящую политику backup, вариантов много и каждый наверное должен выбрать что то оптимальное для себя - что это значит. Очень трудно дать какие то 100% решения когда речь идет о небольших сетях с соответсвенным бюджетом . Для средних и больших сетей давно выработанны стандартные решения для небольших сетей они могут совсем не подходить . по этому я буду стараться давать несколько общих решений. Попробую описать на своем примере . Например есть несколько компьютеров работаюшие на них юзеры сохраняют свои фаилы-документы в папке ,, docs ,, в конце дня нам нужно взять эту папку заархивировать с помощью tar в фаил docs.tar и переместить на ,,backup server,, в папку backup и подпапку по имени станции, вот пример команды tar -cpf /var/ftp/pub/andreys/backup/docs.tar /var/ftp/pub/andreys/backup/docs;cat /var/ftp/pub/andreys/backup/docs.tar |ssh 192.168.1.252 "cd /var/ftp/pub/backup/fragile; cat > docs.tar" Даваите разберем по порядку 1. tar -cpf /var/ftp/pub/andreys/backup/docs.tar ( здесь я задаю команду создать архив -сpf c сохранением всех permissions в определенной диретории (она может быть в любом месте) и с именем docs.tar 2. /var/ftp/pub/andreys/backup/docs ( путь к папке которую архивируем ) 3. ;cat /var/ftp/pub/andreys/backup/docs.tar ( команда вырезать docs.tar) 4. |ssh 192.168.1.252 "cd /var/ftp/pub/backup/fragile ( подключится с ssh к серверу и переити в папку backup и подпапку по имени workstation -- ,, именно для этого мы создавали публик кей -незабудьте что его надо создать для каждого конкретног юзера на каждом компьютере ) 5. ; cat > docs.tar" ( вставить папку ) Для тех кто хочет оставить себе на компе дополнителный архив может сделать так tar -cpf /var/ftp/pub/andreys/backup/docs.tar /var/ftp/pub/andreys/backup/docs а затем с помощью команды ,,scp,, перенести его на сервер . scp /var/ftp/pub/andreys/backup/docs.tar 192.168.1.252:/var/ftp/pub/backup/fragile/docs.tar Все это можно записать в скрипт и поместить в cron пример скрипта в редакторе vi $vi backup.sh #!/bin/bash # скрипт бакупа моей папки docs tar -cpf /var/ftp/pub/andreys/backup/docs.tar /var/ftp/pub/andreys/backup/docs;cat /var/ftp/pub/andreys/backup/docs.tar |ssh 192.168.1.252 "cd /var/ftp/pub/backup/fragile; cat > docs.tar" или так #!/bin/bash # архивирование папки docs tar -cpf /var/ftp/pub/andreys/backup/docs.tar /var/ftp/pub/andreys/backup/docs #перенос ее на сервер scp /var/ftp/pub/andreys/backup/docs.tar 192.168.1.252:/var/ftp/pub/backup/fragile/docs.tar Затем поместите фаил backup.sh в cron $crontab -e 0 2 * * * /xxx/xxx/backup.sh ( каждую ночь в два часа будет выполняться скрипт и соответственно ваш бакуп) И так каждую ночь будет выполняться бакуп и ваш фаил на сервере будет переписываться более новой копией. Кого не устраивает одна копия и он хочет иметь несколько предыдущих копий на случай отката можно делать копии по дням недели наример имя фаила +день недели. $tar -cpf /var/ftp/pub/andreys/backup/docs`date '+%A'`.tar /var/ftp/pub/andreys/backup/docs;cat /var/ftp/pub/andreys/backup/docs`date '+%A'`.tar |ssh 192.168.1.252 "cd /var/ftp/pub/backup/fragile; cat > docs`date '+%A'`.tar";rm /var/ftp/pub/andreys/backup/docs`date '+%A'`.tar таким образом у вас на сервере будет храниться все время 7 копии по дням недели. Я очень надеюсь что я достаточно понятно описал принцип одного из вариантов архивирования на удаленный сервер . Дальше все зависит от ваших нужд и возможностей и фатазии. Что хочется добавить - или вернее спросить совета у гуру . Если нам нужно создать backup системы - ситемных папок сервера или станции то здесь наверное будет единственное решение делать это из под рута или все таки есть другое решение например создать юзера например ,,backup, и поместить его в группу администраторов (или что то подобное) и из под него делать backup системы или вообще весь бакуп на станции, Дальше мы попробуем разобраться с backup уже на самом сервере . Ну что ж будем считать что что ежедневно у нас происходит архивирование на стакциях и все это сваливается на сервер в директорию backup . Теперь надо продумать организацию backup на самом сервере . Если обьем архивированных данных достаточно большой ну скажем от 1 gb до 4 , и этот обьем может со временем увеличиться - то может имеет смысл задуматься о приобретении tape backup .( Я не буду здесь давать какие то рекомендации по выбору tape backup - потому что у меня нет такой информации но если она у вас есть то можете написать с учетом что речь идет о небольшой сети и с краткой характеристикой возможно что это кому то поможет ) Если кого интересует у меня для опытов взят старенький Tanderberg 4/8 gb slr5 ( опять же ничего конкретного про него не могу сказать -хм вроде работает ) По этому я буду описывать архивирование на tape backup. Если кто то напишет как он это делает на CD-RW. C удовольствием дополню . И так у нас есть несколько возможностей 1. просто ежедневно делать полную копию на tape backup вот комманда $tar -cvpf /dev/st0 --label="Backup set created on `date '+%d-%B-%Y'`." /var/ftp/pub/backup/fragile естественно из под рута потому что только у него есть пермишен на деваис /dev/st0 - зто tape backup (scasi) Дальше есть просто очень толковая статья по этому материалу и получится что я просто переказываю оригинал , поэтому я все таки скопирую часть относящуюся к нашей теме (надеюсь авторы не обидяться ) вот линк на полную статью http://www.mgul.ac.ru/~t-alex/Linux/optimization/ch22_1.html Обязательно советую прочесть так как там описывается не только работа с утилитой tar. Простая схема резервного копирования Когда вы решили создавать резервные копии ваших файлов, вы должны выбрать схему резервного копирования до начала этой процедуры. Существует множество схем резервного копирования, зависящих от политики резервного копирования, которую вы хотите использовать. В дальнейшем, я покажу вам одну из схем, которую вы можете использовать, которая использует преимущественно возможности программы tar. Эта схема выглядит так: сперва копировать все, что возможно, а в дальнейшем все, что изменилось со времени создания последней резервной копии. Первая резервная копия называется полной, а остальные добавочными. Создание резервных копий с tar С шестью лентами вы можете делать резервные копии каждый день; процедура использует ленту 1 для полного резервного копирования (Пятница 1), и ленты со 2 по 5 для добавочного резервного копирования (С понедельника по четверг). Затем, мы делаем новую полную резервную копию на ленту 6 (вторая пятница), и далее делаем добавочные копии на лентах со 2 по 5. Важно сохранить 1 в неприкосновенности, пока мы не получим полную резервную копию на ленте 6. В следующем примере, мы подразумеваем, что записываем резервные копии на SCSI ленточное устройство с именем (/dev/st0), и создаем резервную копию домашнего каталога (/home) нашей системы. Первое, мы должны переместиться в корневой раздел. Когда ⌠tar■ создает архивные файлы, он удаляет начальный символ ⌠/■ (слеш) из пути к файлу. Это значит, что после восстановления файлы могут оказаться не на своем месте. Чтобы решить эту проблему, необходимо до изготовления резервных копий и восстановления данных переходить в корневой раздел вашей файловой системы. Переместитесь в корневой раздел: [root@deep]# cd / Важно всегда начинать с изготовления полной резервной копии, например, в пятницу: * Пятница 1, (используйте ленту 1 для первой полной резервной копии). [root@deep /]# cd / [root@deep /]# tar cpf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home * Понедельник, (используется лента 2 для добавочной резервной копии). [root@deep /]# cd / [root@deep /]# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home * Вторник, (используется лента 3 для добавочной резервной копии). [root@deep /]# cd / [root@deep /]# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home * Среда, (используется лента 4 для добавочной резервной копии). [root@deep /]# cd / [root@deep /]# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home * Четверг, (используется лента 5 для добавочной резервной копии). [root@deep /]# cd / [root@deep /]# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home * Пятница 2, (используется лента 6 для полной резервной копии). [root@deep /]# cd / [root@deep /]# tar cpf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home Далее, делаем добавочные резервные копии на лентах со 2 по 5 и так далее. Опция ⌠c■ определяет, что мы создаем архивный файл. Опция ⌠p■ сохраняет права доступ. Опция ⌠N■ делает добавочную резервную копию и запоминает файлы новее чем DATE. Опция ⌠f■ говорит, что следующий аргумент будет либо имя архивного файла, либо имя устройства на которое производится запись. Объясним как мы получили имя файла, который содержит текущую дату: просто поместите команду ⌠date■ между обратными кавычками. К основному имени добавляется суффикс ⌠tar■ для не сжатых архивов, и суффикс ⌠tar.gz■ для сжатых. Так как мы не определяем конкретное имя для файла резервной копии, то воспользуемся опцией "--label", которая позволяет записать некоторую информацию в архивный файл. В заключении мы определяем, что только файлы из каталога "/home" будут записаны на ленту. Так как лента это устройство посимвольного ввода, мы не можем определить имя файла. Поэтому, в качестве аргумента для опции ⌠имя файла■ программы tar используется просто имя устройства, "/dev/st0". Устройство ⌠/dev/st0" не перематывается после создания резервной копии; поэтому, мы имеем возможность записать на одну ленту несколько сессий. Вы можете, также сказать устройству ⌠/dev/st0■, автоматически перемотать ленту после окончания записи резервной копии. При работы с лентой, вы можете использовать следующие команды для перематывания и извлечения ленты из устройства: [root@deep /]# mt -f /dev/st0 rewind [root@deep /]# mt -f /dev/st0 offline и например если вы хотите отчистить касету то используйте команду erase [root@deep /]# mt -f /dev/st0 erase если снова хотите подключить [root@deep /]# mt -f /dev/st0 load ПРЕДОСТЕРЕЖЕНИЕ. Для уменьшения пространства занимаемого tar архивом, резервная копия может быть сжата при помощи опции ⌠z■ программы tar. К сожалению, использование этой опции может создать ряд проблем. Из природы работы сжатия следует, что если хотя бы один бит будет испорчен, то и все данные нужные для восстановления будут потеряны. Поэтому рекомендуется не использовать сжатие (опция ⌠z■) для создания резервной копии при помощи команды tar. Если ваша резервная копия не помещается на ленте, то вам надо использовать опцию --multi-volume (-M) для создания многотомных архивов: [root@deep /]# cd / [root@deep /]# tar cMpf /dev/st0 /home Prepare volume #2 for /dev/st0 and hit return: После того, как вы создали резервную копию, вы должны убедиться, что все OK, используя опцию --compare (-d): [root@deep /]# cd / [root@deep /]# tar dvf /dev/st0 Для резервного копирования всей системы используйте следующую команду: [root@deep /]# cd / [root@deep /]# tar cpf /archive/full-backup-`date '+%d-%B-%Y'`.tar \ --directory / --exclude=proc --exclude=mnt --exclude=archive \ --exclude=cache --exclude=*/lost+found . Опция ■--directory■ говорит tar, что до начала резервного копирования надо перейти в следующий каталог (в нашем примере ⌠/■). Опция ⌠--exclude■ говорит tar не создавать резервные копии заданных каталогов и файлов. Символ ⌠.■, находящийся в конце командной строки говорит tar, что он должен копировать все в текущем каталоге. ПРЕДУПРЕЖДЕНИЕ. Когда вы создаете резервную копию вашей системы, не включайте в нее псевдофайловую систему "/proc"! Файлы "/proc" не настояшие файлы, это просто файлоподобные ссылки к структуре ядра. Также не включайте каталоги ⌠/mnt■, ⌠/archive■ и все ⌠lost+found■. Автоматизация задачи резервного копирования при помощи tar Всегда интересно автоматизировать задачу резервного копирования. Автоматизация предлагает огромные возможности использования вашего Linux сервере для целей, которые вы поставили. Следующий пример, представляет из себя скрипт для резервного копирования, называемый ⌠backup.cron■. Этот скрипт написан для запуска на любом компьютере, при этом, вы должны поменять только четыре переменные: COMPUTER, DIRECTORIES, BACKUPDIR и TIMEDIR. Мы считаем, что вы устанавливаете этот сценарий для запуска его в начале месяца для получения полной резервной копии, а затем используете его в течении месяца для получения добавочных копий. В нашем примере, мы создаем резервную копию в каталоге на локальном сервере (BACKUPDIR), но вы можете изменить это для использования ленты на локальном сервере или смонтированной файловой системы NFS. Шаг 1 Создайте скрипт резервного копирования backup.cron (touch /etc/cron.daily/backup.cron) и добавьте в него следующие строки: #!/bin/sh # скрипт полного и добавочного резервного копирования # создан 07 февраля 2000 # Базируется на скрипте Daniel O'Callaghan <danny@freebsd.org> # и модифицирован Gerhard Mourani <gmourani@videotron.ca> # Измените следующие пять переменных под вашу систему COMPUTER=deep # имя этого компьютера DIRECTORIES="/home" # каталог для резервного копирования BACKUPDIR=/backups # где храним резервные копии TIMEDIR=/backups/last-full # где сохраняем время полной резервной копи TAR=/bin/tar # имя и расположение tar #Вы не должны менять то, что написано ниже PATH=/usr/local/bin:/usr/bin:/bin DOW=`date +%a` # День недели, например Mon DOM=`date +%d` # Дата, например 27 DM=`date +%d%b` # Дата и месяц, например 27Sep # 1-го числа каждого месяца постоянно делаем полную резервную копию # Каждое воскресенье делаем полную копию √ переписываем копию от # последнего воскресенья # В остальное время делаем добавочную резервную копию. Каждая добавочная # резервная копия переписывает добавочную копию с предыдущей недели, с # тем же именем. # # если NEWER = "", тогда tar создает резервные копии всех файлов в каталог, # иначе только новее чем дата в NEWER. NEWER берет дату из файла # записываемого каждое воскресенье. # Ежемесячная полная резервная копия if [ $DOM = "01" ]; then NEWER="" $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DM.tar $DIRECTORIES fi # Еженедельная полная резервная копия if [ $DOW = "Sun" ]; then NEWER="" NOW=`date +%d-%b` # Обновление даты еженедельной полной резервной копии echo $NOW > $TIMEDIR/$COMPUTER-full-date $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES # Создание добавочной резервной копии √ переписывание аналогичной с # последней недели else # Берем дату последней полной резервной копии NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`" $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES fi Здесь приводится список файлов созданных после недели работы данного скрипта: [root@deep /]# ls -l /backups/ total 22217 -rw-r--r-- 1 root root 10731288 Feb 7 11:24 deep-01Feb.tar -rw-r--r-- 1 root root 6879 Feb 7 11:24 deep-Fri.tar -rw-r--r-- 1 root root 2831 Feb 7 11:24 deep-Mon.tar -rw-r--r-- 1 root root 7924 Feb 7 11:25 deep-Sat.tar -rw-r--r-- 1 root root 11923013 Feb 7 11:24 deep-Sun.tar -rw-r--r-- 1 root root 5643 Feb 7 11:25 deep-Thu.tar -rw-r--r-- 1 root root 3152 Feb 7 11:25 deep-Tue.tar -rw-r--r-- 1 root root 4567 Feb 7 11:25 deep-Wed.tar drwxr-xr-x 2 root root 1024 Feb 7 11:20 last-full ЗАМЕЧАНИЕ. Каталог в котором вы планируете хранить резервные копии (BACKUPDIR) и каталог , где запоминаете время (TIMEDIR) должны быть созданы до запуска этого скрипта, иначе вы получите сообщение об ошибке. Шаг 2 Если вы не запустили этот скрипт вначале месяца (1 день месяца), добавочным резервным копиям для корректной работы будет нужно время полной воскресной резервной копии. Если вы запускаете скрипт в середине недели, вам нужно создать файл со временем в TIMEDIR. Для этого выполните следующую команду: [root@deep /]# date +%d%b > /backups/last-full/myserver-full-date где </backups/last-full> ваша переменная TIMEDIR, описывающая место хранения даты последней полной резервной копии, а <myserver-full-date> - это имя вашего сервера (например, deep); наш файл времени состоит из одной строки содержащей дату (например 15-Feb). Шаг 3 Сделайте скрипт исполняемым и измените права доступа к нему (755). [root@deep /]# chmod 755 /etc/cron.daily/backup.cron ЗАМЕЧАНИЕ. Так как этот скрипт расположен в каталоге ⌠/etc/cron.daily■, он будет автоматически выполняться в час ночи каждый день. Восстановление файлов с tar Более важным, чем выполнение регулярных резервных копий, является их доступность в момент, когда надо восстановить информацию! Здесь мы рассмотрим методы восстановления файлов, которые были скопированы командой ⌠tar■. Следующая команда будет восстанавливать все файлы из архива ⌠full-backup- Day-Month-Year.tar■, который является примером резервной копии нашего каталога ⌠home■ и был создан в нашем примере описанном выше. Для восстановления полной резервной копии каталога ⌠home■ используйте следующую команду: [root@deep /]# cd / [root@deep /]# tar xpf /dev/st0/full-backup-Day-Month-Year.tar Вышеприведенная команда извлекает все файлы, содержащиеся в архиве, сохраняя оригинальные значения владельцев файлов и прав доступа к ним. Опция ⌠x■ обозначает извлечение файлов. Опция ⌠p■ сохраняет права доступа. Опция ⌠f■ указывает на то, что следующим аргументом является имя архива или устройства. Если вам не надо извлекать все файлы и каталоги из архива, вы можете указать, что вам нужно. Для задания одного или более файлов, которые вы хотите извлечь из архива используйте следующую команду: [root@deep]# cd / [root@deep]# tar xpf /dev/st0/full-backup-Day-Month-Year.tar \ home/wahib/Personal/Contents.doc home/quota.user Вышеприведенная команда извлекает файлы ⌠/home/wahib/Personal/Contents.doc■ и ⌠/home/quota.user■ из архива. Если вы хотите посмотреть, какие файлы находятся в архиве, то используйте опцию --list (-t): [root@deep /]# tar tf /dev/st0 ПРЕДУПРЕЖДЕНИЕ. Если вы имеете в своей системе файлы с установленным битом ⌠постоянства■, то используйте команду ⌠chattr +i■, так как этот бит не сохраняется при резервном копировании при помощи команды tar. Тестирование возможности восстановления из резервных копий Для многих системных администраторов, восстановление файлов из резервной копии редкое действие. Периодическое выполнение проверки возможности восстановления файлов из резервных копий поможет вам выявить проблемы с процедурами резервного копирования, чтобы вы могли скорректировать их до того, как потеряете данные. Некоторое программное обеспечение восстановления файлов некорректно восстанавливает права доступа и владельца файлов. Проверьте атрибуты восстановленных файлов, чтобы они были установлены правильно. Периодически тестируйте возможность полного восстановления системы из ваших резервных копий Ну вот наверное и все про backup в пределах этой темы может немного сумбурно но надеюсь кому то это поможет. Приветствуется замечания критика и дополнения из личного опыта | Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 20:30 26-02-2005 | Исправлено: Borgia, 23:47 02-03-2005 |
|