📖 Повторение — занятия 24 и 25

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

⚡ Кратко: что повторяем

  • Урок 24: 4 скрипта мониторинга — диск, система, бекап, логи.
  • Урок 25: PyCharm как Git-клиент — commit/push, PR, upstream.

Lecture 15 — Практическая работа со скриптами (занятие 24)

На занятии 24 мы написали четыре bash-скрипта для системного администрирования:

Скрипт 1: мониторинг дискового пространства

Скрипт проверяет заполненность корневого раздела и находит самые большие файлы при превышении порога.

#!/bin/bash
threshold=80
disk_usage=$(df / | awk '{print $5}' | sed 's/%//')
if [ "$disk_usage" -gt "$threshold" ]; then
    echo "Disk usage is ${disk_usage}% — above threshold!"
    du -ah / | sort -rh | head -n 10
fi

Скрипт 2: системный отчёт

Собирает информацию об ОС, времени работы, загрузке процессора и памяти, количестве пользователей.

#!/bin/bash
os_version=$(cat /etc/os-release | grep "PRETTY_NAME" | cut -d '"' -f 2)
echo "OS: $os_version"
uptime -p
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 6
echo "Logged in users: $(who | wc -l)"

Скрипт 3: cron-задание для бекапа

Автоматический бекап каталогов /opt и /home/ec2-user каждое воскресенье в 2:00. Удаляет копии старше 21 дня.

# crontab: 0 2 * * 0 /home/ec2-user/backup.sh

#!/bin/bash
backup_location="/backup"
backup_file="$backup_location/backup-$(date +%Y%m%d).tar.gz"
tar -czf "$backup_file" /opt /home/ec2-user
find "$backup_location" -maxdepth 1 -type f -name "*.tar.gz" -mtime +21 -delete

Скрипт 4: мониторинг логов

Ищет ошибки и предупреждения в директории логов, подсчитывает количество каждого типа.

#!/bin/bash
log_directory="/var/log"
error_patterns="(error|Error|ERROR|warning|Warning|WARNING)"
grep -E -r "$error_patterns" "$log_directory" | uniq -c | sort -nr

Lecture 16 — PR в PyCharm (занятие 25)

На занятии 25 мы изучили PyCharm как полноценный Git-клиент:

Базовый функционал PyCharm

  • Open — открыть существующую директорию с репозиторием
  • Get from VCS / Get from Version Control — клонировать удалённый репозиторий

Работа с репозиторием через плагин Git

  • Добавить файл → плагин Git → выбрать файлы → ввести сообщение коммита → «Commit and Push»
  • «Commit and Push» заменяет: git add <file> + git commit -m "..." + git push
  • История коммитов — вкладка Git в нижней панели

Работа с Pull Request

  1. GitHub → вкладка Pull Requests → New pull request
  2. Выбрать направление: форкнутый репозиторий → исходный
  3. Добавить описание, при необходимости указать связанный issue (#НОМЕР)
  4. Rebase and merge

Обновление форкнутого репозитория через upstream

git remote add upstream <URL-исходного-репозитория>
git fetch upstream
git checkout master
git merge upstream/master
git push origin master
Подробнее в занятии 25: ← Занятие 25 — PR в PyCharm: теория