Главная/Статьи/Bash: Автоматический Backup для VPS сервера на Ubuntu
Bash

Bash: Автоматический Backup для VPS сервера на Ubuntu

Руководство по созданию автоматизированной системы резервного копирования для веб-сайтов на 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

Скрипт создаёт директорию для бекапов, если её нет, переходит в каталог веб-корня, архивирует каждую папку сайта и удаляет старые резервные копии старше указанного количества дней.