Руководство по созданию автоматизированной системы резервного копирования для веб-сайтов на VPS с Ubuntu. Скрипт архивирует каждую папку сайта в формат .tar.gz с датой в названии и удаляет старые резервные копии.
Создание скрипта
Создайте файл скрипта по пути /scripts/backup.sh:
mkdir -p /scripts touch /scripts/backup.sh
Параметры конфигурации:
DAYS_TO_KEEP — количество дней хранения резервных копий. WWW_PATH — исходный каталог веб-сайтов. BACKUP_PATH — директория для сохранения архивов.
#!/bin/bash
DAYS_TO_KEEP=7
WWW_PATH="/var/www"
BACKUP_PATH="/backups/www"
mkdir -p "$BACKUP_PATH"
cd "$WWW_PATH"
for dir in */; do
dir="${dir%/}"
tar -czf "$BACKUP_PATH/$dir-$(date +%Y%m%d).tar.gz" "$dir"
done
find "$BACKUP_PATH" -mtime +"$DAYS_TO_KEEP" -delete
Автоматизация через Cron
Сделайте файл исполняемым:
sudo chmod +x /scripts/backup.sh
Добавьте задачу в crontab для ежедневного выполнения с логированием:
sudo crontab -e
@daily sh /scripts/backup.sh >> /var/log/www-backup.log 2>&1
Скрипт создаёт директорию для бекапов, если её нет, переходит в каталог веб-корня, архивирует каждую папку сайта и удаляет старые резервные копии старше указанного количества дней.