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.