Резервное копирование
Для реализации бекапа общей папки на сервере SRV1-HQ с использованием systemctl, выполните следующие шаги:
a) Создание сервиса для архивации
-
Создайте скрипт для архивации:
Создайте скрипт, который будет выполнять архивацию данных. Например, создайте файл
/usr/local/bin/backup.sh:#!/bin/bash # Директория для бекапа BACKUP_DIR="/var/bac" # Исходная директория для архивации SOURCE_DIR="/path/to/shared/folder" # Имя архива ARCHIVE_NAME="backup_$(date +%Y%m%d_%H%M%S).tar.gz" # Создание архива tar -czf "${BACKUP_DIR}/${ARCHIVE_NAME}" -C "${SOURCE_DIR}" . # Удаление старых архивов (например, старше 7 дней) find "${BACKUP_DIR}" -name "backup_*.tar.gz" -mtime +7 -exec rm {} \;Не забудьте сделать скрипт исполняемым:
chmod +x /usr/local/bin/backup.sh -
Создайте юнит для сервиса:
Создайте файл
/etc/systemd/system/backup.service:[Unit] Description=Backup service for shared folder [Service] Type=oneshot ExecStart=/usr/local/bin/backup.sh -
Включите автозагрузку сервиса:
sudo systemctl enable backup.service
b) Создание таймера для ежедневного выполнения бекапа
-
Создайте юнит для таймера:
Создайте файл
/etc/systemd/system/backup.timer:[Unit] Description=Run backup daily at 8 PM [Timer] OnCalendar=20:00 Persistent=true [Install] WantedBy=timers.targetOnCalendar=20:00— задает время выполнения бекапа каждый день в 20:00.Persistent=true— если устройство было выключено в момент выполнения, бекап будет выполнен сразу после запуска системы.
-
Включите и запустите таймер:
sudo systemctl enable backup.timer sudo systemctl start backup.timer
Проверка работы
-
Проверьте статус таймера:
systemctl list-timers -
Проверьте статус сервиса:
systemctl status backup.service
Теперь бекап будет выполняться каждый день в 20:00, а если сервер был выключен в это время, бекап выполнится сразу после его включения.