#!/bin/bash # Задаем системные переменные, чтобы в скрипте не прописывать полные пути. PATH=/etc:$PATH/var:$PATH # Каталог c рабочими данными, которые нужно резервировать. source_arch_etc="/etc" source_arch_var="/var/www/html" source_1="/etc/apache2" source_2="/etc/amavis" source_3="/etc/clamav" source_4="/etc/iptables" source_5="/etc/webmin" source_6="/etc/netplan" source_7="/etc/php" source_8="/etc/postfix" source_9="/etc/postgrey" source_10="/etc/ssl/mail" source_11="/var/www/html/webmail" source_12="/var/www/html/postfixadmin" # Корневая папка, где нужно хранить резервные копии. destination_root="/mnt/Backup_mail/System" # Подстановка даты в название архива. fdate=$(date +%Y-%m-%d) # Удаление старых архивов find ${destination_root}/archive -type f -name "*.tar.gz" -ctime +65 -exec rm -R {} \; 2>&1 # Ежедневный rsync -a --delete-after ${source_1}/ ${destination_root}/daily/etc/apache2/ rsync -a --delete-after ${source_2}/ ${destination_root}/daily/etc/amavis/ rsync -a --delete-after ${source_3}/ ${destination_root}/daily/etc/clamav/ rsync -a --delete-after ${source_4}/ ${destination_root}/daily/etc/iptables/ rsync -a --delete-after ${source_5}/ ${destination_root}/daily/etc/webmin/ rsync -a --delete-after ${source_6}/ ${destination_root}/daily/etc/netplan/ rsync -a --delete-after ${source_7}/ ${destination_root}/daily/etc/php/ rsync -a --delete-after ${source_8}/ ${destination_root}/daily/etc/postfix/ rsync -a --delete-after ${source_9}/ ${destination_root}/daily/etc/postgrey/ rsync -a --delete-after ${source_10}/ ${destination_root}/daily/ssl/mail/ rsync -a --delete-after ${source_11}/ ${destination_root}/daily/var/www/html/webmail/ rsync -a --delete-after ${source_12}/ ${destination_root}/daily/var/www/html/postfixadmin/ # Еженедельный if [[ $(date +%u) -eq 0 ]] then rsync -a --delete-after ${source_1}/ ${destination_root}/weekly/etc/apache2/ rsync -a --delete-after ${source_2}/ ${destination_root}/weekly/etc/amavis/ rsync -a --delete-after ${source_3}/ ${destination_root}/weekly/etc/clamav/ rsync -a --delete-after ${source_4}/ ${destination_root}/weekly/etc/iptables/ rsync -a --delete-after ${source_5}/ ${destination_root}/weekly/etc/webmin/ rsync -a --delete-after ${source_6}/ ${destination_root}/weekly/etc/netplan/ rsync -a --delete-after ${source_7}/ ${destination_root}/weekly/etc/php/ rsync -a --delete-after ${source_8}/ ${destination_root}/weekly/etc/postfix/ rsync -a --delete-after ${source_9}/ ${destination_root}/weekly/etc/postgrey/ rsync -a --delete-after ${source_10}/ ${destination_root}/weekly/ssl/mail/ rsync -a --delete-after ${source_11}/ ${destination_root}/weekly/var/www/html/webmai/ rsync -a --delete-after ${source_12}/ ${destination_root}/weekly/var/www/html/postfixadmin/ fi # Создание архива count_last_archives=$(find ${destination_root}/archive/ -name "*.tar.gz" -mtime -30 | wc -l) if [[ $count_last_archives -eq 0 ]] then cd ${source_arch_etc} tar zcf ${destination_root}/archive/backup_etc${fdate}.tar.gz ./* cd ${source_arch_var} tar zcf ${destination_root}/archive/backup_var${fdate}.tar.gz ./* fi # Копирование некоторых файлов cp /etc/passwd ${destination_root}/daily/etc/ cp /etc/crontab ${destination_root}/daily/etc/ cp /etc/fstab ${destination_root}/daily/etc/ cp /etc/group ${destination_root}/daily/etc/