Ubuntu server резервное копирование.
Как только создаем сервер который выполняет важные функции встает задача о сохранении данных. Сейчас много написано программ платных и бесплатных. Рассмотрим самый простой и на мой взгляд удобный для копирование файлов при помощи архивировании tar
Резервировать будем каталог /home на отдельный жесткий диск который примонтирован к каталогу /mnt в папку backup
Создаем исполняемый файл
#!/bin/sh
backup_files="/home"
bdir="/mnt/backup"
day=$(date +%A)
archive_file="home-$day.tgz"
echo "Backing up $backup_files to $bdir/$archive_file"
date
echo
tar czf $bdir/$archive_file $backup_files
echo
echo "Backup finished"
date
Рассмотрим что здесь
backup_files – файлы каталог который резервируем
bdir – каталог где будут храниться копии
day – текущая дата
archive_file – название архивного файла
tar czf – команда архивирования.
Если теперь запустить наш скрипт в /mnt /backup появиться архив.
Но нам необходимо чтоб это все работало в автоматическом режиме и в определенные дни. Для этого мы используем утилиту cron которая позволяет автоматизировать выполнения сценарий.
Для добавления или изменения записей в файле crontab используется команда crontab -e. Кроме того, содержимое файла crontab можно просмотреть с помощью команды crontab -l.
# m h dom mon dow command
0 0 * * 6 bash /mnt/backup.chl/backup.sh
Рассмотрим что здесь:
m: минуты запуска команды, от 0 до 59.
h: час запуска команды, от 0 до 23.
dom: день месяца для выполнения команды.
mon: месяц даты выполнения команды.
dow: день недели для выполнения команды, от 0 до 7. Воскресенье может быть обозначено как 0 так и 7, оба значения допустимы.
В примере показано что резервирование будет в 0 часов 0 минут с субботы на воскресенья.
Теперь ваши данные будут храниться на отдельном диске и если в случае выхода из строя сервера, вы с легкостью восстановите данные.