Признаюсь, я ленив местами. То что можно сделать автоматизированно — я делаю (если смогу побороть лень :-D) И тут представилась такая возможность. Я решил обойтись без панели управления VESTACP и руками настроить сервер для своего сайта.
Сделал по быстрому, и тут встал вопрос о резервном копировании. В панели управления для этого была специальная настройка и всё было замечательно (если не считать того, что периодически панель забывала чистить за собой временные файлы резервных копий и забивала свободное место на диске) однако на сервере настроенном руками, резервное копирование тоже надо делать ручками. Итак, задача:
Будем исходить из ТЗ. Имеем:
Наши действия:
Создаем директорию под локальные бэкапы:
mkdir -p /home/serv/backup
Создаем ключ ssh с помощью которого будем заходить на домашний сервер и копировать туда файлы:
ssh-keygen -f ~/.ssh/id_rsa -q -P "" cat ~/.ssh/id_rsa.pub
В выхлопе получим что-то вроде:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLVDBIpdpfePg/a6h8au1HTKPPrg8wuTrjdh0QFVPpTI4KHctf6/FGg1NOgM++hrDlbrDVStKn/b3Mu65//tuvY5SG9sR4vrINCSQF++a+YRTGU6Sn4ltKpyj3usHERvBndtFXoDxsYKRCtPfgm1BGTBpoSl2A7lrwnmVSg+u11FOa1xSZ393aaBFDS555GlJf1SojWYIAbE25Xe3z5L232vZ5acC2PJkvKctzvUttJCP91gbNe5FSwDolE44diYbNYqEtvq2Jt8x45YzgFSVKf6ffnPwnUDwhtvc2f317TKx9l2Eq4aWqXTOMiPFA5ZRM/CF0IJCqeXG6s+qVfRjB
Идем на remote.site.ru сервер и добавляем туда наш ключ в файл ~/.ssh/authorized_keys Если этого файла нет, то его надо создать и выставить на него права:
mkdir ~/.ssh chmod 0700 ~/.ssh touch ~/.ssh/authorized_keys echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLVDBIpdpfePg/a6h8au1HTKPPrg8wuTrjdh0QFVPpTI4KHctf6/FGg1NOgM++hrDlbrDVStKn/b3Mu65//tuvY5SG9sR4vrINCSQF++a+YRTGU6Sn4ltKpyj3usHERvBndtFXoDxsYKRCtPfgm1BGTBpoSl2A7lrwnmVSg+u11FOa1xSZ393aaBFDS555GlJf1SojWYIAbE25Xe3z5L232vZ5acC2PJkvKctzvUttJCP91gbNe5FSwDolE44diYbNYqEtvq2Jt8x45YzgFSVKf6ffnPwnUDwhtvc2f317TKx9l2Eq4aWqXTOMiPFA5ZRM/CF0IJCqeXG6s+qVfRjB" >> ~/.ssh/authorized_keys chmod 0644 ~/.ssh/authorized_keys
Теперь наш сервер с сайтами будет подключаться к удаленному серверу без пароля.
Следующий шаг — добавляем скрипт и настраиваем его:
nano ./backup.sh
Каждый шаг скрипта я снабдил комментарием:
#!/bin/bash
###########################################
# Предварительные настройки и переменные #
###########################################
#Директория с сайтами
SITE_DIR='/home/serv/sites'
#Директория для резервных копий
BACKUP_DIR='/home/serv/backup'
#Имя резервной копии в зависимости от даты
BACKUP_NAME=$(date "+%Y%m%d")
#Сервер куда будут складываться копии резервных копий
REMOTE_HOST='remote.site.ru'
#Директория на удаленном сервере куда будут складываться копии резервных копий
REMOTE_DIR='/home/user'
#Пользователь под которым мы заходим на удаленный сервере
REMOTE_USER='user'
#Настройки базы данных
#Пользователь БД
DB_USER='serv'
#Пароль пользователя БД
DB_PASS='serv_password333'
#Сервер базы данных
DB_HOST='localhost'
###########################################
# Рабочая часть скрипта #
###########################################
#Создаем архив с файлами сайтов
tar -zcf "$BACKUP_DIR/sites_$BACKUP_NAME.tar.gz" $SITE_DIR
#Создаем архив баз данных доступных пользователю
mysqldump -u $DB_USER -h $DB_HOST -p$DB_PASS -A | gzip -c > "$BACKUP_DIR/mysql-db-$BACKUP_NAME.dump.gz"
#Смотрим файлы старше 5 дней и если есть - то удаляем.
find $BACKUP_DIR -type f -mtime +5 -exec rm {} \;
#Синхронизируем нашу директорию с резервными копиями с директорией на удаленном сервере через ssh
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" $BACKUP_DIR $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR Теперь дадим права на запуск нашему скрипту:
chmod +x ./backup.sh
Ну и напоследок- добавим выполнение скрипта на полтретьего ночи каждый день:
crontab -e 30 2 * * * /home/serv/backup.sh
Вот, в принципе и всё.
Восстановить доступ к странице ВКонтакте можно относительно просто. И для этого даже не потребуется помощь…
Реверс инжиниринг электроники и программного обеспечения — увлекательная и важная дисциплина, играющая ключевую роль в…
Рынок смартфонов не стоит на месте и каждый год пополняется новыми моделями. Компания Apple традиционно…
Запуск онлайн-бизнеса может показаться сложной задачей, но на самом деле этот процесс можно существенно упростить,…
Если Вы хотите продвинуть свой сайт в поисковых системах, одним из самых важных аспектов является…
Корейская компания Samsung зарекомендовала себя на потребительском рынке как производитель флагманов, так и бюджетных смартфонов.…