Поиск по сайту:

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

Это все, что у нас было для вас в этом руководстве. Поделитесь с нами своими мыслями или задайте вопросы через форму обратной связи ниже. Вы также можете поделиться дополнительными примерами того, как проверить синтаксис конфигурации любых приложений или служб, не перечисленных здесь. Мы с радостью добавим ваши примеры в руководство.