Red Hat System Administration II 8.2
В этом упражнении вы запланируете выполнение команд по разным расписаниям, добавив файлы конфигурации в системные каталоги crontab.
Результаты
Вы сможете:
запланировать повторяющееся системное задание для подсчета количества активных пользователей;
обновить юнит таймера
systemd, который собирает данные о действиях в системе.
Войдите на workstation как пользователь student с паролем student.
На workstation запустите сценарий lab scheduling-system start, чтобы начать упражнение. Этот сценарий обеспечивает очистку и правильную настройку среды.
[student@workstation ~]$lab scheduling-system start
На
workstationустановите SSH-подключение кserveraкак пользовательstudent.[student@workstation ~]$ssh student@servera...output omitted...[student@servera ~]$Выполните команду sudo -i, чтобы переключиться на учетную запись пользователя
root.[student@servera ~]$sudo -i[sudo] password for student:student[root@servera ~]#Запланируйте повторяющееся системное задание, которое формирует сообщение log-файла с указанием количества активных пользователей в системе. Задание должно выполняться ежедневно. Вы можете использовать команду w -h | wc -l, чтобы получить количество текущих активных пользователей в системе. Кроме того, используйте команду logger, чтобы сформировать сообщение log-файла.
Создайте файл сценария с именем
/etc/cron.daily/usercountи следующим содержимым. Используйте команду vi /etc/cron.daily/usercount, чтобы создать файл сценария.#!/bin/bash USERCOUNT=$(w -h | wc -l) logger "There are currently ${USERCOUNT} active users"Выполните команду chmod, чтобы включить разрешение на выполнение (
x) для/etc/cron.daily/usercount.[root@servera ~]#chmod +x /etc/cron.daily/usercount
Пакет sysstat предоставляет юниты
systemdс именамиsysstat-collect.timerиsysstat-collect.service. Юнит таймера каждые 10 минут запускает юнит службы для сбора данных об активности в системе с помощью сценария оболочки/usr/lib64/sa/sa1. Убедитесь, что пакет sysstat установлен, и измените файл конфигурации юнита таймера, чтобы данные об активности в системе собирались каждые 2 минуты.Выполните команду yum, чтобы установить пакет sysstat.
[root@servera ~]#yum install sysstat...output omitted...Is this ok [y/N]:y...output omitted... Installed: sysstat-11.7.3-2.el8.x86_64 lm_sensors-libs-3.4.0-17.20180522git70f7e08.el8.x86_64 Complete!Скопируйте
/usr/lib/systemd/system/sysstat-collect.timerв/etc/systemd/system/sysstat-collect.timer.[root@servera ~]#cp /usr/lib/systemd/system/sysstat-collect.timer \/etc/systemd/system/sysstat-collect.timerВажно
Не редактируйте файлы в каталоге
/usr/lib/systemd. С помощьюsystemdможно скопировать файл юнита в каталог/etc/systemd/systemи отредактировать эту копию. Процессsystemdобрабатывает измененную вами копию вместо файла в каталоге/usr/lib/systemd.Отредактируйте файл
/etc/systemd/system/sysstat-collect.timer, чтобы юнит таймера запускался каждые 2 минуты. Кроме того, замените каждое вхождение строки10 minutesна2 minutesво всем файле конфигурации юнита, включая закомментированные строки. Используйте команду vi /etc/systemd/system/sysstat-collect.timer, чтобы отредактировать файл конфигурации....
# Activates activity collector every 2 minutes[Unit]Description=Run system activity accounting tool every 2 minutes[Timer]OnCalendar=*:00/02[Install] WantedBy=sysstat.serviceВышеуказанные изменения заставляют юнит
sysstat-collect.timerзапускать каждые 2 минуты юнитsysstat-collect.service, который выполняет команду /usr/lib64/sa/sa1 1 1. Команда /usr/lib64/sa/sa1 1 1 записывает данные об активности в системе в двоичный файл в каталоге/var/log/sa.Выполните команду systemctl daemon-reload, чтобы убедиться, что
systemdвидит изменения.[root@servera ~]#systemctl daemon-reloadВыполните команду systemctl, чтобы активировать юнит таймера
sysstat-collect.timer.[root@servera ~]#systemctl enable --now sysstat-collect.timerВыполните команду while, чтобы подождать, пока в каталоге
/var/log/saне будет создан двоичный файл. Дождитесь появления приглашения оболочки.[root@servera ~]#while [ $(ls /var/log/sa | wc -l) -eq 0 ]; \do sleep 1s; doneВ команде while выше ls /var/log/sa | wc -l возвращает
0, если файла нет, и1, если он существует. Команда while определяет, равно ли значение0, и если да, она входит в цикл, который приостанавливается на одну секунду. Если файл существует, цикл while завершается.Выполните команду ls -l, чтобы убедиться, что двоичный файл в каталоге
/var/log/saбыл изменен в последние 2 минуты.[root@servera ~]#ls -l /var/log/satotal 8 -rw-r--r--. 1 root root 5156 Mar 2512:34sa25[root@servera ~]#dateMon Mar 25 12:35:32 +07 2019В вашей системе вывод вышеуказанных команд может отличаться.
Выйдите из командной оболочки пользователя
rootи из системыservera.[root@servera ~]#exitlogout[student@servera ~]$exitlogout Connection to servera closed.[student@workstation ~]$