Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
serverguide-precise-ru.pdf
Скачиваний:
77
Добавлен:
03.05.2015
Размер:
1.86 Mб
Скачать

Резервное копирование

1. Сценарии Shell

Один из простейших вариантов резервного копирования системы — использование shell script. Например, сценарий может быть использован для настройки, какие каталоги требуют резервного копирования, и для передачи этих каталогов в качестве аргументов утилите tar, которая создаёт архивные файлы. Архивный файл может быть затем перемещён или скопирован в другое место. Архив также может быть создан на удалённой файловой системе, такой как NFS.

Утилита tar создаёт один архивный файл из множества файлов и каталогов.tar может также пропускать файлы через утилиты сжатия, уменьшая таким образом размер архивного файла.

1.1. Простой Shell сценарий

Следующий shell сценарий использует tar для создания архивного файла на удалённо смонтированной файловой системе. Имя архива определяется с помощью дополнительных утилит командной строки.

#!/bin/sh

####################################

#

#Backup to NFS mount script.

####################################

#What to backup.

backup_files="/home /var/spool/mail /etc /root /boot /opt"

#Where to backup to. dest="/mnt/backup"

#Create archive filename. day=$(date +%A) hostname=$(hostname -s) archive_file="$hostname-$day.tgz"

#Print start status message.

echo "Backing up $backup_files to $dest/$archive_file" date

echo

# Backup the files using tar.

tar czf $dest/$archive_file $backup_files

# Print end status message. echo

342

Резервное копирование

echo "Backup finished" date

# Long listing of files in $dest to check file sizes. ls -lh $dest

$backup_files: переменная для перечисления, какие каталоги вы желаете сохранять. Список может быть изменён под ваши требования.

$day: переменная, содержащая день недели. Она используется для создания архивных файлов на каждый день недели, обеспечивая историю резервного копирования на семь дней. Существуют иные способы получения такого результата, включая использование утилиты date.

$hostname: переменная, содержащая короткое имя системы. Использование сетевого имени в имени архива позволяет вам помещать ежедневные архивы от разных систем в один каталог.

$archive_file: полное имя архива.

$dest: место расположения архивного файла. Каталог должен быть создан и в данном случае смонтирован до выполнения сценария резервного копирования. Смотрите раздел Раздел 2, «Сетевая файловая система (NFS)» [261] для уточнения деталей использования NFS.

status messages: необязательные сообщения, выводимые в консоль с использованием утилиты echo.

tar czf $dest/$archive_file $backup_files: команда tar, используемая для создания архивного файла.

c: создание архива.

z: пропускание архива через утилиту сжатия gzip.

f: вывод в архивный файл. В противном случае tar будет посылать результат в STDOUT.

ls -lh $dest: необязательный оператор, выводящий -l длинный вариант списка в -h читаемом виде целевого каталога. Это удобно для быстрой проверки размера архивного файла. Эта проверка не заменяет тестирования целостности архивного файла.

Это простой пример сценария резервного копирования, однако есть много опций, которые можно включить в такой сценарий. Смотрите Раздел 1.4, «Ссылки» [346] для указаний на ресурсы, предоставляющие более глубокое описание shell сценариев.

343

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]