✅ Решения

К оглавлению урока

⚡ Ключевые ответы

  • cron — планировщик задач для автоматического запуска команд по расписанию. crontab -r — удалить ВСЕ задания пользователя.
  • tar — утилита архивации: -c создать, -x извлечь, -z сжать через gzip.
  • fork — копия чужого репозитория в своём аккаунте для независимой работы. PR — запрос на слияние изменений из форка в оригинал; инициирует code review.
  • Связать issue с PR — упомянуть в описании PR: fixes #42 или closes #42.

Ответы: Занятие 21 (cron, crontab, tar)

Вопрос 1. Зачем нужен cron?
Для автоматического запуска команд и скриптов по расписанию без участия пользователя. Примеры: резервное копирование, очистка логов, отправка отчётов.
Вопрос 2. Какие действия можно выполнять в планировщике?
Любые команды и скрипты bash: создание архивов, запуск скриптов мониторинга, удаление устаревших файлов, отправка email-уведомлений и т.д.
Вопрос 3. Где брать необходимые интервалы для планировщика?
На сайте crontab.guru — визуальный редактор cron-выражений. Введите выражение — получите человекочитаемое расписание.
Вопрос 4. Какой командой удаляем все планирования пользователя?
crontab -r — удаляет ВСЕ задания текущего пользователя без подтверждения. Осторожно: это необратимо. Для просмотра — crontab -l, для редактирования — crontab -e.
Вопрос 5. Что такое tar и для чего используется?
tar (Tape ARchive) — утилита для упаковки нескольких файлов и директорий в один архивный файл. Часто используется совместно с gzip для сжатия. Применяется для резервного копирования, распространения программ, архивации логов.
Вопрос 6. Основные ключи tar для создания архива?
-c (create), -f (file — указать имя архива), -v (verbose — вывод списка файлов). Пример: tar -cvf archive.tar file1.txt dir/
Вопрос 7. Опции tar для сжатия архива?
-z — сжатие через gzip (файл .tar.gz); -j — сжатие через bzip2 (файл .tar.bz2). Пример: tar -czf archive.tar.gz directory/

Ответы: Занятие 22 (Git fork, issue, PR)

Вопрос 8. Что такое fork в Git и GitHub?
Fork — копия удалённого репозитория, создаваемая в вашем аккаунте на GitHub/GitLab. Позволяет вносить изменения независимо от оригинала. Связь с оригинальным репозиторием сохраняется через upstream.
Вопрос 9. Что такое issue в GitHub?
Issue — инструмент для отслеживания задач, сообщений об ошибках и обсуждений. Категории: bug, enhancement, documentation. Содержит название, описание, метки и назначенного исполнителя.
Вопрос 10. Основная цель создания pull request?
Pull Request инициирует процесс code review — предлагает влить изменения из одной ветки (или форка) в другую. Позволяет команде обсудить изменения, оставить комментарии и принять решение о слиянии до merge.
Вопрос 11. Как связать issue с pull request?
В описании PR упомянуть номер issue с ключевым словом: fixes #42, closes #42 или resolves #42. После слияния PR issue автоматически закроется.

Решение задания 1: Скрипт резервного копирования

# backup_script.sh

#!/bin/bash
backup_directories="/home/user1 /var/www/html /etc"
backup_directory="/backup"

# Создание уникального имени файла архива с датой и временем
backup_file="$backup_directory/backup_$(date +'%Y%m%d_%H%M%S').tar.gz"

tar -czf "$backup_file" $backup_directories

Добавить в crontab для запуска ежедневно в 2:00:

chmod +x /path/to/backup_script.sh
crontab -e
# Добавить строку:
0 2 * * * /path/to/backup_script.sh

Разбор выражения 0 2 * * *: минута 0, час 2, любой день месяца, любой месяц, любой день недели — то есть каждые сутки в 02:00.

Решение задания 2: Fork + тестовый PR

На странице репозитория преподавателя нажмите «Fork» → репозиторий скопируется в ваш аккаунт.

git clone https://github.com/YOUR_USERNAME/repo.git
cd repo

# Создать папку группы и файл с именем
mkdir your-group
touch your-group/your-name.txt

# Коммит и push
git add your-group/your-name.txt
git commit -m "Add my name"
git push origin main

Открытие PR на GitHub:

  1. Перейдите на страницу вашего форка.
  2. Нажмите «New pull request».
  3. Проверьте направление: teacher-account:mainyour-account:main.
  4. Нажмите «Create pull request» и скопируйте ссылку.