Pesquisa de site

30 maneiras de validar arquivos de configuração ou scripts no Linux


A verificação e/ou teste da sintaxe de configuração é uma etapa fundamental a ser executada após fazer alterações no arquivo de configuração de um aplicativo ou serviço ou mesmo após executar atualizações. Isso ajuda a reduzir as chances de falha na reinicialização do serviço devido a erros de configuração.

Vários aplicativos/programas ou daemons de serviço são fornecidos com comandos para verificar a correção da sintaxe nos arquivos de configuração. Reunimos uma lista de aplicativos e serviços comuns em sistemas Linux e como testar ou validar seus arquivos de configuração.

Nota: Use se você não estiver conectado em um servidor como usuário root, lembre-se de usar o comando sudo quando necessário ao invocar um comando porque alguns serviços são executados com privilégios de root e a verificação de seus arquivos de configuração requer root permissões de usuário.

1. Comando Sudo

Você pode verificar a sintaxe do arquivo de configuração sudo usando o comando visudo, que suporta uma opção de linha de comando --check ou -c para validar apenas um arquivo sem edição. A opção -f exibe a mensagem de erro e abre o arquivo para edição:

visudo -c /etc/sudoers
OR
visudo -c /etc/sudoers.d/my_config
OR
visudo -f /etc/sudoers.d/my_config

2. Script Bash

Você pode verificar scripts Bash em busca de erros de sintaxe da seguinte maneira:

bash -n /path/to/scriptname.sh

3. Scripts Perl

Para verificar se há erros de sintaxe nos scripts Perl, use o seguinte comando:

perl -c /path/to/scriptname

4. Arquivos de unidade Systemd

O comando “systemd-analyze verify” permite testar o arquivo da unidade systemd em busca de erros de sintaxe. Ele carrega arquivos de unidade e imprime avisos se algum erro for detectado.

Por padrão, ele carrega arquivos especificados na linha de comando como argumento e quaisquer outras unidades referenciadas por eles:

systemd-analyze verify /etc/systemd/system/test.service

5. Servidor OpenSSH

Para verificar a validade do arquivo de configuração sshd e a integridade das chaves, emita o seguinte comando. Para verificar um arquivo de configuração específico, especifique-o usando o sinalizador -f:

sshd -t

6. Servidor Web NGINX

Para verificar o arquivo de configuração NGINX, execute o comando nginx com o sinalizador -t. Para especificar um arquivo de configuração diferente, use o sinalizador -c:

nginx -t
OR
nginx -t -c /etc/nginx/conf.d/example.com.conf

7. PHP-FPM

Para verificar o arquivo de configuração php-fpm, execute o seguinte comando. Observe que chamar o sinalizador -t duas vezes (-tt) faz com que a configuração seja descartada antes de sair:

php-fpm -t
OR
php-fpm -tt

8. Servidor Web Apache

Você pode então verificar o arquivo de configuração do servidor web Apache usando o seguinte comando:

apachectl configtest

Alternativamente, você pode usar os seguintes comandos em distribuições baseadas em RedHat:

httpd -t

Em distribuições baseadas em Debian, execute:

 
apache2ctl -t

9. Balanceador de carga HAProxy TCP/HTTP

A configuração do HAProxy pode ser testada usando o seguinte comando onde a opção -f especifica o arquivo e -c habilita o modo de teste:

haproxy -f /etc/haproxy/haproxy.cfg -c

10. Servidor HTTP Lighttpd

Execute o seguinte comando para testar a sintaxe do arquivo de configuração do Lighttpd. A opção de linha de comando -t permite que o Lighttpd teste o arquivo de configuração padrão em busca de erros de sintaxe e saia. Use o sinalizador -f para especificar um arquivo de configuração personalizado:

lighttpd -t
OR
lighttpd -t -f /path/to/config/file

11. ApacheTomcat

O servidor web Tomcat permite a verificação básica da sintaxe da configuração. Primeiro, vá para o diretório de instalação do Tomcat e emita o seguinte comando:

./bin/catalina.sh configtest
OR
$TOMCAT_HOME/bin/catalina.sh configtest

12. Proxy reverso de libra

Você pode analisar o arquivo de configuração do servidor Pound antes de iniciá-lo. Execute o comando pound com o sinalizador -c sem qualquer outro argumento para verificar o arquivo de configuração padrão. Você pode especificar um arquivo de configuração diferente usando a opção de linha de comando -f:

pound -c
OR
pound -f /path/to/config/file -c

13. Acelerador HTTP Varnishd

Para verificar se há erros na sintaxe do arquivo varnishd VCL (Varnish Configuration Language), use o seguinte comando. Se tudo estiver OK, o verniz irá despejar a configuração gerada, caso contrário, exibirá um número de linha específico no arquivo que contém um erro:

varnishd -C
OR
varnishd -f /etc/varnish/default.vcl -C

14. Servidor de cache proxy Squid

Para passar o arquivo de configuração do squid para o servidor de cache proxy Squid, emita o seguinte comando. A opção -k junto com os subcomandos parse ou debug, diz ao daemon squid para analisar o arquivo de configuração ou ativar o modo de depuração respectivamente:

squid -k parse
squid -k debug

15. Servidor Web Caddy

Para expor quaisquer erros na configuração do servidor web Caddy, emita o seguinte comando. O primeiro verifica a configuração padrão, alternativamente, use a opção de linha de comando --config para especificar um arquivo de configuração:

caddy validate
OR
caddy validate --config /path/to/config/file

16. Servidor FTP vsftpd

Execute o seguinte comando para testar o arquivo de configuração do servidor FTP vsftpd:

vsftpd
OR
vsftpd -olisten=NO /path/to/vsftpd.testing.conf

17. Servidor DHCPD

Execute o comando dhcpd com o sinalizador -t para verificar a sintaxe de configuração do servidor dhcpd:

dhcpd -t
OR
dhcpd -t -cf /path/to/dhcpd.conf

18. Servidor de banco de dados MySQL

Use o comando a seguir para testar a sintaxe do arquivo de configuração do servidor de banco de dados MySQL. Após a execução do comando, se não houver erros, o servidor termina com um código de saída 0, caso contrário, exibe uma mensagem de diagnóstico e termina com um código de saída 1 :

mysqld --validate-config

19. Servidor de banco de dados MariaDB

O mesmo comando usado para o servidor de banco de dados MariaDB também funciona para verificar a sintaxe do arquivo de configuração do servidor de banco de dados Mariadb:

mysqld --validate-config

20. Servidor PostgreSQL

A captura de tela a seguir mostra um erro no arquivo de configuração do PostgreSQL.

Para detectar esse erro, mude para a conta de usuário do banco de dados postgres e acesse o shell psql. Em seguida, execute o comando para identificar erros no seu arquivo de configuração:

postgres=# select sourcefile, name,sourceline,error from pg_file_settings where error is not null;

21. Ferramenta de monitoramento Nagios

Para verificar a configuração do Nagios, execute o comando nagios com a sinalização -v.

nagios -v /usr/local/nagios/etc/nagios.cfg

22. Ferramenta de monitoramento Monit

Execute o comando monit com o sinalizador -t para realizar uma verificação de sintaxe do arquivo de controle padrão do Monit. Você pode especificar um arquivo de controle específico, usando o sinalizador -c:

monit -t
OR
monit -t -c path/to/control/file

23. Servidor de correio Postfix

O comando a seguir irá ajudá-lo a verificar se há erros de sintaxe nos arquivos de configuração do Postfix.

postfix check

Este segundo comando é mais detalhado que o primeiro:

postfix -vvv

24. Servidor IMAP Dovecot

Verifique a sintaxe de configuração do servidor Dovecot IMAP usando o comando doveconf. Ele sairá com um código de erro zero se tudo estiver OK, caso contrário, sairá com um código de erro diferente de zero e exibirá a mensagem de erro:

doveconf 1>/dev/null
echo $?

25. Servidor de arquivos Samba

Você pode verificar o arquivo de configuração do servidor de arquivos Samba usando o seguinte comando:

testparm -v

26. Syslogd/Rsyslogd

Quando você invoca o comando rsyslod com a opção -N1, ele ativará o modo de depuração e também verificará se há erros de sintaxe no arquivo de configuração padrão. Use o sinalizador -f para ler um arquivo de configuração personalizado:

rsyslogd -N1

27. Servidor DNS (BIND)

Você pode verificar o arquivo de configuração DNS nomeado da seguinte maneira:

named-checkconf /etc/named.conf

28. NTP – Protocolo de Tempo de Rede

A sintaxe de configuração ntpd pode ser testada usando o seguinte comando, onde o sinalizador -d ativa o modo de depuração detalhado, -f especifica o nome do arquivo de desvio de frequência , e -n não implica bifurcação:

ntpd -d -f /etc/ntp.conf -n

29. OpenStack-Ansible

Execute o seguinte comando para verificar a sintaxe de um arquivo de configuração compatível com OpenStack:

openstack-ansible setup-infrastructure.yml --syntax-check

30. Logrotação

Para depurar um arquivo de configuração logroate (recurso de rotação de log), execute o comando logrotate com a opção -d e especifique o arquivo de configuração:

logrotate -d /etc/logrotate.d/nginx

Isso é tudo que tínhamos para você neste guia. Compartilhe suas idéias conosco ou faça perguntas por meio do formulário de feedback abaixo. Você também pode compartilhar mais exemplos de como verificar a sintaxe de configuração de quaisquer aplicativos ou serviços não listados aqui. Teremos prazer em adicionar seus exemplos ao guia.