User Tools

Site Tools


резервное_копирование_и_восстановление

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
резервное_копирование_и_восстановление [2011/02/22 11:19]
val
— (current)
Line 1: Line 1:
-====== Резервное копирование и восстановление ====== 
- 
-===== Резервное копирование и восстановление файлов (cpio) ===== 
- 
-==== Создание архива ==== 
-<​code>​ 
-# cd /etc; find etc/ -name '​*,​v'​ | sed -e '​s/​RCS\///'​ -e '​s/,​v//'​ | cpio -o | bzip2 -c > etc.cpio.bz2 
-</​code>​ 
- 
-==== Просмотр содержимого архива ==== 
-<​code>​ 
-# bzcat etc.cpio.bz2 | cpio -t 
-</​code>​ 
- 
-==== Распаковка отдельных файлов/​каталогов архива ==== 
-<​code>​ 
- 
-</​code>​ 
- 
-==== Распаковка всего архива ==== 
-<​code>​ 
-# cd /tmp; bzcat /​etc.cpio.bz2 | cpio -id 
-</​code>​ 
- 
-==== Сценарий:​ бекап фотографий из Apple iPhoto ==== 
-<​code>​ 
-[~ ] $ cat Pictures/​backup/​backup.sh ​ 
-#!/bin/sh 
- 
-# Archive size 
-# export as=734003200 #CD 
-# export as=700000000 #CD 
-# export as=4831838208 #DVD 
-export as=8500000000 #DVDRDL 
- 
-# Backup list file name 
-export bf=backup/​backup`date "​+%Y-%m-%d_%H-%M-%S"​`_${as}.txt 
- 
-export IFS=""​ 
- 
-cd ~/Pictures 
-[ -e backup/​full.txt ] && rm backup/​full.txt 
-mkfifo backup/​full.txt 
- 
-find iPhoto\ Library -type f -exec ls -l {} \; > backup/​full.txt & 
- 
-cat backup/​backup*.txt | fgrep -v -f - backup/​full.txt |  
-( 
-        s=0 
-        while read f 
-        do 
-                echo $f >> $bf 
-                s=$(($s+`echo "​$f"​ | awk '​{print $5}'​`)) 
-                test $s -gt $as && break  
-        done 
-        test $s -gt $as && { 
-                echo "​Success create list for archive"​ 
-                echo "File name: $bf" 
-                echo "​Archive size: $s" 
-                sed '​s/​.*\(iPhoto Library.*\)/​\1/'​ ${bf} | cpio -o > ${bf}.cpio 
-        } || { 
-                echo "No enought files for archive"​ 
-                echo "Need $as exists $s" 
-                rm $bf 
-        } 
-) 
-[ -e backup/​full.txt ] && rm backup/​full.txt 
-</​code>​ 
- 
-===== Резервное копирование и восстановление каталогов (tar) ===== 
- 
-==== Создание архива ==== 
-<​code>​ 
-# cd /; tar -c -v -f /​mnt/​user_dirs.tar --exclude home/user2 root/ home/ 
-</​code>​ 
-==== Просмотр содержимого архива ==== 
-<​code>​ 
-# tar -t -f user_dirs.tar 
-</​code>​ 
-==== Распаковка отдельных файлов/​каталогов архива ==== 
-<​code>​ 
-# cd /tmp 
- 
-# tar -xf user_dirs.tar root/​.bashrc 
-# tar -xOf user_dirs.tar root/​.bashrc ​ #​вывести на экран (STDOUT) 
-# tar -xf user_dirs.tar root/ 
-# tar -xf user_dirs.tar '​*bash*'​ 
-</​code>​ 
- 
-==== Распаковка всего архива ==== 
-<​code>​ 
-# cd /; tar -x -v -f user_dirs.tar 
-</​code>​ 
- 
-==== Управление сжатием архива ==== 
-<​code>​ 
--z - использовать gzip сжатие 
--j - использовать bzip2 сжатие 
-</​code>​ 
- 
-==== Сценарий 1: архивирование каталогов с файлами конфигураций с использованием rsh/ssh ==== 
-<​code>​ 
-# cat /​root/​backup_conf.sh 
-#!/bin/sh 
-echo Backup conf 
- 
-CMD="/​bin/​tar"​ 
-# CMD="/​usr/​bin/​tar"​ 
- 
-RCMD="​ssh userX@backup"​ 
-# RCMD="​rsh -l userX backup"​ 
- 
-DIRS="​etc/​ var/​cache/​bind/"​ 
-# DIRS="​etc/​ usr/​local/​etc/​ var/​named/​etc/​namedb"​ 
- 
-cd /; $CMD -cjf - $DIRS | $RCMD "cat > `hostname`backup_conf.`date '​+%Y%m%d'​`.tbz"​ 
-</​code><​code>​ 
-# chmod +x /​root/​backup_conf.sh 
-</​code>​ 
- 
-==== Сценарий 2: архивирование репозитория APT с разбиением на файлы размером не более 2GB ==== 
-<​code>​ 
-# tar -cvf - apt-mirror/ | ssh root@backup.corpX.un "cd /​mnt/​rep1004;​ split -b 2GB - apt-mirror.tar."​ 
-</​code>​ 
- 
-===== Резервное копирование и восстановление данных разделов (dump/​restore) ===== 
- 
-==== Бекап раздела ==== 
-<​code>​ 
-# dump 0 -aLf /​mnt/​home.dmp /home 
-</​code>​ 
- 
-==== Восстановление отдельного каталога/​файла ==== 
-<​code>​ 
-# cd /tmp 
- 
-# restore -xf /​mnt/​home.dmp /​home/​user1/​ 
-... 
-Specify next volume #: 1 
-set owner/mode for '​.'?​ [yn] y 
- 
-# ls /​tmp/​home/​user1/​ 
- 
-# restore -if /​mnt/​home.dmp 
-restore > cd home 
-restore > add user1 
-restore > extract 
-... 
-Specify next volume #: 1 
-set owner/mode for '​.'?​ [yn] y 
-restore > quit 
- 
-# ls /tmp/home/ 
-</​code>​ 
- 
-==== Восстановление всего раздела ==== 
-<​code>​ 
-# cd /home 
- 
-# restore -rf /​mnt/​home.dmp 
-</​code>​ 
- 
-===== Сценарий:​ резервное копирование и восстановление операционной системы FreeBSD ===== 
- 
-==== Планирование ==== 
-<​code>​ 
-part    mount   ​util ​     file        size 
- 
-a /​ dump ​     root.dmp ​   138Mb 
-d /​var/​ dump ​     var.dmp ​    34Mb 
-e /​usr/​ tar ​      ​usr.tgz ​    230Mb (без /usr/ports) 
-</​code>​ 
- 
-==== Резервное копирование ==== 
-<​code>​ 
-[hostX:~] # rsh -l uX gZ "touch root.dmp"​ 
-[hostX:~] # dump 0 -aLf uX@gZ:​root.dmp / 
-  DUMP: Connection to gZ.class established. 
-... 
-  DUMP: DUMP IS DONE 
- 
-[hostX:~] # rsh -l uX gZ "touch var.dmp"​ 
-[hostX:~] # dump 0 -aLf uX@gZ:​var.dmp /var 
-  DUMP: Connection to gZ.class established. 
-... 
-  DUMP: DUMP IS DONE 
- 
- 
-[hostX:~] # cd /usr 
-[hostX:/​usr] # tar –czvf - --exclude ports/ . | rsh -l uX gZ "cat > usr.tgz"​ 
-</​code>​ 
- 
-==== Восстановление ==== 
- 
- 
-=== Загружаем систему с livecd === 
- 
-При использовании FreeBSD livefs диска выбираем пункты меню: 
-<​code>​ 
-"​Fixit"​ -> CDROM/DVD -> Alt-F4 
-</​code>​ 
- 
-При использовании frenzy livecd в процессе загрузки указываем опцию ​ 
-<​code>​ 
-nohdd 
-</​code>​ 
- 
-=== Настраиваем и тестируем сеть === 
- 
-<​code>​ 
-Fixit# ifconfig rl0 inet 10.10.106.X/​24 
-Fixit# ping 10.10.106.Z 
-... 
-</​code>​ 
-Добавляем упоминание сервиса rsh в файл /​etc/​services 
-<​code>​ 
-Fixit# cat >> /​etc/​services 
-shell 514/tcp 
-<​Ctrl>​-D 
-</​code>​ 
- 
-=== Создаем файловую систему на новом диске === 
- 
-Используем sysinstall вместо утилит fdisk, bootmgr, bsdlabel и newfs 
-<​code>​ 
-Fixit# sysinstall 
-  Configure 
-    Fdisk 
-      C - Create Slise 
-      S - Set Bootable 
-      W - Write changes 
-      BootMgr 
-      Quit 
-    Exit 
-  Exit Install 
- 
-Fixit# /​stand/​sysinstall 
-  Configure 
-    Label 
-      C - Create 
-        500M 
-        FS  
-        /mnt/a (will be "/"​) 
-      S - Toggle Softupdates ​ 
-      C - Create 
-        500M 
-        FS  
-        /​mnt/​b ​ 
-      C - Create 
-        3G 
-        FS  
-        /mnt/d (will be "/​usr"​) 
-      C - Create 
-        FS  
-        /mnt/e (will be "/​var"​) 
-      W - Write 
-      Q - Finish 
-    Exit 
-  Exit Install 
- 
-Fixit# mount 
-/dev/md0 on / (ufs, local) 
-devfs on /dev (devfs, local) 
-/dev/acd0 on /dist (cd9660, local, read-only) 
-/dev/ad0s2d on /mnt/a (ufs, local) 
-/dev/ad0s2e on /mnt/b (ufs, local, soft-updates) 
-/dev/ad0s2f on /mnt/d (ufs, local, soft-updates) 
-/dev/ad0s2g on /mnt/e (ufs, local, soft-updates) 
-</​code>​ 
- 
-=== Восстанавливаем файлы === 
-  
-=== / раздел === 
-<​code>​ 
-Fixit# cd /mnt/a 
-Fixit# restore -rf uX@10.10.106.Z:​root.dmp 
-</​code>​ 
- 
-При необходимости можно откорректировать востановленные файлы конфигурации 
-<​code>​ 
-Fixit# ee /​mnt/​a/​etc/​rc.conf 
- 
-Fixit# ee /​mnt/​a/​etc/​fstab 
-</​code>​ 
- 
-=== /var раздела === 
-<​code>​ 
-Fixit# cd ../e 
-Fixit# restore -rf uX@10.10.106.Z:​var.dmp 
-</​code>​ 
- 
-=== /usr раздел === 
-<​code>​ 
-Fixit# cd ../d 
- 
-Fixit# rsh -l uX 10.10.106.Z "cat usr.tgz"​ | tar -xvf – 
-</​code>​ 
- 
-=== Исправляем имена разделов === 
-<​code>​ 
-Fixit# umount /mnt/a 
-Fixit# umount /mnt/b 
-Fixit# umount /mnt/d 
-Fixit# umount /mnt/e 
- 
-Fixit# bsdlabel ad0s2 
-# /dev/ad0s2: 
-8 partitions: 
-#        size   ​offset ​   fstype ​  ​[fsize bsize bps/cpg] 
-  c: 10474317 ​       0    unused ​       0     ​0 ​        # "​raw"​ part, don't edit 
-  d:  1024000 ​       0    4.2BSD ​    2048 16384 64008  
-  e:  1024000 ​ 1024000 ​   4.2BSD ​    2048 16384 64008  
-  f:  6291456 ​ 2048000 ​   4.2BSD ​    2048 16384 28552  
-  g:  2X4861 ​ 8339456 ​   4.2BSD ​    2048 16384 28552  
- 
-Fixit# EDITOR=ee 
-</​code>​ 
- 
-Редактируем имена разделов 
-<​code>​ 
-Fixit# bsdlabel -e ad0s2 
-# /dev/ad0s2: 
-8 partitions: 
-#        size   ​offset ​   fstype ​  ​[fsize bsize bps/cpg] 
-  a:  1024000 ​       0    4.2BSD ​    2048 16384 64008  
-  b:  1024000 ​ 1024000 ​   4.2BSD ​    2048 16384 64008  
-  c: 10474317 ​       0    unused ​       0     ​0 ​        # "​raw"​ part, don't edit 
-  d:  6291456 ​ 2048000 ​   4.2BSD ​    2048 16384 28552  
-  e:  2X4861 ​ 8339456 ​   4.2BSD ​    2048 16384 28552  
-</​code>​ 
- 
-=== Восстановливаем загрузчики boot0 и boot2 === 
-<​code>​ 
-Fixit# sysinstall 
-  Configure 
-    Fdisk 
-      Set bootable 
-      Write 
-      Boot Manager 
-    Exit 
-  Exit Install 
-Reboot in new system: 
-Fixit# exit 
-</​code>​ 
  
резервное_копирование_и_восстановление.1298362756.txt.gz · Last modified: 2013/05/22 13:50 (external edit)