<Предыдущая | Содержание: | Следующая>
2.1. Вращение архивов NFS
В этом разделе сценарий оболочки будет немного изменен для реализации схемы ротации дед-отец-сын (ежемесячно-еженедельно-ежедневно):
• Вращение сделает ежедневно резервное копирование с воскресенья по пятницу.
• В субботу еженедельно резервное копирование выполняется, что дает вам четыре еженедельных резервных копии в месяц.
• ежемесячно резервное копирование выполняется в первый день месяца, при чередовании двух ежемесячных резервных копий в зависимости от того, четный или нечетный месяц.
Вот новый сценарий:
#! / Bin / Баш
####################################
#
# Резервное копирование в скрипт монтирования NFS с
# ротация дед-отец-сын.
#
####################################
# Что делать резервную копию.
backup_files = "/ home / var / spool / mail / etc / root / boot / opt"
# Куда делать резервную копию. dest = "/ mnt / backup"
# Настроить переменные для имени файла архива. день = $ (дата +% A)
hostname = $ (hostname -s)
# Найдите, какая это неделя 1–4 месяца. day_num = $ (дата +% - d)
если (($ day_num <= 7)); затем week_file = "$ hostname-week1.tgz"
elif (($ day_num> 7 && $ day_num <= 14)); затем week_file = "$ hostname-week2.tgz"
elif (($ day_num> 14 && $ day_num <= 21)); затем week_file = "$ hostname-week3.tgz"
elif (($ day_num> 21 && $ day_num <32)); затем week_file = "$ hostname-week4.tgz"
fi
# Определить, четный или нечетный месяц. month_num = $ (дата +% m)
месяц = $ (выражение $ month_num% 2), если [$ month -eq 0]; тогда
month_file = "$ hostname-month2.tgz"
еще
fi
month_file = "$ hostname-month1.tgz"
# Создать имя файла архива. если [$ day_num == 1]; затем archive_file = $ month_file
elif [$ day! = "суббота"]; затем archive_file = "$ hostname- $ day.tgz"
иначе archive_file = $ week_file
fi
# Распечатайте сообщение о состоянии запуска.
echo "Резервное копирование файлов $ backup_files в дату $ dest / $ archive_file"
эхо
# Резервное копирование файлов с помощью tar.
tar czf $ dest / $ archive_file $ backup_files
# Распечатать сообщение о завершении. эхо
echo Дата "Резервное копирование завершено"
# Длинный список файлов в $ dest для проверки размеров файлов. ls -lh $ dest /
Сценарий может быть выполнен с использованием тех же методов, что и в Раздел 1.2, «Выполнение сценария» [стр. 325].
В случае аварии рекомендуется выносить носители с резервными копиями за пределы предприятия. В примере сценария оболочки резервный носитель - это другой сервер, предоставляющий общий ресурс NFS. По всей видимости, перенос сервера NFS в другое место нецелесообразен. В зависимости от скорости соединения может быть возможность скопировать файл архива по каналу WAN на сервер в другом месте.
Другой вариант - скопировать файл архива на внешний жесткий диск, который затем можно перенести за пределы офиса. Поскольку цена на внешние жесткие диски продолжает снижаться, может быть экономически выгодно использовать два диска для каждого уровня архива. Это позволит вам подключить один внешний диск к серверу резервного копирования, а другой - в другом месте.