Red Hat System Administration II 8.2
В этом упражнении вы запланируете запуск команд по повторяющемуся расписанию от имени непривилегированного пользователя с помощью команды crontab.
Результаты
Вы сможете:
запланировать запуск повторяющихся заданий от имени непривилегированного пользователя;
проверить команды, которые выполняет запланированное повторяющееся задание;
удалить запланированные повторяющиеся задания.
Войдите на workstation
как пользователь student
с паролем student
.
На workstation
запустите сценарий lab scheduling-cron start, чтобы начать упражнение. Этот сценарий обеспечивает очистку и правильную настройку среды.
[student@workstation ~]$
lab scheduling-cron start
На
workstation
установите SSH-подключение кservera
как пользовательstudent
.[student@workstation ~]$
ssh student@servera
...output omitted...[student@servera ~]$
От имени пользователя
student
запланируйте повторяющееся задание, которое добавляет текущую дату и время в файл/home/student/my_first_cron_job.txt
каждые две минуты между 8:00 и 21:00. Задание должно выполняться только с понедельника по пятницу.Важно
Если вы выполняете эту лабораторную работу в период времени, отличный от указанного в инструкции выше, необходимо соответствующим образом настроить системное время и дату, чтобы задание выполнилось, пока вы работаете.
Выполните команду crontab -e, чтобы открыть файл crontab в текстовом редакторе по умолчанию.
[student@servera ~]$
crontab -e
Вставьте следующую строку:
*/2 08-20 * * Mon-Fri /usr/bin/date >> /home/student/my_first_cron_job.txt
В текстовом редакторе нажмите Esc и введите
:wq
, чтобы сохранить изменения и выйти из редактора. После закрытия редактора вы увидите следующий вывод:...output omitted...
crontab: installing new crontab
[student@servera ~]$
Вышеуказанный вывод подтверждает, что задание было успешно запланировано.
Выполните команду crontab -l для просмотра списка запланированных повторяющихся заданий. Просмотрите команду, запланированную к выполнению в рамках повторяющегося задания на предыдущем шаге.
[student@servera ~]$
crontab -l
*/2 08-20 * * Mon-Fri/usr/bin/date >> /home/student/my_first_cron_job.txt
Обратите внимание, что вышеуказанное запланированное задание выполняет команду /usr/bin/date и добавляет вывод в файл
/home/student/my_first_cron_job.txt
.Используйте команду while, чтобы командная оболочка подождала создания файла
/home/student/my_first_cron_job.txt
в результате успешного выполнения запланированного повторяющегося задания. Дождитесь появления приглашения оболочки.[student@servera ~]$
while ! test -f my_first_cron_job.txt; do sleep 1s; done
Вышеуказанная команда while использует команду ! test -f, чтобы продолжать выполнять цикл команд sleep 1s, пока в каталоге
/home/student
не будет создан файлmy_first_cron_job.txt
.Выполните команду cat, чтобы убедиться, что содержимое файла
/home/student/my_first_cron_job.txt
соответствует выводу команды date.[student@servera ~]$
cat my_first_cron_job.txt
Fri Mar 22 13:56:01 IST 2019В вашей системе вывод может отличаться.
Удалите все повторяющиеся задания, запланированные к выполнению от имени пользователя
student
.Выполните команду crontab -r, чтобы удалить все запланированные повторяющиеся задания для пользователя
student
.[student@servera ~]$
crontab -r
Выполните команду crontab -l, чтобы убедиться, что для пользователя
student
нет повторяющихся заданий.[student@servera ~]$
crontab -l
no crontab for studentВыйдите с
servera
.[student@servera ~]$
exit
logout Connection to servera closed.[student@workstation ~]$