Test Your Server Configuration Before Restarting Unix and Linux Services
A Note About Reloading Servers
The syntax is as follows under Linux:
OR
OR
The reload option reloads the config file without interrupting pending operations. For example the following command will reload Apache web server after the config file changes:
OR
However, most Linux and Unix-like daemon programs sometimes use SIGHUP as a signal to restart themselves, the most frequent reason for this being to re-read a configuration file that has been changed. The syntax is as follows:
OR
Let us see how to test the syntax for various Linux and Unix services.
/sbin/service SERVICE-NAME [reload|restart]OR
/etc/init.d/SERVICE-NAME [reload|restart]OR
systemctl reload SERVICE-NAME-HEREThe reload option reloads the config file without interrupting pending operations. For example the following command will reload Apache web server after the config file changes:
# /sbin/service httpd reloadOR
# systemctl reload httpdHowever, most Linux and Unix-like daemon programs sometimes use SIGHUP as a signal to restart themselves, the most frequent reason for this being to re-read a configuration file that has been changed. The syntax is as follows:
kill -HUP $(cat /var/run/SERVICE.pid)OR
kill -HUP `cat /var/run/SERVICE.pid`Let us see how to test the syntax for various Linux and Unix services.
#1: OpenSSH Server
You can use the following syntax to test OpenSSH config file, type:
A sample configuration error session:
Sample outputs:
# /usr/sbin/sshd -t && echo $?A sample configuration error session:
# usr/sbin/sshd -tSample outputs:
/etc/ssh/sshd_config line 26: Bad yes/without-password/forced-commands-only/no argument: Naa
To print line # 26, enter:
# sed -n '26p' /etc/ssh/sshd_configOpenSSH Extended Test Mode
Use the -T option to check the validity of the configuration file, output the effective configuration to stdout (screen) and then exit:
# /usr/sbin/sshd -T#2: Apache Web Server
The syntax is as follows to run syntax tests for configuration files only:
Sample error reporting:
# /usr/sbin/apache2 -tSample error reporting:
apache2: Syntax error on line 50 of /etc/apache2/apache2.conf: ServerRoot must be a valid directory
On RHEL and friend, enter:
Sample outputs:
# /usr/sbin/httpd -tSample outputs:
Syntax OK
You can also use the apachectl command (pass the configtest or -t option). It will run a configuration file syntax test. It parses the configuration files and either reports Syntax Ok or detailed information about the particular syntax error:
OR
# apachectl configtestOR
# apachectl -t#3: Nginx Web Server
To run syntax tests for nginx configuration files, enter:
# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf#5: BIND (named) DNS Server
Use named-checkconf command to check the syntax, but not the semantics. The file is parsed and checked for syntax errors, along with all files included by it
You can also check bind zone files, enter:
# named-checkconf /etc/named.confYou can also check bind zone files, enter:
# named-checkzone cyberciti.biz /var/named/zone.cyberciti.biz#7: MySQL (mysqld) Database Server
Type the following command:
The above will procduce too much output. I recommend redirecting output to /dev/null and only display error/warning on the screen
Sample outputs:
# mysqld --verbose --helpThe above will procduce too much output. I recommend redirecting output to /dev/null and only display error/warning on the screen
# /usr/libexec/mysqld --verbose --help 1>/dev/nullSample outputs:
120330 7:52:43 [Warning] '--log_slow_queries' is deprecated and will be removed in a future release. Please use ''--slow_query_log'/'--slow_query_log_file'' instead.
You can specify a new configuration file such as /root/test-my.cnf
# mysqld --defaults-file=/root/test-my.cnf --verbose --help 1>/dev/null#8: Postfix Mail Server (MTA)
Use the following syntax. To warn about bad directory/file ownership or permissions, and create missing directories, enter:
OR
# postfix checkOR
# postfix -vvv#9: Samba (SMB/CIFS) File Server
Type the following command:
# testparm -v#10: tcpd
The tcpd program can be set up to monitor incoming requests for telnet, finger, ftp, exec, rsh, rlogin, tftp, talk, comsat and other services that have a one-to-one mapping onto executable files. The tcpdchk command examines your tcp wrapper configuration and reports all potential and real problems it can find:
# tcpdchk
# tcpdchk -a
# tcpdchk -d
# tcpdchk -i /path/to/inetd.conf
# tcpdchk -v#13: Nagios
Nagios is a popular open source computer system monitor, network monitoring and infrastructure monitoring software application. Use the following syntax to run a sanity check on nagios.cfg as follows:
Where,
# nagios -v /path/to/testing/nagios.cfgWhere,
- -v : Verify your configuration.
#16: syslogd / rsyslogd
syslogd is Unix / Linux system logging server. rsyslogd is reliable and extended syslogd for modern Linux distros. Rsyslogd is derived from the sysklogd package which in turn is derived from the stock BSD sources. To check for syntax error, type:
OR
# syslogd -f /etc/rsyslog.testing.conf -dOR
rsyslogd -c4 -f /etc/rsyslog.testing.conf -N 1
Comments
Post a Comment