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 a execução de atualizações. Isso ajuda a reduzir as chances de o serviço não reiniciar devido a erros de configuração.

Vários aplicativos/programas ou daemons de serviço são fornecidos com comandos para verificar os arquivos de configuração quanto à correção da sintaxe. 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 a 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 verificar seus arquivos de configuração requer permissões de usuário root.

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 uma 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 os scripts Bash quanto a erros de sintaxe da seguinte maneira:

# bash -n /path/to/scriptname.sh

3. Scripts Perl

Para verificar os scripts Perl quanto a erros de sintaxe, use o seguinte comando:

# perl -c /path/to/scriptname

4. Arquivos de Unidade do Systemd

O comando \systemd-analyze verifique permite testar o arquivo de unidade systemd quanto a erros de sintaxe. Ele carrega arquivos de unidade e imprime avisos se algum erro for detectado.

Por padrão, ele carrega os arquivos especificados na linha de comando como um 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 sanidade das chaves, emita o comando a seguir. 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 do 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 despejada 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

Como alternativa, 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 TCP/HTTP HAProxy

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 quanto a 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. Apache Tomcat

O servidor web Tomcat permite a verificação de sintaxe de configuração básica. 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 libras

Você pode analisar o arquivo de configuração do servidor Pound antes de iniciar o servidor. Execute o comando pound com o sinalizador -c sem nenhum 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 a sintaxe do arquivo varnishd VCL (Varnish Configuration Language) quanto a erros, use o comando a seguir. 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 Squid Proxy

Para passar o arquivo de configuração do squid para o servidor de cache do proxy Squid, emita o comando a seguir. A opção -k junto com os subcomandos parse ou debug, diz ao daemon squid para analisar o arquivo de configuração ou habilitar 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 comando a seguir. 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 executar o 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, alterne para a conta de usuário do banco de dados postgres e acesse o shell psql. Em seguida, execute o comando para identificar erros em 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 sua 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 de Monitoramento

Execute o comando monit com a sinalização -t para realizar uma verificação de sintaxe para o arquivo de controle Monit padrão. Você pode especificar um arquivo de controle específico, use 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 os arquivos de configuração do Postfix quanto a erros de sintaxe.

# 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 habilita o modo de depuração e também verifica 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 nomeado DNS da seguinte forma:

# named-checkconf /etc/named.conf

28. NTP – Network Time Protocol

A sintaxe de configuração do ntpd pode ser testada usando o seguinte comando, onde o sinalizador -d habilita o modo de depuração detalhado, -f especifica o nome do arquivo de desvio de frequência e -n não implica em 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. Logrotar

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 o que tínhamos para você neste guia. Compartilhe seus pensamentos 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 o prazer de adicionar seus exemplos ao guia.