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.