Ícone do site SOLOWEB Tecnologia

Validando arquivos de configuração no Linux

No post de hoje vamos mostrar como validar arquivos de configuração 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 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 a exatidã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.

Observação: 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.

Sudo Command

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

# visudo -c /etc/sudoers
ou
# visudo -c /etc/sudoers.d/my_config
ou
# visudo -f /etc/sudoers.d/my_config

Bash Script

Você pode verificar os scripts Bash quanto a erros de sintaxe da seguinte maneira:

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

Perl Scripts

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

# perl -c /path/to/scriptname

Systemd Unit Files

O comando “ systemd-analyze verify ” 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

OpenSSH Server

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

# sshd -t

NGINX Web Server

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

# nginx -t
ou
# nginx -t -c /etc/nginx/conf.d/example.com.conf

PHP-FPM

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

# php-fpm -t
ou
# php-fpm -tt

Apache Web Server

Você pode 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

HAProxy TCP/HTTP Load Balancer

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

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

Lighttpd HTTP Server

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

# lighttpd -t
ou
# lighttpd -t -f /path/to/config/file

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
ou
# $TOMCAT_HOME/bin/catalina.sh configtest

Pound Reverse Proxy

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

# pound -c
ou
# pound -f /path/to/config/file -c

Varnishd HTTP Accelerator

Para verificar a sintaxe do arquivo varnishd VCL ( Varnish Configuration Language ) quanto a erros, 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
ou
# varnishd -f /etc/varnish/default.vcl -C

Squid Proxy Caching Server

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

# squid -k parse
# squid -k debug

Caddy Web Server

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 –config opção de linha de comando para especificar um arquivo de configuração:

# caddy validate
ou
# caddy validate --config /path/to/config/file

vsftpd FTP Server

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

# vsftpd
ou
# vsftpd -olisten=NO /path/to/vsftpd.testing.conf

DHCPD Server

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

# dhcpd -t
ou
# dhcpd -t -cf /path/to/dhcpd.conf

MySQL Database Server e MariaDB Database Server

Use o seguinte comando 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 finaliza com o código de saída 0 , caso contrário, exibe uma mensagem de diagnóstico e encerra com o código de saída 1 :

# mysqld --validate-config

Nagios Monitoring Tool

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

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

Monit Monitoring Tool

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

# monit -t
ou
# monit -t -c path/to/control/file

Postfix Mail Server

O comando a seguir ajudará você 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

Dovecot IMAP Server

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 $?

Samba File Server

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

# testparm -v

Syslogd/Rsyslogd

Quando você chama o comando rsyslod com a -N1 opção, ele ativa o modo de depuração e também verifica o arquivo de configuração padrão quanto a erros de sintaxe. Use o -f sinalizador para ler um arquivo de configuração personalizado:

# rsyslogd -N1

DNS (BIND) Server

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

# named-checkconf /etc/named.conf

NTP – Network Time Protocol

A sintaxe de configuração do ntpd pode ser testada usando o seguinte comando, onde o -d sinalizador 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

OpenStack-Ansible

Execute o seguinte comando para verificar a sintaxe de um arquivo de configuração OpenStack-ansible:

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

Logrotate

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

# logrotate -d /etc/logrotate.d/nginx

Sair da versão mobile