Инкрементальный бэкап удаленного веб сервера с Mysql с помощью rsnapshot (CentOS, RHEL)
С недавнего времени в распоряжение был получен веб сервер, который не отличается стабильностью, поэтому задумался о резервном копировании данных с него на удаленный сервер. Было решено использовать rsnapshot для решения данной задачи, детали которой описываю ниже. Инкрементальный бэкап позволяет нам делать частые бэкапы, но при этом экономить на занимаемом месте. Магия заключается в том, что файлы, оставшиеся без изменения не скачиваются и не записываются в свежий бэкап. Делается просто жесткая ссылка на старый файл. В итоге получаем минимум занимаемого места и максимум удобства. Так же необходимо делать бэкап mysql баз, для чего будет представлен отдельный скрипт, который будет впоследствии запускаться в rsnapshot. Все действия производились на CentOS. Однако, настройки rsnapshot универсальны для разных ОС, отличны лишь команды установки программ. На Ubuntu, Debian используем apt-get install, вместо yum install. Что необходимо сделать:
- Сделать авторизацию по ключам с сервера бэкапов на удаленный сервер для авторизации без пароля.
- Установить скрипт на удаленный сервер, который будет делать дамп БД mysql (можно было бы делать дамп файлов самой базы, но для этого было бы необходимо останавливать mysql во избежание порчи данных).
- Установить rsnapshot на сервер бэкапов, настроить его.
Сразу оговорюсь, что сервер бэкапов у нас будет называться backup, а удаленный хост — client. В приведенных конфигурациях. нужно заменить эти названия на реальные ip адреса, либо имена хостов. В командах на bash вначале ставится client, либо backup — для лучшего понимания на каком сервере необходимо производить действие.