Ricerca nel sito web

30 modi per convalidare file di configurazione o script in Linux


Il controllo e/o il test della sintassi della configurazione è un passaggio fondamentale da eseguire dopo aver apportato modifiche al file di configurazione di un'applicazione o di un servizio o anche dopo aver eseguito gli aggiornamenti. Ciò aiuta a ridurre le possibilità che il servizio non riesca a riavviarsi a causa di errori di configurazione.

Diverse applicazioni/programmi o demoni di servizio vengono forniti con comandi per verificare la correttezza della sintassi dei file di configurazione. Abbiamo messo insieme un elenco di applicazioni e servizi comuni sui sistemi Linux e come testare o convalidare i relativi file di configurazione.

Nota: da utilizzare se non hai effettuato l'accesso a un server come utente root, ricorda di utilizzare il comando sudo dove necessario mentre invochi un comando perché alcuni servizi vengono eseguiti con privilegi root e il controllo dei file di configurazione richiede root autorizzazioni utente.

1. Comando Sudo

Puoi controllare la sintassi del file di configurazione sudo utilizzando il comando visudo, che supporta un'opzione della riga di comando --check o -c solo per convalidare un file senza alcuna modifica. L'opzione -f visualizza il messaggio di errore e apre il file per la modifica:

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

2. Script Bash

Puoi controllare gli script Bash per eventuali errori di sintassi come segue:

bash -n /path/to/scriptname.sh

3. Script Perl

Per verificare la presenza di errori di sintassi negli script Perl, utilizzare il seguente comando:

perl -c /path/to/scriptname

4. File di unità Systemd

Il comando "systemd-analyze verify" consente di testare il file dell'unità systemd per eventuali errori di sintassi. Carica file di unità e stampa avvisi se vengono rilevati errori.

Per impostazione predefinita, carica i file specificati sulla riga di comando come argomento e qualsiasi altra unità a cui fanno riferimento:

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

5. Server OpenSSH

Per verificare la validità del file di configurazione sshd e l'integrità delle chiavi, emettere il seguente comando. Per controllare un particolare file di configurazione, specificalo utilizzando il flag -f:

sshd -t

6. Server Web NGINX

Per controllare il file di configurazione NGINX, esegui il comando nginx con il flag -t. Per specificare un file di configurazione diverso, utilizza il flag -c:

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

7. PHP-FPM

Per controllare il file di configurazione php-fpm, esegui il seguente comando. Tieni presente che richiamare due volte il flag -t (-tt) provoca il dump della configurazione prima di uscire:

php-fpm -t
OR
php-fpm -tt

8. Server Web Apache

Puoi quindi controllare il file di configurazione del server web Apache utilizzando il seguente comando:

apachectl configtest

In alternativa, puoi utilizzare i seguenti comandi sulle distribuzioni basate su RedHat:

httpd -t

Sulle distribuzioni basate su Debian, esegui:

 
apache2ctl -t

9. Bilanciatore del carico TCP/HTTP HAProxy

La configurazione di HAProxy può essere testata utilizzando il seguente comando in cui l'opzione -f specifica il file e -c abilita la modalità test:

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

10. Server HTTP leggero

Esegui il comando seguente per testare la sintassi del file di configurazione di Lighttpd. L'opzione della riga di comando -t consente a Lighttpd di testare il file di configurazione predefinito per errori di sintassi e di uscire. Utilizza il flag -f per specificare un file di configurazione personalizzato:

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

11.Apache Tomcat

Il server Web Tomcat consente il controllo della sintassi della configurazione di base. Innanzitutto, spostati nella directory di installazione di Tomcat ed emetti il seguente comando:

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

12. Proxy inverso della sterlina

Puoi analizzare il file di configurazione del server Pound prima di avviare il server. Esegui il comando pound con il flag -c senza nessun altro argomento per controllare il file di configurazione predefinito. Puoi specificare un file di configurazione diverso utilizzando l'opzione della riga di comando -f:

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

13. Acceleratore HTTP Varnishd

Per verificare la presenza di eventuali errori nella sintassi del file varnishd VCL (Varnish Configuration Language), utilizzare il comando seguente. Se tutto è a posto, Paint scaricherà la configurazione generata, altrimenti visualizzerà un numero di riga specifico nel file che presenta un errore:

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

14. Server di memorizzazione nella cache proxy Squid

Per passare il file di configurazione Squid per il server di caching proxy Squid, emettere il comando seguente. L'opzione -k insieme ai sottocomandi parse o debug, dicono al demone squid rispettivamente di analizzare il file di configurazione o abilitare la modalità di debug:

squid -k parse
squid -k debug

15. Server Web Caddy

Per esporre eventuali errori nella configurazione del server web Caddy, emettere il seguente comando. Il primo controlla la configurazione predefinita, in alternativa, utilizza l'opzione della riga di comando --config per specificare un file di configurazione:

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

16. Server FTP vsftpd

Esegui il comando seguente per testare il file di configurazione per il server FTP vsftpd:

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

17. Server DHCPD

Esegui il comando dhcpd con il flag -t per verificare la sintassi di configurazione del server dhcpd:

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

18. Server di database MySQL

Utilizza il seguente comando per testare la sintassi del file di configurazione del server database MySQL. Dopo aver eseguito il comando, se non ci sono errori, il server termina con un codice di uscita 0, altrimenti visualizza un messaggio diagnostico e termina con un codice di uscita 1 :

mysqld --validate-config

19. Server database MariaDB

Lo stesso comando utilizzato per il server database MariaDB funziona anche per controllare la sintassi del file di configurazione del server database Mariadb:

mysqld --validate-config

20. Server PostgreSQL

La schermata seguente mostra un errore nel file di configurazione PostgreSQL.

Per rilevare un errore di questo tipo, passa all'account utente del database postgres e accedi alla shell psql. Quindi esegui il comando per identificare gli errori nel file di configurazione:

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

21. Strumento di monitoraggio Nagios

Per verificare la configurazione di Nagios, esegui il comando nagios con il flag -v.

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

22. Strumento di monitoraggio Monit

Esegui il comando monit con il flag -t per eseguire un controllo della sintassi per il file di controllo Monit predefinito. Puoi specificare un particolare file di controllo, usa il flag -c:

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

23. Server di posta Postfix

Il seguente comando ti aiuterà a verificare la presenza di errori di sintassi nei file di configurazione di Postfix.

postfix check

Questo secondo comando è più dettagliato del primo:

postfix -vvv

24. Server IMAP Dovecot

Controlla la sintassi di configurazione del server Dovecot IMAP utilizzando il comando doveconf. Uscirà con un codice di errore pari a zero se tutto è OK, altrimenti esce con un codice di errore diverso da zero e visualizza il messaggio di errore:

doveconf 1>/dev/null
echo $?

25. File server Samba

Puoi controllare il file di configurazione del file server Samba utilizzando il seguente comando:

testparm -v

26. Syslogd/Rsyslogd

Quando invochi il comando rsyslod con l'opzione -N1, abiliterà la modalità debug e controllerà anche il file di configurazione predefinito per eventuali errori di sintassi. Utilizza il flag -f per leggere un file di configurazione personalizzato:

rsyslogd -N1

27. Server DNS (BIND).

Puoi controllare il file di configurazione DNS nominato come segue:

named-checkconf /etc/named.conf

28. NTP – Protocollo temporale di rete

La sintassi di configurazione ntpd può essere testata utilizzando il seguente comando, dove il flag -d abilita la modalità di debug dettagliata, -f specifica il nome del file di deriva della frequenza e -n non implica alcun fork:

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

29. OpenStack-Ansible

Esegui il comando seguente per verificare la sintassi di un file di configurazione OpenStack-ansible:

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

30. Logrotate

Per eseguire il debug di un file di configurazione logroate (funzione di rotazione dei log), esegui il comando logrotate con l'opzione -d e specifica il file di configurazione:

logrotate -d /etc/logrotate.d/nginx

Questo è tutto ciò che abbiamo per te in questa guida. Condividi i tuoi pensieri con noi o fai domande tramite il modulo di feedback qui sotto. Puoi anche condividere ulteriori esempi su come controllare la sintassi di configurazione di qualsiasi applicazione o servizio non elencato qui. Saremo lieti di aggiungere i tuoi esempi alla guida.