Red Hat System Administration II 8.2

Упражнение под руководством преподавателя: Планирование повторяющихся пользовательских заданий

В этом упражнении вы запланируете запуск команд по повторяющемуся расписанию от имени непривилегированного пользователя с помощью команды crontab.

Результаты

Вы сможете:

  • запланировать запуск повторяющихся заданий от имени непривилегированного пользователя;

  • проверить команды, которые выполняет запланированное повторяющееся задание;

  • удалить запланированные повторяющиеся задания.

Войдите на workstation как пользователь student с паролем student.

На workstation запустите сценарий lab scheduling-cron start, чтобы начать упражнение. Этот сценарий обеспечивает очистку и правильную настройку среды.

[student@workstation ~]$ lab scheduling-cron start
  1. На workstation установите SSH-подключение к servera как пользователь student.

    [student@workstation ~]$ ssh student@servera
    ...output omitted...
    [student@servera ~]$ 
  2. От имени пользователя student запланируйте повторяющееся задание, которое добавляет текущую дату и время в файл /home/student/my_first_cron_job.txt каждые две минуты между 8:00 и 21:00. Задание должно выполняться только с понедельника по пятницу.

    Важно

    Если вы выполняете эту лабораторную работу в период времени, отличный от указанного в инструкции выше, необходимо соответствующим образом настроить системное время и дату, чтобы задание выполнилось, пока вы работаете.

    1. Выполните команду crontab -e, чтобы открыть файл crontab в текстовом редакторе по умолчанию.

      [student@servera ~]$ crontab -e
    2. Вставьте следующую строку:

      */2 08-20 * * Mon-Fri /usr/bin/date >> /home/student/my_first_cron_job.txt
    3. В текстовом редакторе нажмите Esc и введите :wq, чтобы сохранить изменения и выйти из редактора. После закрытия редактора вы увидите следующий вывод:

      ...output omitted...
      crontab: installing new crontab
      [student@servera ~]$ 

      Вышеуказанный вывод подтверждает, что задание было успешно запланировано.

  3. Выполните команду 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.

  4. Используйте команду 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.

  5. Выполните команду 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

    В вашей системе вывод может отличаться.

  6. Удалите все повторяющиеся задания, запланированные к выполнению от имени пользователя student.

    1. Выполните команду crontab -r, чтобы удалить все запланированные повторяющиеся задания для пользователя student.

      [student@servera ~]$ crontab -r
    2. Выполните команду crontab -l, чтобы убедиться, что для пользователя student нет повторяющихся заданий.

      [student@servera ~]$ crontab -l
      no crontab for student
    3. Выйдите с servera.

      [student@servera ~]$ exit
      logout
      Connection to servera closed.
      [student@workstation ~]$ 

Конец

На workstation запустите сценарий lab scheduling-cron finish, чтобы закончить упражнение. Сценарий удаляет файлы, созданные в ходе упражнения, для очистки среды.

[student@workstation ~]$ lab scheduling-cron finish

Упражнение завершено.