Как проверить, работает ли ufw программно

В большинстве сервисов (например, privoxy) существует очевидный способ для получения сервисного состояния: ps -C [servicename] Затем путем проверки кода выхода ($?): 0: услуга работала 1: не выполнение Дело обстоит не так в ufw (не распознанный как услуга?) sudo service ufw status всегда выходы с 0, работал ли ufw или нет. Какие-либо предложения для получения ufw программно через код выхода команды раньше проверяли ufw состояние?

5
задан 8 October 2014 в 11:13

2 ответа

Поскольку код выхода, возвращенный sudo ufw status, всегда 0, Вам просто нужно к grep для значения состояния:

$ sudo ufw status
Status: inactive
$ sudo ufw status | grep -qw active
$ echo $?
1

Для работы правильно необходимо использовать -w опция, от man grep:

   -w, --word-regexp
          Select  only  those  lines  containing  matches  that form whole
          words.  The test is that the matching substring must  either  be
          at  the  beginning  of  the  line,  or  preceded  by  a non-word
          constituent character.  Similarly, it must be either at the  end
          of  the  line  or  followed by a non-word constituent character.
          Word-constituent  characters  are  letters,  digits,   and   the
          underscore.

-q просто тихий режим, ничто не записано в стандартный ouput

9
ответ дан 17 November 2019 в 10:58

Для проверки состояния использования UFW

sudo ufw status verbose

, вывод подобен

my@machine:~$ sudo ufw status verbose
[sudo] password for youruser:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
1
ответ дан 17 November 2019 в 10:58

Другие вопросы по тегам:

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