30 maneres de validar fitxers de configuració o scripts a Linux


La comprovació i/o la prova de la sintaxi de la configuració és un pas clau a realitzar després de fer canvis al fitxer de configuració d'una aplicació o servei o fins i tot després d'executar actualitzacions. Això ajuda a reduir les possibilitats que el servei no es reiniciï a causa d'errors de configuració.

Diverses aplicacions/programes o dimonis de servei s'envien amb ordres per comprovar la sintaxi correcta dels fitxers de configuració. Hem elaborat una llista d'aplicacions i serveis comuns als sistemes Linux i com provar o validar els seus fitxers de configuració.

Nota: Utilitzeu-lo si no heu iniciat sessió en un servidor com a usuari root, recordeu-vos d'utilitzar l'ordre sudo quan sigui necessari mentre invoqueu una ordre perquè alguns serveis s'executen amb privilegis root i comprovar els seus fitxers de configuració requereix permisos d'usuari root.

1. Comandament Sudo

Podeu comprovar la sintaxi del fitxer de configuració sudo mitjançant l'ordre visudo, que admet una opció de línia d'ordres --check o -c per validar només un fitxer sense edició. L'opció -f mostra el missatge d'error i obre el fitxer per editar-lo:

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

2. Bash Script

Podeu comprovar els scripts de Bash per detectar errors de sintaxi de la següent manera:

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

3. Scripts Perl

Per comprovar si hi ha errors de sintaxi als scripts de Perl, utilitzeu l'ordre següent:

# perl -c /path/to/scriptname

4. Fitxers d'unitat Systemd

L'ordre \systemd-analyze verify permet provar el fitxer d'unitat systemd per detectar errors de sintaxi. Carrega els fitxers d'unitat i imprimeix avisos si es detecta algun error.

De manera predeterminada, carrega els fitxers especificats a la línia d'ordres com a argument i qualsevol altra unitat a la qual fan referència:

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

5. Servidor OpenSSH

Per comprovar la validesa del fitxer de configuració sshd i la seny de les claus, emeteu l'ordre següent. Per comprovar un fitxer de configuració concret, especifiqueu-lo amb el senyalador -f:

# sshd -t

6. Servidor web NGINX

Per comprovar el fitxer de configuració NGINX, executeu l'ordre nginx amb el senyalador -t. Per especificar un fitxer de configuració diferent, utilitzeu el senyalador -c:

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

7. PHP-FPM

Per comprovar el fitxer de configuració php-fpm, executeu l'ordre següent. Tingueu en compte que cridar el senyalador -t dues vegades (-tt) fa que la configuració s'aboqui abans de sortir:

# php-fpm -t
OR
# php-fpm -tt

8. Servidor web Apache

A continuació, podeu comprovar el fitxer de configuració del servidor web Apache mitjançant l'ordre següent:

# apachectl configtest

Alternativament, podeu utilitzar les ordres següents a les distribucions basades en RedHat:

# httpd -t

A les distribucions basades en Debian, executeu:

 
# apache2ctl -t

9. Equilibrador de càrrega TCP/HTTP HAProxy

La configuració d'HAProxy es pot provar mitjançant l'ordre següent on l'opció -f especifica el fitxer i -c activa el mode de prova:

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

10. Servidor HTTP Lighttpd

Executeu l'ordre següent per provar la sintaxi del fitxer de configuració de Lighttpd. L'opció de línia d'ordres -t permet a Lighttpd provar el fitxer de configuració predeterminat per detectar errors de sintaxi i sortir. Utilitzeu la marca -f per especificar un fitxer de configuració personalitzat:

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

11. Apache Tomcat

El servidor web Tomcat permet la comprovació bàsica de la sintaxi de la configuració. Primer, aneu al vostre directori d'instal·lació de Tomcat i emeteu l'ordre següent:

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

12. Proxy invers de la lliura

Podeu analitzar el fitxer de configuració del servidor Pound abans d'iniciar el servidor. Executeu l'ordre pound amb el senyalador -c sense cap altre argument per comprovar el fitxer de configuració predeterminat. Podeu especificar un fitxer de configuració diferent mitjançant l'opció de línia d'ordres -f:

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

13. Accelerador HTTP de Varnishd

Per comprovar si hi ha errors a la sintaxi del fitxer VCL (Varnish Configuration Language) de varnishd, utilitzeu l'ordre següent. Si tot està bé, el vernís abocarà la configuració generada, en cas contrari, mostrarà un número de línia específic al fitxer que té un error:

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

14. Servidor de memòria cau Squid Proxy

Per passar el fitxer de configuració de Squid per al servidor de memòria cau Squid, emet l'ordre següent. L'opció -k juntament amb les subordres parse o debug, diuen al dimoni squid que analitzi el fitxer de configuració o habiliti el mode de depuració respectivament:

# squid -k parse
# squid -k debug

15. Servidor web Caddy

Per exposar qualsevol error a la configuració del servidor web del Caddy, emet l'ordre següent. El primer comprova la configuració per defecte, alternativament, utilitzeu l'opció de línia d'ordres --config per especificar un fitxer de configuració:

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

16. Servidor FTP vsftpd

Executeu l'ordre següent per provar el fitxer de configuració del servidor FTP vsftpd:

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

17. Servidor DHCPD

Executeu l'ordre dhcpd amb el senyalador -t per comprovar la sintaxi de configuració del servidor dhcpd:

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

18. Servidor de bases de dades MySQL

Utilitzeu l'ordre següent per provar la sintaxi del fitxer de configuració del servidor de bases de dades MySQL. Després d'executar l'ordre, si no hi ha errors, el servidor finalitza amb un codi de sortida de 0, en cas contrari, mostra un missatge de diagnòstic i finalitza amb un codi de sortida d'1:

# mysqld --validate-config

19. Servidor de bases de dades MariaDB

La mateixa ordre que s'utilitza per al servidor de bases de dades MariaDB també funciona per comprovar la sintaxi del fitxer de configuració del servidor de bases de dades Mariadb:

# mysqld --validate-config

20. Servidor PostgreSQL

La captura de pantalla següent mostra un error al fitxer de configuració de PostgreSQL.

Per detectar aquest error, canvieu al compte d'usuari de la base de dades de postgres i accediu al shell psql. A continuació, executeu l'ordre per identificar errors al vostre fitxer de configuració:

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

21. Eina de seguiment de Nagios

Per verificar la vostra configuració de Nagios, executeu l'ordre nagios amb la marca -v.

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

22. Eina de seguiment de Monit

Executeu l'ordre monit amb la marca -t per realitzar una comprovació de sintaxi del fitxer de control de Monit predeterminat. Podeu especificar un fitxer de control concret, utilitzeu el senyalador -c:

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

23. Servidor de correu Postfix

L'ordre següent us ajudarà a comprovar si hi ha errors de sintaxi als fitxers de configuració de Postfix.

# postfix check

Aquesta segona ordre és més detallada que la primera:

# postfix -vvv

24. Servidor IMAP Dovecot

Comproveu la sintaxi de configuració del servidor IMAP de Dovecot mitjançant l'ordre doveconf. Sortirà amb un codi d'error zero si tot està bé, en cas contrari, surt amb un codi d'error diferent de zero i mostra el missatge d'error:

# doveconf 1>/dev/null
# echo $?

25. Servidor de fitxers Samba

Podeu comprovar el fitxer de configuració del servidor de fitxers Samba mitjançant l'ordre següent:

# testparm -v

26. Syslogd/Rsyslogd

Quan invoqueu l'ordre rsyslod amb l'opció -N1, habilitarà el mode de depuració i també comprovarà si hi ha errors de sintaxi al fitxer de configuració predeterminat. Utilitzeu la marca -f per llegir un fitxer de configuració personalitzat:

# rsyslogd -N1

27. Servidor DNS (BIND).

Podeu comprovar el fitxer de configuració amb nom DNS de la següent manera:

# named-checkconf /etc/named.conf

28. NTP – Network Time Protocol

La sintaxi de configuració ntpd es pot provar mitjançant l'ordre següent, on el senyalador -d activa el mode de depuració detallat, -f especifica el nom del fitxer de deriva de freqüència i -n no implica cap bifurcació:

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

29. OpenStack-Ansible

Executeu l'ordre següent per comprovar la sintaxi d'un fitxer de configuració OpenStack-ansible:

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

30. Logrotació

Per depurar un fitxer de configuració de logroate (instal·lació de rotació de registre), executeu l'ordre logrotate amb l'opció -d i especifiqueu el fitxer de configuració:

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

Això és tot el que teníem per a tu en aquesta guia. Comparteix els teus pensaments amb nosaltres o fes preguntes mitjançant el formulari de comentaris que hi ha a continuació. També podeu compartir més exemples de com comprovar la sintaxi de configuració de qualsevol aplicació o servei que no s'inclou aquí. Amb molt de gust afegirem els vostres exemples a la guia.