配置语法检查和/或测试是更改应用程序或服务的配置文件甚至运行更新后要执行的关键步骤。这有助于减少由于配置错误而导致服务无法重新启动的可能性。
一些应用程序/程序或服务守护程序附带了检查配置文件语法正确性的命令。我们整理了 Linux 系统上常见应用程序和服务的列表,以及如何测试或验证其配置文件。
笔记:如果你没有以root用户登录服务器的话使用,记得使用在调用命令时必要时,因为某些服务以 root 权限运行,并且检查其配置文件需要 root 用户权限。
1. 须藤命令
您可以检查语法使用维苏多命令,它支持--check
或者-c
命令行选项仅验证文件而不进行编辑。这-f
选项显示错误消息并打开文件进行编辑:
# visudo -c /etc/sudoers OR # visudo -c /etc/sudoers.d/my_config OR # visudo -f /etc/sudoers.d/my_config

2.Bash脚本
您可以检查 Bash 脚本是否存在语法错误,如下所示:
# bash -n /path/to/scriptname.sh

3.Perl 脚本
要检查 Perl 脚本的语法错误,请使用以下命令:
# perl -c /path/to/scriptname
4.Systemd 单元文件
这 ”systemd-分析验证” 命令允许测试 systemd 单元文件是否存在语法错误。如果检测到任何错误,它会加载单元文件并打印警告。
默认情况下,它加载在命令行上指定为参数的文件以及它们引用的任何其他单元:
# systemd-analyze verify /etc/systemd/system/test.service

5.OpenSSH服务器
为了检查该信息的有效性以及按键的完整性,请发出以下命令。要检查特定的配置文件,请使用-f
旗帜:
# sshd -t
6.NGINX网络服务器
要检查NGINX配置文件,运行nginx命令与-t
旗帜。要指定不同的配置文件,请使用-c
旗帜:
# nginx -t OR # nginx -t -c /etc/nginx/conf.d/example.com.conf

7.PHP-FPM
要检查php-fpm配置文件,运行以下命令。请注意,调用-t
标记两次(-tt)
导致配置在退出前被转储:
# php-fpm -t OR # php-fpm -tt
8. Apache Web 服务器
然后您可以检查阿帕奇使用以下命令配置 Web 服务器配置文件:
# apachectl configtest
或者,您可以使用以下命令:
# httpd -t
在, 跑步:
# apache2ctl -t
9.HAProxy TCP/HTTP 负载均衡器
可以使用以下命令测试 HAProxy 的配置,其中-f
选项指定文件和-c
启用测试模式:
# haproxy -f /etc/haproxy/haproxy.cfg -c

10.Lighttpd HTTP 服务器
运行以下命令来测试 Lighttpd 的配置文件语法。这-t
命令行选项使 Lighttpd 能够测试默认配置文件的语法错误并退出。使用-f
指定自定义配置文件的标志:
# lighttpd -t OR # lighttpd -t -f /path/to/config/file
11.阿帕奇汤姆猫
Tomcat Web 服务器允许进行基本配置语法检查。首先,进入 tomcat 安装目录并发出以下命令:
# ./bin/catalina.sh configtest OR # $TOMCAT_HOME/bin/catalina.sh configtest
12.磅反向代理
您可以解析磅启动服务器之前的服务器配置文件。运行磅命令与-c
不带任何其他参数的标志来检查默认配置文件。您可以使用以下命令指定不同的配置文件-f
命令行选项:
# pound -c OR # pound -f /path/to/config/file -c
13.Varnishd HTTP 加速器
要检查涂漆的 虚拟CL(Varnish 配置语言) 文件语法是否有任何错误,请使用以下命令。如果一切正常,清漆将转储生成的配置,否则,它将显示文件中存在错误的特定行号:
# varnishd -C OR # varnishd -f /etc/varnish/default.vcl -C
14.Squid代理缓存服务器
要传递 Squid 代理缓存服务器的鱿鱼配置文件,请发出以下命令。这-k
选项与 parse 或 debug 子命令一起,告诉squid守护进程分别解析配置文件或启用调试模式:
# squid -k parse # squid -k debug
15.球童网络服务器
暴露任何错误配置,发出以下命令。第一个检查默认配置,或者使用--config
指定配置文件的命令行选项:
# caddy validate OR # caddy validate --config /path/to/config/file
16.vsftpd FTP 服务器
运行以下命令来测试配置文件VSFTPDFTP服务器:
# vsftpd OR # vsftpd -olisten=NO /path/to/vsftpd.testing.conf
17. DHCPD 服务器
运行dhcpd命令与-t
标志来检查 dhcpd 服务器的配置语法:
# dhcpd -t OR # dhcpd -t -cf /path/to/dhcpd.conf
18.MySQL数据库服务器
使用以下命令来测试MySQL数据库服务器配置文件语法。运行命令后,如果没有错误,服务器将终止,退出代码为0,否则,它会显示一条诊断消息并以退出代码终止1:
# mysqld --validate-config
19.MariaDB数据库服务器
使用相同的命令玛丽亚数据库数据库服务器还可以用于检查 Mariadb 数据库服务器配置文件语法:
# mysqld --validate-config
20.PostgreSQL服务器
下面的截图显示了一个错误PostgreSQL配置文件。

要检测此类错误,请切换到postgres数据库用户帐户并访问sql壳。然后运行命令来识别配置文件中的错误:
postgres=# select sourcefile, name,sourceline,error from pg_file_settings where error is not null;

21.Nagios监控工具
验证您的纳吉奥斯配置,运行纳吉奥斯命令与-v
旗帜。
# nagios -v /usr/local/nagios/etc/nagios.cfg
22.Monit监控工具
运行迅速的命令与-t
标志执行默认语法检查。您可以指定特定的控制文件,使用-c
旗帜:
# monit -t OR # monit -t -c path/to/control/file
23.Postfix邮件服务器
以下命令将帮助您检查 Postfix 的配置文件是否有语法错误。
# postfix check
第二个命令比第一个命令更详细:
# postfix -vvv

24.Dovecot IMAP 服务器
检查鸽舍 IMAP服务器配置语法使用鸽子会议命令。如果一切正常,它将以零错误代码退出,否则,它将以非零错误代码退出并显示错误消息:
# doveconf 1>/dev/null # echo $?
25.Samba文件服务器
您可以检查桑巴舞使用以下命令文件服务器配置文件:
# testparm -v
26.Syslogd/Rsyslogd
当您调用系统日志命令与-N1
选项,它将启用调试模式并检查默认配置文件是否有语法错误。使用-f
读取自定义配置文件的标志:
# rsyslogd -N1

27. DNS(绑定)服务器
你可以检查一下DNS命名的配置文件如下:
# named-checkconf /etc/named.conf
28. NTP——网络时间协议
这恩特普德可以使用以下命令测试配置语法,其中-d
标志启用详细调试模式,-f
指定频率漂移文件名,以及-n
意味着没有分叉:
# ntpd -d -f /etc/ntp.conf -n
29.OpenStack-Ansible
执行以下命令检查OpenStack-ansible配置文件的语法:
# openstack-ansible setup-infrastructure.yml --syntax-check
30. 日志轮转
调试一个洛格罗阿特(日志轮换设施)配置文件,运行对数旋转命令与-d
选项并指定配置文件:
# logrotate -d /etc/logrotate.d/nginx
这就是我们在本指南中为您提供的全部内容。与我们分享您的想法或通过下面的反馈表提出问题。您还可以分享更多示例,了解如何检查此处未列出的任何应用程序或服务的配置语法。我们很乐意将您的示例添加到指南中。