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.