30 способов проверки файлов конфигурации или сценариев в Linux
Проверка и/или тестирование синтаксиса конфигурации — это ключевой шаг, который необходимо выполнить после внесения изменений в файл конфигурации приложения или службы или даже после запуска обновлений. Это помогает снизить вероятность того, что служба не сможет перезапуститься из-за ошибок конфигурации.
Некоторые приложения/программы или сервисные демоны поставляются с командами для проверки файлов конфигурации на правильность синтаксиса. Мы собрали список распространенных приложений и служб в системах Linux, а также способы тестирования или проверки их файлов конфигурации.
Примечание. Используйте, если вы не вошли на сервер как пользователь root, не забудьте при необходимости использовать команду sudo при вызове команды, поскольку некоторые службы запускаются с правами root, и для проверки их файлов конфигурации требуется root. права пользователя.
1. Команда Судо
Вы можете проверить синтаксис файла конфигурации sudo с помощью команды visudo, которая поддерживает параметр командной строки --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 -n /path/to/scriptname.sh
3. Perl-скрипты
Чтобы проверить сценарии Perl на наличие синтаксических ошибок, используйте следующую команду:
perl -c /path/to/scriptname
4. Юнит-файлы Systemd
Команда «systemd-analyzeverify» позволяет проверить файл модуля systemd на наличие синтаксических ошибок. Он загружает файлы модулей и печатает предупреждения при обнаружении каких-либо ошибок.
По умолчанию он загружает файлы, указанные в командной строке, в качестве аргумента, а также любые другие модули, на которые они ссылаются:
systemd-analyze verify /etc/systemd/system/test.service
5. Сервер OpenSSH
Чтобы проверить достоверность файла конфигурации sshd и работоспособность ключей, введите следующую команду. Чтобы проверить конкретный файл конфигурации, укажите его с помощью флага -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
Затем вы можете проверить файл конфигурации веб-сервера Apache с помощью следующей команды:
apachectl configtest
Альтернативно вы можете использовать следующие команды в дистрибутивах на основе RedHat:
httpd -t
В дистрибутивах на основе Debian запустите:
apache2ctl -t
9. Балансировщик нагрузки HAProxy TCP/HTTP.
Конфигурацию HAProxy можно протестировать с помощью следующей команды, где опция -f
указывает файл, а -c
включает тестовый режим:
haproxy -f /etc/haproxy/haproxy.cfg -c
10. HTTP-сервер Lighttpd
Запустите следующую команду, чтобы проверить синтаксис файла конфигурации Lighttpd. Параметр командной строки -t
позволяет Lighttpd проверить файл конфигурации по умолчанию на наличие синтаксических ошибок и выйти. Используйте флаг -f
, чтобы указать собственный файл конфигурации:
lighttpd -t
OR
lighttpd -t -f /path/to/config/file
11. Апач Томкэт
Веб-сервер Tomcat позволяет выполнять базовую проверку синтаксиса конфигурации. Сначала перейдите в каталог установки Tomcat и введите следующую команду:
./bin/catalina.sh configtest
OR
$TOMCAT_HOME/bin/catalina.sh configtest
12. Обратный прокси-сервер фунта
Вы можете проанализировать файл конфигурации сервера Pound перед запуском сервера. Запустите команду pound с флагом -c
без каких-либо других аргументов, чтобы проверить файл конфигурации по умолчанию. Вы можете указать другой файл конфигурации, используя параметр командной строки -f
:
pound -c
OR
pound -f /path/to/config/file -c
13. HTTP-ускоритель Varnishd
Чтобы проверить синтаксис файла varnishd VCL (язык конфигурации Varnish) на наличие ошибок, используйте следующую команду. Если все в порядке, лак выгрузит сгенерированную конфигурацию, в противном случае отобразит конкретный номер строки в файле, в котором есть ошибка:
varnishd -C
OR
varnishd -f /etc/varnish/default.vcl -C
14. Прокси-кэширующий сервер Squid
Чтобы передать файл конфигурации squid для прокси-кэширующего сервера Squid, введите следующую команду. Опция -k
вместе с подкомандами parse или debug указывает демону squid проанализировать файл конфигурации или включить режим отладки соответственно:
squid -k parse
squid -k debug
15. Веб-сервер Caddy
Чтобы выявить ошибки в конфигурации веб-сервера Caddy, введите следующую команду. Первый проверяет конфигурацию по умолчанию, либо используйте параметр командной строки --config
, чтобы указать файл конфигурации:
caddy validate
OR
caddy validate --config /path/to/config/file
16. FTP-сервер vsftpd
Выполните следующую команду, чтобы проверить файл конфигурации FTP-сервера vsftpd:
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, также работает для проверки синтаксиса файла конфигурации сервера базы данных Mariadb:
mysqld --validate-config
20. Сервер PostgreSQL
На следующем снимке экрана показана ошибка в файле конфигурации PostgreSQL.
Чтобы обнаружить такую ошибку, переключитесь на учетную запись пользователя базы данных postgres и получите доступ к оболочке psql. Затем запустите команду для выявления ошибок в вашем файле конфигурации:
postgres=# select sourcefile, name,sourceline,error from pg_file_settings where error is not null;
21. Инструмент мониторинга Nagios
Чтобы проверить конфигурацию Nagios, запустите команду nagios с флагом -v
.
nagios -v /usr/local/nagios/etc/nagios.cfg
22. Инструмент мониторинга Monit
Запустите команду monit с флагом -t
, чтобы выполнить проверку синтаксиса файла управления Monit по умолчанию. Вы можете указать конкретный управляющий файл, используя флаг -c
:
monit -t
OR
monit -t -c path/to/control/file
23. Почтовый сервер Postfix
Следующая команда поможет вам проверить файлы конфигурации Postfix на наличие синтаксических ошибок.
postfix check
Эта вторая команда более подробная, чем первая:
postfix -vvv
24. IMAP-сервер Dovecot
Проверьте синтаксис конфигурации сервера Dovecot IMAP с помощью команды doveconf . Если все в порядке, он завершится с нулевым кодом ошибки, в противном случае он завершится с ненулевым кодом ошибки и отобразит сообщение об ошибке:
doveconf 1>/dev/null
echo $?
25. Файловый сервер Samba
Вы можете проверить файл конфигурации файлового сервера Samba с помощью следующей команды:
testparm -v
26. Системный журнал/Rsyslogd
Когда вы вызываете команду rsyslod с опцией -N1
, она включает режим отладки, а также проверяет файл конфигурации по умолчанию на наличие синтаксических ошибок. Используйте флаг -f
для чтения пользовательского файла конфигурации:
rsyslogd -N1
27. DNS (BIND) Сервер
Вы можете проверить файл конфигурации DNS named следующим образом:
named-checkconf /etc/named.conf
28. NTP – протокол сетевого времени.
Синтаксис конфигурации ntpd можно проверить с помощью следующей команды, где флаг -d
включает режим подробной отладки, а -f
указывает имя файла отклонения частоты. , а -n
подразумевает отсутствие вилки:
ntpd -d -f /etc/ntp.conf -n
29. OpenStack-Ansible
Запустите следующую команду, чтобы проверить синтаксис файла конфигурации, поддерживающего OpenStack:
openstack-ansible setup-infrastructure.yml --syntax-check
30. Логротате
Чтобы отладить файл конфигурации logrotate (средство ротации журналов), запустите команду logrotate с опцией -d
и укажите файл конфигурации:
logrotate -d /etc/logrotate.d/nginx
Это все, что у нас было для вас в этом руководстве. Поделитесь с нами своими мыслями или задайте вопросы через форму обратной связи ниже. Вы также можете поделиться дополнительными примерами того, как проверить синтаксис конфигурации любых приложений или служб, не перечисленных здесь. Мы с радостью добавим ваши примеры в руководство.