Итак, начнем. Как бы то не было странно, но все необходимое наверняка уже есть в системе и ничего дополнительного устанавливать не придется.
Способ первый - dd
Простой бэкап целого диска (не важно винчестер это или flash или cd) можно сделать при помощи не менее простой команды dd. Эта команда может быть очень полезна, если в качестве винчетсера на станке используется usb flash или CF с CF-IDE переходником. Для создания образа нам нужно знать адрес устройства.Винчетсеры и flash обычно называются /dev/sd[буква]цифра. Буква - номер физического устройства - винчестер 1, винчестер 2 и т.д. Цифра - номер логического раздела.
Пользоваться dd проще простого dd if=<откуда> of=<куда>, if - input file, of - output file. of может быть любым, другим устройством, файлом на диске, местом в памяти.
Минусы
- если файловая система содержит ошибки, после восстановления из такого бэкапа вы получите ФС с теми же ошибками
- для распаковки такого бэкапа потребуется раздел объемом не меньше исходного, вне зависимости от количества занятого места на разделе
- копируется все содержимое раздела, будь то ваши файлы или просто свободное место, что сказывается на скорости
- необходимость дополнительных манипуляций при распаковке на раздел большего размера
- нестандартный сопособ получения информации о процессе работы утилиты
Плюсы
- Можно быстро делать копию рабочей flash или сделать ее дубликат.
Код: Выделить всё
dd if=/dev/sdb1 of=/dev/sdc1Главное не перепутать if и of
Способ второй - rsync
rsync это очень мощный инструмент для синхронизации файлов и директорий. В простом случае он сравнивает источник и целевой директорий и дополняет целевой директорий изменившимися файлами. Поэтому rsync очень удобен для создания автоматических бэкапов.Для того, чтобы сделать полный бэкап системы нужно сделать копию всех файлов, кроме временных каталогов и системных ресурсов (/dev /proc ...)
Делаем бэкап системы:
Код: Выделить всё
backup="/backup" # место бэкапа
rsync -a /bin /boot /etc /home /lib /opt /root /sbin /usr /var $backupПример:
Код: Выделить всё
# m h dom mon dow command
30 17 * * 5 sh /etc/backup.sh
h - часы (17)
dom = day of month (1-31 стоит любой)
mon = month (1-12 стоит любой)
dow = день недели (0-7 0 и 7 воскресенье, стоит пятница)
Таким образом скрипт будет срабатывать каждую пятницу в 17:30.
Так же при помощи rsync и cp можно настроить ротацию backup с сохранением нескольких последних копий. При этом копии будут занимать совсем мало места, т.к. мы будем хранить только изменившиеся файлы.
Не вдаваясь в подробности ротация вместе с самим бэкапом делается так:
Код: Выделить всё
backup="/backup" # место бэкапа
# удаляем последний архив
rm -rf $backup/backup.4
# делаем ротацию
mv $backup/backup.3 $backup/backup.4
mv $backup/backup.2 $backup/backup.3
mv $backup/backup.1 $backup/backup.2
# копируем самую новую копию в виде жестких ссылок
cp -al $backup/backup $backup/backup.1
# делаем бэкап
rsync -a /bin /boot /etc /home /lib /opt /root /sbin /usr /var $backup/backup 
