diff --git a/README.md b/README.md new file mode 100644 index 0000000..c3f7227 --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ +# Домашнее задание к занятию «`Резервное копирование`» - `Коряко Виталий` + +https://github.com/netology-code/sflt-homeworks/blob/main/3.md + +https://losst.pro/nastrojka-cron + +### Цель задания +В результате выполнения этого задания вы научитесь: +1. Настраивать регулярные задачи на резервное копирование (полная зеркальная копия) +2. Настраивать инкрементное резервное копирование с помощью rsync + +--- + +### Задание 1 +- Составьте команду rsync, которая позволяет создавать зеркальную копию домашней директории пользователя в директорию `/tmp/backup` +- Необходимо исключить из синхронизации все директории, начинающиеся с точки (скрытые) +- Необходимо сделать так, чтобы rsync подсчитывал хэш-суммы для всех файлов, даже если их время модификации и размер идентичны в источнике и приемнике. +- На проверку направить скриншот с командой и результатом ее выполнения + +### Решение 1 + +``` +rsync -av --delete --exclude='.*' --checksum /home/tester /tmp/backup +``` + +![rsync](./images/rsync.png) + +--- + +### Задание 2 +- Написать скрипт и настроить задачу на регулярное резервное копирование домашней директории пользователя с помощью rsync и cron. +- Резервная копия должна быть полностью зеркальной +- Резервная копия должна создаваться раз в день, в системном логе должна появляться запись об успешном или неуспешном выполнении операции +- Резервная копия размещается локально, в директории `/tmp/backup` +- На проверку направить файл crontab и скриншот с результатом работы утилиты. + +### Решение 2 + +``` +nano backup_script.sh + +#!/bin/bash +rsync -av --delete --exclude='.*' --checksum /home/tester /tmp/backup >> /var/log/backup.log 2>&1 + +chmod 777 backup_script.sh + +sudo touch /var/log/backup.log + +sudo chmod 777 /var/log/backup.log + +crontab -e + +0 0 * * * /home/tester/backup_script.sh + +sudo systemctl restart cron + +crontab -l + +sudo cat /var/spool/cron/crontabs/tester + +grep CRON /var/log/syslog + +cat /var/log/backup.log +``` +[crontab_tester](./crontab_tester) + +![crontab_rsync](./images/crontab_rsync.png) + +--- + +## Задания со звёздочкой* +Эти задания дополнительные. Их можно не выполнять. На зачёт это не повлияет. Вы можете их выполнить, если хотите глубже разобраться в материале. + +--- + +### Задание 3* +- Настройте ограничение на используемую пропускную способность rsync до 1 Мбит/c +- Проверьте настройку, синхронизируя большой файл между двумя серверами +- На проверку направьте команду и результат ее выполнения в виде скриншота + +--- + +### Задание 4* +- Напишите скрипт, который будет производить инкрементное резервное копирование домашней директории пользователя с помощью rsync на другой сервер +- Скрипт должен удалять старые резервные копии (сохранять только последние 5 штук) +- Напишите скрипт управления резервными копиями, в нем можно выбрать резервную копию и данные восстановятся к состоянию на момент создания данной резервной копии. +- На проверку направьте скрипт и скриншоты, демонстрирующие его работу в различных сценариях. + +------ \ No newline at end of file diff --git a/crontab_tester b/crontab_tester new file mode 100644 index 0000000..8cac263 --- /dev/null +++ b/crontab_tester @@ -0,0 +1 @@ +0 0 * * * /home/tester/backup_script.sh \ No newline at end of file diff --git a/images/crontab_rsync.png b/images/crontab_rsync.png new file mode 100644 index 0000000..cc7a208 Binary files /dev/null and b/images/crontab_rsync.png differ diff --git a/images/rsync.png b/images/rsync.png new file mode 100644 index 0000000..657bf6d Binary files /dev/null and b/images/rsync.png differ