📖 Повторение — занятия 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
Подробнее в занятии 24:
← Занятие 24 — Продвинутые Bash-скрипты: теория
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
- GitHub → вкладка Pull Requests → New pull request
- Выбрать направление: форкнутый репозиторий → исходный
- Добавить описание, при необходимости указать связанный issue (#НОМЕР)
- 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: теория