Резервная копия сайта

Картинка
Обновлено: 2024-08-17 07:16:48

Не стану описывать для чего это необходимо, думаю что и так все всё понимают, хочу лишь в очередной раз упомянуть крылатую фразу:

Админы делятся на 2 типа:

  1. Кто уже делает бэкапы
  2. Кто ещё не делает бекапы

  3. ...и добавить некоторые замечания какого-то чела с хабра:
  4. Кто ещё и проверяет, что бэкапы не битые
  5. Кто, не имея бэкапов, грохает базу на проде для профилактики...=)

Погнали...

Создаём папку для бекапов, а также для временных файлов
mkdir -p /home/backup/tmp

Создаём скрипт
vim /home/backup/script.sh

Размусоливать не буду, а просто покажу содержимое скрипта, как бекапится конкретно этот сайт

Погнали

#!/bin/sh
### Полный путь до файлов сайта
SITEDIR="/var/www/"

### Временный путь, куда складывается всё
TMPDIR="/home/backups/tmp"

### Размещение бекапов
BACKDIR="/home/backups/"

### Формируем дату, которой назовём архив
NOW=$(date +"%Y-%m-%d_%H-%M")

### Данные БД
DBUSER="Имя пользователя на чтение БД"
DBPASSWORD="Пароль этого пользователя" # Пароль пользователя БД
DBNAME="Имя БД" # Имя БД

### Создаем бэкап базы данных во временной папке
/usr/bin/mysqldump -u$DBUSER -p$DBPASSWORD $DBNAME > $TMPDIR/$DBNAME.sql

# Создаем бэкап сайта
cd $SITEDIR
/bin/tar -cf $TMPDIR/files.tar *

### Запаковываем всё в один файл
cd $TMPDIR
/bin/tar -czf $NOW.tar.gz *

### Перемещаем в основную папку бекапов
mv $NOW.tar.gz $BACKDIR
### Чистим временную папку
/bin/rm -f $TMPDIR/*

По концове отправляем всё это добро в крон. Запуск я установил на время, когда я вижу 147-ой сон...=)

crontab -e
50 4 * * * /home/backup/script.sh