Skip to content

Commit

Permalink
Add task implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
Spardoksis committed Oct 1, 2024
0 parents commit ac566db
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 0 deletions.
89 changes: 89 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -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 штук)
- Напишите скрипт управления резервными копиями, в нем можно выбрать резервную копию и данные восстановятся к состоянию на момент создания данной резервной копии.
- На проверку направьте скрипт и скриншоты, демонстрирующие его работу в различных сценариях.

------
1 change: 1 addition & 0 deletions crontab_tester
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0 0 * * * /home/tester/backup_script.sh
Binary file added images/crontab_rsync.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/rsync.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit ac566db

Please sign in to comment.