Приведет ли добавление пользователя в cron.deny к завершению текущего задания для этого пользователя?

Логическими операторами в оболочке являются &&и ||. &и |делают очень разные вещи (запускают фоновую задачу и устанавливают канал между двумя процессами соответственно ).


#!/bin/sh

number1=1

while [ "$number1" -le 12 ]; do

    number2=$( some command )

    case $number2 in
        200)
            break
            ;;
        ""|404)
            # nothing
            ;;
        *)
            printf 'Unexpected: number2 = %s\n' "$number2" >&2
            exit 1
    esac

    number1=$(( number1 + 1 ))

done

Число в $number2выглядит как код состояния HTTP. Проверка значения в операторе case, как указано выше, позволит вам выбрать правильное действие при любом количестве кодов состояния, не превращая шелл-код в громоздкий беспорядок из операторов if-. Например, действие для любого кода сбоя клиента или сервера может быть вызвано шаблоном 4??|5??.

Это также логически разделяет семантику двух переменных. Переменная number1управляет количеством итераций, в то время как number2предназначена исключительно для управления действием, которое должно быть выполнено на основе результата вашей загадочной команды.

0
08.12.2020, 00:28
1 ответ

Добавление пользователя в cron.denyне приведет к остановке/прекращению текущего задания для этого пользователя. Добавление пользователя в cron.denyтолько заблокирует возможность этого пользователя использовать только команду crontab.

изman crontab:

If the /etc/cron.allow file exists, then you must be listed (one user per line) therein in order to be allowed to use this command. If the /etc/cron.allow file does not exist but the /etc/cron.deny file does exist, then you must not be listed in the /etc/cron.deny file in order to use this command.

Значение

this commandвыше относится к самой команде crontab.

0
18.03.2021, 22:44

Теги

Похожие вопросы