Скриптинг

Простой и эффективный Bash-скрипт для резервного копирования сайта на Linux

Резервное копирование — это не просто лучшая практика, это страховка от непредвиденных обстоятельств. Для небольших проектов, блогов и личных серверов не всегда нужны сложные системы. Иногда идеальным решением является простой и надежный bash-скрипт, запускаемый по расписанию. В этой статье мы разберем один из таких скриптов, который автоматически создает бэкапы и удаляет устаревшие архивы.

Для чего нужен этот скрипт?

  • Автоматическое создание бэкапов: Скрипт упаковывает указанную директорию (например, файлы вашего сайта) в сжатый архив с датой в названии.
  • Умное хранение: Он автоматически удаляет архивы, созданные более 30 дней назад, чтобы предотвратить переполнение диска.
  • Простота и надежность: В основе лежат стандартные UNIX-утилиты (tar, find, date), что гарантирует работу на любом сервере.

Код скрипта и его построчный разбор

Как использовать этот скрипт?

Шаг 1: Создайте файл скрипта Скопируйте приведенный выше код в текстовый редактор. Сохраните файл на вашем сервере с удобным именем, например, backup.sh.

Шаг 2: Настройте пути Внимательно проверьте и измените переменные SRCDIR (что архивировать) и DESDIR (куда сохранять). Убедитесь, что пользователь, от которого будет запускаться скрипт, имеет права на чтение исходной директории и запись в целевую.

Шаг 3: Сделайте скрипт исполняемым В терминале выполните команду:

Шаг 4: Настройте автоматизацию с помощью Cron Чтобы скрипт запускался автоматически каждый день, добавьте задание в планировщик cron. Для этого откройте crontab для редактирования:

И добавьте следующую строку, чтобы запускать скрипт каждый день в 3:00 ночи (не забудьте указать правильный путь к скрипту):

Возможные улучшения скрипта

Предложенный скрипт — отличная основа. Вот несколько идей, как его можно доработать под свои нужды:

  • Верификация архива: Добавьте команду проверки целостности архива после его создания (например, tar -tzf $DESDIR/$FILENAME > /dev/null && echo "Backup OK").
  • Логирование: Перенаправьте вывод скрипта в лог-файл, чтобы отслеживать историю выполнения и возможные ошибки.
  • Уведомления: Интегрируйте отправку email или сообщений в Telegram через API в случае успешного завершения или, наоборот, возникновения проблем.
  • Резервное копирование БД: Добавьте команды для дампа базы данных (например, с помощью mysqldump) и включения полученного файла в архив.

Заключение

Такой скрипт — это малобюджетное, но эффективное решение для автоматизации резервного копирования. Он наглядно демонстрирует мощь и простоту стандартных инструментов Linux. Не забывайте периодически проверять, что ваши бэкапы создаются корректно и их можно восстановить в случае необходимости.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.