Имеется Linux Ubuntu компьютер, на котором расположен мой веб сайт на Django. Хочется иметь регулярные
резервные копии на моем компьютере Windows, не зависимо от моего желания. Лучше один раз сделать автоматическое
резервное копирование и спать спокойно.
В предыдущей статье я установил
и настроил сервер ssh под Windows – winSSHd
и сделал авторизацию по ключу. Теперь остался финальный этап – резервное копирование (backup).
1.
Создал скрипт резервного копирования backup_web.sh в редакторе vim:
vi
backup_web.sh
добавил содержимое
#!/bin/sh
NOW=$(date
+"%Y-%m-%d ")
FILE=backup-www-$NOW.tar.gz
cd
/home/django-projects/atlant/
# backup
data from database
python
manage.py dumpdata > db_atlant_back_server.json
WWW_BACKUP_DIR=/home/atlant/backup
cd
$WWW_BACKUP_DIR
#
copy apache and project directory
cp -r
/etc/apache2 .
cp -r
/home/django-projects .
tar
zcf $FILE apache2 django-projects
# copy
file to computer 192.168.10.222
scp
-i /home/atlant/.ssh/sshkey-atlant $WWW_BACKUP_DIR/$FILE atlant@192.168.10.222:d:/arhiv/
сохранил и вышел из редактора vim
:wq
Что делает скрипт резервного копирования?
- выгружает базу данных в файл средствами
django
python
manage.py dumpdata > db_atlant_back_server.json
- копирует каталоги apache и
моего проекта в архивный каталог
cp -r
/etc/apache2 .
cp -r
/home/django-projects .
- упаковывает в архив
tar
zcf $FILE apache2 django-projects
- копирует архив на мой
компьютер
scp
-i /home/atlant/.ssh/sshkey-atlant $WWW_BACKUP_DIR/$FILE atlant@192.168.10.222:d:/arhiv/
2.
Сделал файл backup_web.sh исполняемым
chmod +x backup_web.sh
3.
Проверил работоспособность скрипта из командной
строки
./backup_web.sh
4.
Установил запуск скрипта резервного копирования по расписанию.
За это в Linux отвечает crontab файл.
Его я и буду редактировать. Ввожу команду, которая открывает файл в редакторе
по умолчанию
crontab –e
Формат файла такой:
минуты часы день месяц день_недели команда
Я добавил в конец файла
следующую строку (запускает в 15.00 каждый день скрипт backup_web.sh):
0
15 * *
* /home/atlant/backup_web.sh
Сохраняю и выхожу в шел
оболочку. Проверяю содержимое crontab командой
crontab –l
Заметка. crontab доступен
для любого пользователя, а не только для админов. Поэтому запускайте задачи резервного копирования по
крону не стесняясь, пока к вам не придет письмо с угрозой приостановки вашего виртуального
сервера за превышение лимита процессорного времени :)
Теперь жду выполнения скрипта резервного копирования в
назначенное время и просматриваю логи командой:
grep CRON
/var/log/syslog
Проверяю наличие резервной копии у себя на компьютере.
Все
работает. Можно спать спокойно.
Осталось только периодически
заходить и смотреть - как делаются резервные копии, ну и удалять старые.
Удалять старые резервные копии автоматом я не стал, потому что
был опыт – старые резервные копии удалялись, а новые не создавались.
Комментариев нет:
Отправить комментарий