![Como verificar se o ufw está sendo executado programaticamente](https://rvso.com/image/1083748/Como%20verificar%20se%20o%20ufw%20est%C3%A1%20sendo%20executado%20programaticamente.png)
Na maioria dos serviços (por exemplo, privoxy), existe uma maneira limpa de obter o status do serviço:
ps -C [servicename]
Em seguida, verificando o código de saída ($?)
: 0: o serviço estava em execução 1: não em execução Este não é o caso do ufw (não reconhecido como um serviço?) O sudo service ufw status
sempre termina com 0, esteja o ufw em execução ou não. Alguma sugestão para obter o ufw programaticamente por meio do código de saída do comando usado para verificar o status do ufw?
Responder1
Como o código de saída retornado sudo ufw status
é sempre 0, você só precisa grep
para o valor do status:
$ sudo ufw status
Status: inactive
$ sudo ufw status | grep -qw active
$ echo $?
1
Para funcionar corretamente você deve usar a -w
opção de 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
é apenas o modo silencioso, nada é gravado na saída padrão
Responder2
Para verificar o status do uso do UFW
sudo ufw status verbose
A saída é semelhante a
my@machine:~$ sudo ufw status verbose
[sudo] password for youruser:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip