Простое резервное копирование в Linux

Краткая инструкция об организации резервного копирования в Linux с помощью стандартных средств на примере ОС Debian GNU/Linux 11.7. Подойдёт для пользовательских файлов, ресурсов файловых серверов и прочих данных не очень больших объёмов.

Наша задача на данный момент времени — организовать резервное копирование файловой шары

Здесь нам понадобится установленный Samba-клиент. Если его ещё нет, устанавливаем: https://dondub.com/2021/02/nastroyka-samba-client-v-debian-10-8/

Затем создадим директорию назначения резервных копий, например /srv/backups/

# mkdir -p /srv/backups/

Если планируем сжимать резервную копию в архив, то можно также установить zip

# apt install zip

Теперь нам необходимо написать bash-скрипт, который будет монтировать директорию источника, например, в /mnt/.

Для этого создаём файл /usr/local/backup.sh

# touch /usr/local/backup.sh

даём ему права на запуск

# chmod u+x /usr/local/backup.sh

открываем его

# nano /usr/local/backup.sh

и напишем такой небольшой скриптик:

#!/bin/sh

# удаляем файлы старше 30 дней
/usr/bin/find /srv/backup/ -name "*.zip" -mtime +30 -exec rm {} \;
# монтируем шару в директорию /mnt/
mount -t cifs -o username=sambauser,password=MySharePassword //fileserver/shared_folder /mnt/
# выжидаем 5 секунд (на всякий случай)
sleep 5
# создаём датируем файл zip-архива, то есть резервной копии
/usr/bin/zip -r `date +/srv/backup/files.%Y-%m-%d.zip` /mnt
# ещё раз выжидаем 5 секунд (на всякий случай)
sleep 5
# размонтируем шару
umount /mnt

Если файловый сервер на старом Windows, например на Windows Server 2003 R2, который поддерживает только SMB 1.0, тогда строчка с монтированием шары будет выглядеть так:

# mount -t cifs -o username=sambauser,password=MySharePassword,vers=1.0 //fileserver/shared_folder /mnt/

Далее этот скрипт запускаем по расписанию с помощью cron.

Для этого открываем редактор cron

# crontab -e

и добавим туда строчку:

15 20 * * * /usr/local/backup.sh

То есть, этот скрипт будет запускаться ежедневно в 20:15.

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

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