💻 Разбор домашних заданий

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

⚡ Ключевые моменты разбора

  • ДЗ 21 (cron+tar): Переменная DATE=$(date +"%d.%m.%y"); создание файлов touch $run'_'$DATE; crontab */15 * * * *; архив: history > history.txt; tar -czf archive.tar.gz *.*.
  • ДЗ 22 (fork+PR): Fork → git clone <URL> → папка группы → файл → git add .../git commit -m "Add my name"/git push origin main → New pull request → Create pull request.

ДЗ занятия 21 — Скрипт + crontab + архив

Задание (дословно из LMS): Создать папку со своим именем на сервере linux.itcareerhub.de. В папке создать скрипт task_NAME.sh, который генерирует 10 файлов с порядковым номером и датой. Добавить задание в crontab на запуск каждые 15 минут. Создать архив с файлами + история команд. Закомментировать задание в crontab.

Шаг 1 — Скрипт task_NAME.sh

Скрипт создаёт 10 файлов с именами вида 1_20.04.23, 2_20.04.23, …, 10_20.04.23:

# task_NAME.sh

#!/bin/bash
for run in {1..10}
do
  DATE=$(date +"%d.%m.%y")
  echo $run
  echo $DATE
  touch $run'_'$DATE
done

Ключевые моменты:

  • for run in {1..10} — цикл от 1 до 10; переменная run принимает значения 1, 2, 3, …, 10.
  • DATE=$(date +"%d.%m.%y") — командная подстановка: результат date записывается в переменную.
  • touch $run'_'$DATE — создаёт файл с именем 1_20.04.23. Одинарные кавычки вокруг '_' — буквальный символ нижнего подчёркивания (не переменная).

Шаг 2 — Добавить в crontab

crontab -e

В редакторе добавить строку:

*/15 * * * * /home/your_username/task_YOURNAME.sh

*/15 — каждые 15 минут; остальные поля * — любые значения.

Шаг 3 — Архив с файлами и историей команд

history > history.txt
tar -czf archive.tar.gz *.*
  • history > history.txt — сохранить историю команд в файл.
  • *.* — все файлы с точкой в имени (охватывает сгенерированные файлы и history.txt).

Шаг 4 — Закомментировать задание в crontab

crontab -e
# Добавить # в начало строки с заданием:
# */15 * * * * /home/your_username/task_YOURNAME.sh

Комментирование — не удаление; задание остаётся «в быстром доступе» и при необходимости легко активируется.

ДЗ занятия 22 — Fork репозитория + Pull Request

Задание (дословно из LMS): Работаем с репозиторием https://github.com/it-career-hub/learning_git. Форкнуть → clone → создать папку группы → создать файл с именем → git add/commit/push → открыть PR → прислать ссылку на PR.

Шаг 1 — Fork репозитория

Перейдите на https://github.com/it-career-hub/learning_git. Нажмите кнопку «Fork» в верхнем правом углу — репозиторий скопируется в ваш аккаунт.

Шаг 2 — Клонировать форк

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

Шаг 3 — Создать папку группы и файл

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

Шаг 4 — Коммит и push

git add your-group/your-name.txt
git commit -m "Add my name"
git push origin main

Шаг 5 — Открыть Pull Request

На странице вашего форка на GitHub:

  1. Нажмите «New pull request».
  2. Убедитесь: базовая ветка — it-career-hub:main, ваша ветка — your-username:main.
  3. Нажмите «Create pull request».
  4. Скопируйте ссылку на открытый PR (например: https://github.com/it-career-hub/learning_git/pull/45).