Не стану описывать для чего это необходимо, думаю что и так все всё понимают, хочу лишь в очередной раз упомянуть крылатую фразу:
Админы делятся на 2 типа:
- Кто уже делает бэкапы
- Кто ещё не делает бекапы
- Кто ещё и проверяет, что бэкапы не битые
- Кто, не имея бэкапов, грохает базу на проде для профилактики...=)
...и добавить некоторые замечания какого-то чела с хабра:
Погнали...
Создаём папку для бекапов, а также для временных файлов
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 -e50 4 * * * /home/backup/script.sh