Краткая инструкция об организации резервного копирования в 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.