Чтение онлайн

ЖАНРЫ

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

13.5.3. gzip

В ОС Linux есть достаточно много различных утилит для упаковки данных. Наиболее популярной из них является gzip. Преимущество архивирования над простым копированием данных заключается в том, что результирующая копия занимает меньше места, а значит, носитель для резервирования нужен меньшего объема.

Чаще всего резервированию подлежат документы, размер которых в заархивированном виде может уменьшаться на 90%. Текстовые данные сжимаются намного лучше, чем программы.

Недостаток архивирования — возрастает нагрузка на процессор и может потребоваться больше времени на создание

полной копии.

За счет того, что архив занимает намного меньше места, его копирование на сетевые ресурсы или запись на съемные носители (ZIP, JAZ, CD-R/RW, DVD-R/RW и др.) будет производиться быстрее. В итоге может получиться, что временные затраты на архивирование (с учетом занятости процессора) будут равны времени на копирование без архивирования.

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

gzip -уровень файл.tar

В качестве ключа

– уровень
нужно указать степень компрессии. Максимальный уровень равен 9. После этого указывается имя tar-архива. Давайте сожмем архивный файл, который мы создали из директории /home, применяя наибольшую компрессию. Выполните следующую команду:

gzip -9 backup.tar

Теперь просмотрите содержимое директории (команда

ls
). Обратите внимание, что файла backup.tar больше нет. Вместо него появился backup.tar.gz, размер которого значительно уменьшился.

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

xfz
:

cd /

tar xfz /home/backup.tar.gz

Эта команда сначала разархивирует gz-файл и тут же распакует tar-архив.

Если необходимо из gz-файла снова получить tar-архив (без его распаковки), то можно выполнить команду:

gzip -d /home/backup.tar.gz

После этого вы снова можете увидеть файл backup.tar, а backup.tar.gz исчезнет.

Теперь вы готовы написать свой сценарий, который будет собирать директории для архивирования в tar-файл, а затем сжимать его, чтобы уменьшить его размер. Но зачем использовать две команды, когда можно обойтись одной. Вот как это делается:

tar cvf - /home | gzip -9с > backup.tar.gz

В данном примере мы собираем в tar-архив директорию /home и тут же сжимаем ее утилитой gzip.

Помимо gzip для архивирования иногда используется утилита compress, но ее возможности по сжатию ниже, и к тому же вокруг нее были скандалы и разбирательства по поводу лицензии. Большинство администраторов уже перешли на использование gzip, и я вам рекомендую с самого начала привыкать к этой программе.

13.5.4. dump

Все предыдущие команды, которые мы рассматривали в данной главе, не являются специализированными командами резервирования. Это просто команды копирования и архивирование файлов. Утилита dump предназначено именно для создания резервной копии файловой системы Ext2.

Для выполнения резервной копии нужно, как минимум, указать:

□ 

– n
— уровень резервной копии, который может изменяться от 0 до 9. При значении о создается полная резервная копия. Уровни выше 0 означают формирование
резервной копии изменений, произошедших с момента последней полной резервной копии или создания копии с меньшим уровнем;

□ 

– u
— требование при удачном завершении резервирования обновить файл /etc/dumpdates, в котором хранятся даты резервных копий;

□ 

– f файл
— имя файла или устройство, на которое нужно производить резервное копирование.

Итак, простейшая команда создания полной резервной копии выглядит следующим образом:

dump -0u -f /home/backup.bak

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

dump -1u -f /home/backup.bak

Для восстановления файлов из архива используется команда

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

Директиве

restore
достаточно только указать ключ
– f
и файл, который нужно восстановить. Если применить ключ
– i
, то вы попадаете в интерактивный режим, в котором можно задать файлы для восстановления. Интерактивный режим похож на командную строку, в которой можно путешествовать по архиву и выполнять следующие директивы:

□ 

help
— вывести краткую помощь по доступным командам;

□ 

ls
— отобразить содержимое текущей директории;

□ 

pwd
— показать текущую директорию;

□ 

add директория
— добавить в список для восстановления указанный в качестве аргумента каталог;

□ 

cd
— сменить текущую директорию;

□ 

add директория
— удалить из списка восстановления директорию, указанную в качестве параметра;

□ 

extract
— восстановить все файлы из списка;

□ 

quit
ВЫХОД.

13.6. Защита резервных копий

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

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

К защите резервных копий нужно подходить со всей ответственностью. Самый простой вариант — поместить их в сейф. Но лучше будет зашифровать файл перед записью резервных копий на носитель. Напоминаю, что сделать это (для примера с файлом backup.tar.gz) можно с помощью пакета OpenSSH, используя следующую команду:

/usr/bin/openssl des -in /home/backup.tar.gz -out /home/backup.sec

В ответ на это будет создан файл backup.sec. Именно его и надо записывать на носитель для долгосрочного хранения. Только не забудьте удалить потом с диска файлы backup.tar.gz и backup.sec.

Поделиться с друзьями: