Резервное копирование
Последние записи
Регулярный автоматический backup сайта на основе bash
скрипта
Скрипт осуществляет регулярное автоматическое создание дампа БД в корне сайта, архивирование всех файлов и последующее удаление дампа из корня
#!/bin/bash
# Количество дней для хранения копий
days=28
# Путь к папке с файлами для хранения файлов копий
backup_dir="backups"
# Имя директории сайта
site_dir="PATH_TO_YOUR_SITE/public_html"
# Имя базы данных
db_name="YOUR_DB_NAME"
# Пароль для доступа к базе данных
db_pass="YOUR_DB_PASSWORD"
d=`date +%F-%H:%M:%S`
mkdir -p $backup_dir 2>/dev/null
# Удаление старых файлов копий
find $backup_dir -name "*autobackup.tar.gz" -type f -mtime +$days -delete
# Дамп базы данных
dump_name="$site_dir/dump-$d.sql"
mysqldump -h localhost -u$db_name $db_name -p"$db_pass" > $dump_name
# Архивирование файлов
tar cvvzf "$backup_dir/YOUR_SITE_NAME-$d-autobackup.tar.gz" $site_dir --exclude=bitrix/cache --exclude=bitrix/backup
# Удаляем дамп из корня сайта
rm $dump_name
Данный архив можно автоматически сохранять на Яндекс диске. Вы можете реализовать это добавив в конец скрипта команду:
curl -T "$backup_dir/YOUR_SITE_NAME-$d-autobackup.tar.gz" -u"YANDEX_USER_LOGIN:YANDEX_USER_PASSWORD" https://webdav.yandex.ru/
Сохраните скрипт в любой папке на аккаунте с расширением .sh
и дайте файлу права на исполнение такой командой:
chmod u+x backup.sh
Добавьте данный файл в крон примерно такой командой
*/1 * */14 * * /bin/bash ~/fullBackup.sh
Решение предоставляется "как есть". Используйте его на свой страх и риск
Автоматический бэкап сайта на Яндекс.Диск
Для автоматического копирования установим неофициальный клиент от Anton Batenev
git clone https://github.com/abbat/ydcmd.git
sudo cp ydcmd/ydcmd.py /usr/local/bin/ydcmd
yum install python-dateutil
Получаем токен для работы через API
ydcmd token
В качестве ответа придёт ссылка, перейдя по которой вы получите код подтверждения. Для получения токена, скопируйте полученный код и запустите таким образом:
ydcmd token КОД_ПОДТВЕРЖДЕНИЯ
Создаем в папке пользователя файл .ydcmd.cfg
с правами 0400
и содержимым
[ydcmd]
token = РАНЕЕ-ПОЛУЧЕННЫЙ-OAuth token-
verbose = yes
Остается добавить лишь cron команду
10 1 * * * root /usr/local/bin/ydcmd put --rsync /home/bitrix/www/bitrix/backup disk:/YANDEX_DISK_ACCOUNT_EMAIL
Ручная распаковка многотомной резервной копии Битрикс
Если архив Битрикс был сжат без использования шифрования, то его можно распаковать. Для этого вам потребуется изменить расширения всех частей архива
.tar.gz на .tar.gz.001 для первого файла
.tar.gz.1 на .tar.gz.002
.tar.gz.2 на .tar.gz.003 и т.д. для всех остальных
После вы сможете распаковать его как обычный многотомный архив.
Комментарии