Kinzersky.ru

mysql

Подписаться на эту метку по RSS

резервное копирование файлов сайта, баз данных и конфигурации Apache (Ubuntu)

Просмотров: 5046Комментарии: 0
Unix

Итак, имеем свой веб-сервер на ubuntu (или еще на чем-нибудь, почти неважно). И надо нам на этом сервере организовать резервное копирование наших сайтов и другой полезной информации. Передавать, например, на FTP.

Для начала надо собрать кроном все данные для архивации в одно место на диске, заархивировать, а потом этот архив передать на FTP.

1. Создаем скрипт.

/srv/www# touch backup.sh

даем права на исполнение

/srv/www# chmod +x backup.sh

содержание.

#!/bin/sh
#создаем папку с бэкапом
#mkdir /srv/www-backup
mkdir /srv/www-backup/`date +%d-%m-%Y`
#делаем в него бэкап файлов веб-сервера, самого скрипта и конфигов апача. Для freebsd путь к апачу будет /usr/local/etc/apache2
cp -r /srv/www/ /srv/www-backup/`date +%Y-%m-%d`
cp -r /etc/apache2 /srv/www-backup/`date +%Y-%m-%d`-apache2-config
#бэкапим базы данных
/usr/bin/mysqldump -uLOGIN -pPASSWORD DATABASE_NAME > /srv/www-backup/`date +%Y-%m-%d`/`date +%Y-%m-%d`-DATABASE_NAME.sql
#создаем архив
zip -r /srv/www-backup/`date +%Y-%m-%d`-backup.zip /srv/www-backup/`date +%Y-%m-%d`
#удаляем каталог
rm -rf /srv/www-backup/`date +%Y-%m-%d`
# трем архивы старше 14 дней
find /srv/www-backup -name "*.zip" -mtime +14 -delete
# Копирование резервного архива на удаленный FTP-сервер
ftpuser='username'
password='password'
ftpserver='IP of FTP-server'
file=`date +%Y-%m-%d`'-backup.zip'
ftp -n $ftpserver < user $ftpuser $password
put /srv/www-backup/$file /www-backup$file
bye
End

2. Добавляем скрипт в крон.

Открываем планировщик

crontab -e

Вставляем наше задание

00 05 * * * /bin/sh /srv/www/backup.sh >/dev/null 2>&1

И наслаждаемся. Каждые сутки в 5 утра будет создаваться новая полная копия наших сайтов.