Как все мы прекрасно знаем, постоянное резервирование значимых данных просто необходимо, и чем важнее данные тем важнее backup этих данных. В этой процедуре есть один существенный недостаток, мешающий регулярному бэкапу — это лень. Избавится от этого недостатка нам поможет автоматизация процесса резервного копирования. В этой статье я расскажу как создать резервную копию файлов и базы данных блога на движке WordPress. В статье подразумевается, что доступ к файлам блога имеется только по ftp, но с возможностью подключения через TLS/SSL. Итак приступим к поставленной задаче.

Автоматическое резервное копирование бызы данных блога на WordPress. Плагин WordPress Database Backup.

Скачка и установка плагина стандартна и подробно останавливаться на ней я не буду. Перейдем непосредственно к настройке плагина. В панели «инструменты» админки блога выбираем «резервное копирование» после чего попадаем в меню настройки WordPress Database Backup. Здесь можно отметить дополнительные таблицы которые вы хотите включить в основную резервную копию, а в поле снизу «Расписание резервного копирования» выбрать время копирования и почтовый ящик, куда эти копии будут отсылаться. Для этих целей лучше специально создать ящик на gmail.com.


WordPress Database Backup

Автоматическое резервное копирование файлов блога WordPress с помощью фтп клиента lftp и роутера ASUS Wl-500gp.

Для реализации задуманного понадобится альтернативная прошивка для нашего роутера с возможностью доступа к консоли и установки пакетов программного обеспечения. За прошивкой можно обратиться на форум http://wl500g.info.
На этом ресурсе есть несколько мануалов по прошивке устройства и установки дополнительного ПО. Чтобы продолжить реализацию нашей затеи у вас должны быть установлены: менеджер пакетов ipkg и cron.

Вообще регулярный бэкап требует ответственного подхода к распределению дискового пространства под это дело. Как минимум следует выделить отдельный раздел под резервные копии, а лучше отдельный физический диск. Ни в коем случае не пытайтесь сохранять резервные копии на корневом раздели, потому что, если вдруг резервирование выйдет из под вашего контроля, вы рискуете полностью заполнить корневой раздел и «вывести систему из строя». В своем примере, я воспользуюсь отдельной флешкой, смонтированной под резервные копии.
Подключаемся к консоли роутера и командуем:

# halt

После отработки команды индикатор питания роутера погаснет и вилку сетевого шнура можно извлечь из розетки.(ничего не мешает вам просто выдернуть вилку без команды, но я стараюсь использовать этот «щадящий» режим для файловой системы)
Устанавливаем в свободный USB разъем Flash накопитель, либо, если вы используете многофункциональный картридер — flash карту в свободный разъем считывателя карт.
Включаем роутер и подключаемся к консоли. Смотрим файл устройства нашей флешки и каталог куда она была смонтирована.

# df -h

Путь к файлу устройства у вас должен быть примерно следующий:

/dev/discs/disc0/part3

А точка монтирования примерно такая:

/tmp/mnt/disc0_3

Следующие команды отмонтируют устройство и создадут на нем новую файловую систему ext3:

# umount /tmp/mnt/disc0_3
# mke2fs -j /dev/discs/disc0/part3

Следующим шагом я создам каталог для точки монтирования флешки и пропишу в файл fstab параметры автоматического монтирования устройства при загрузке роутера.

# mkdir /opt/backup
# nano /etc/fstab

В файл fstab до бавляем следующую строку:

/dev/discs/disc0/part3 /opt/backup ext3 rw,noatime 1 1

Сохраняем результат(Жмем ctrl+o, Enter, ctrl+x). Так как файл fstab находится в основной флеш-памяти устройства, выполняем команды, чтобы закрепить результат.

# flashfs save && flashfs commit && flashfs enable && reboot

После перезагрузки и подключения к консоли следует проверить работоспособность наших предыдущих действий, выполнив команду:

# df -h

Если точка монтирования нашей флешки /opt/backup, значит все хорошо и мы переходим к следующему пункту настройки.

Установка lftp и настройка резервного копирования блога.

До установки lftp(если вы хотите соединяться с фтп сервером по протоколу SSL) вы должны убедиться, что у вас установлен пакет OpenSSL.

# ipkg list_insalled

Если установлен, все хорошо, если нет устанавливаем.

# ipkg update
# ipkg install openssl

Теперь, непосредственно сам клиент фтп:

# ipkg install lftp

Для удобства создадим файл инструкций для клиента:

# touch /opt/backup/ftp_connect
# nano /opt/backup/ftp_connect
set ftp:ssl-allow yes   # принудительное использование SSL(очень желательно использовать 
set ftp:ssl-auth TLS   # если есть поддержка на сервере)
set ftp:ssl-force true   #
open login.server.ru   # подключение к серверу
user login password   #
mirror domains .        # директория которую копируем(domains) и куда копируем(.)
exit

В файле пароли к фтп лежат в открытом доступе, что уже не хорошо, поэтому выставляем на него права 400.

# chmod 400  /opt/backup/ftp_connect

А теперь, собственно сам скрипт:

#!/bin/sh
backupdir=/opt/backup
dir=`date +%Y-%m-%d` \