Це мій backup.sh для резервного копіювання сайту Wordpress з конфігурацією docker-compose за допомогою Restic.
Дивіться Конфігурація Wordpress через docker-compose з зворотним проксі Traefik для рекомендованої конфігурації docker-compose.
Для виконання автоматичних щоденних резервних копіювань за допомогою systemd дивіться Як створити таймер та сервіс резервного копіювання systemd за 10 секунд
Дивіться Як встановити сервер Restic REST на Synology NAS для отримання додаткової інформації про те, як активувати сервер Restic REST на Synology NAS.
Скрипт резервного копіювання
Переконайтеся, що ввели правильне ім’я користувача та пароль (restic та abc123 у цьому прикладі), правильну IP-адресу (10.1.2.3 у цьому прикладі) та порт (16383 у цьому прикладі).
Також створіть файл .restic_password з паролем шифрування резервної копії. ОБОВ’ЯЗКОВО ЗРОБІТЬ ОКРЕМУ КОПІЮ ЦЬОГО ПАРОЛЯ - без нього ви не зможете відновити резервну копію!
#!/bin/bash
export NAME=$(basename $(pwd))
export RESTIC_REPOSITORY=rest:http://restic:abc123@10.1.2.3.4:16383/$NAME
export RESTIC_PASSWORD_FILE=.restic_password
if [ ! -f "${RESTIC_PASSWORD_FILE}" ]; then
echo "Будь ласка, створіть .restic_password з паролем шифрування резервної копії ТА ЗБЕРЕЖІТЬ ЦЕЙ ПАРОЛЬ ОКРЕМО!!!"
exit 1
fi
echo "Ініціалізація репозиторію, будь ласка, ігноруйте будь-які помилки 'already exists'"
if [ ! -f ".restic_inited" ]; then
# Запустити команду restic init
restic init
if [ $? -eq 0 ]; then # якщо ініціалізація успішна
# Створити файл ініціалізації
touch ".restic_inited"
echo "Restic ініціалізовано"
fi
fi
# Резервне копіювання
source .env
docker-compose exec -T mariadb mysqldump -uroot -p${MARIADB_ROOT_PASSWORD} --all-databases | restic --verbose backup --stdin --stdin-filename="mariadb.sql"
# Резервне копіювання файлів
restic --verbose backup backup.sh docker-compose.yml wordpress --exclude wordpress/wp-content/cache