Ответы: Занятие 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:
- Перейдите на страницу вашего форка.
- Нажмите «New pull request».
- Проверьте направление:
teacher-account:main←your-account:main. - Нажмите «Create pull request» и скопируйте ссылку.