웹사이트 검색

Linux에서 구성 파일 또는 스크립트의 유효성을 검사하는 30가지 방법


구성 구문 확인 및/또는 테스트는 애플리케이션이나 서비스의 구성 파일을 변경한 후 또는 업데이트를 실행한 후에도 수행해야 하는 핵심 단계입니다. 이렇게 하면 구성 오류로 인해 서비스를 다시 시작하지 못할 가능성을 줄이는 데 도움이 됩니다.

여러 응용 프로그램/프로그램 또는 서비스 데몬에는 구성 파일의 구문 정확성을 확인하는 명령이 함께 제공됩니다. 우리는 Linux 시스템의 일반적인 애플리케이션 및 서비스 목록과 해당 구성 파일을 테스트하거나 검증하는 방법을 정리했습니다.

참고: 서버에 루트 사용자로 로그온하지 않은 경우 사용하세요. 일부 서비스는 루트 권한으로 실행되고 해당 구성 파일을 확인하려면 루트가 필요하므로 명령을 호출하는 동안 필요한 경우 sudo 명령을 사용해야 합니다. 사용자 권한.

1. Sudo 명령

--check 또는 -c 명령줄 옵션을 지원하는 visudo 명령을 사용하여 sudo 구성 파일 구문을 확인할 수 있습니다. 편집하지 않은 파일입니다. -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 -c /path/to/scriptname

4. 시스템 단위 파일

"systemd-analyze verify" 명령을 사용하면 systemd 단위 파일에 구문 오류가 있는지 테스트할 수 있습니다. 오류가 감지되면 단위 파일을 로드하고 경고를 인쇄합니다.

기본적으로 명령줄에 인수로 지정된 파일과 해당 파일이 참조하는 다른 모든 단위를 로드합니다.

systemd-analyze verify /etc/systemd/system/test.service

5. OpenSSH 서버

sshd 구성 파일의 유효성과 키의 온전성을 확인하려면 다음 명령을 실행하십시오. 특정 구성 파일을 확인하려면 -f 플래그를 사용하여 지정하십시오.

sshd -t

6. NGINX 웹 서버

NGINX 구성 파일을 확인하려면 -t 플래그와 함께 nginx 명령을 실행하세요. 다른 구성 파일을 지정하려면 -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 웹 서버 구성 파일을 확인할 수 있습니다.

apachectl configtest

또는 RedHat 기반 배포판에서 다음 명령을 사용할 수 있습니다.

httpd -t

Debian 기반 배포판에서는 다음을 실행합니다.

 
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 웹 서버에서는 기본 구성 구문 확인이 가능합니다. 먼저 Tomcat 설치 디렉터리로 이동하여 다음 명령을 실행합니다.

./bin/catalina.sh configtest
OR
$TOMCAT_HOME/bin/catalina.sh configtest

12. 파운드 리버스 프록시

서버를 시작하기 전에 Pound 서버 구성 파일을 구문 분석할 수 있습니다. 기본 구성 파일을 확인하려면 다른 인수 없이 -c 플래그와 함께 pound 명령을 실행하세요. -f 명령줄 옵션을 사용하여 다른 구성 파일을 지정할 수 있습니다.

pound -c
OR
pound -f /path/to/config/file -c

13. Varnishd HTTP 가속기

varnishd VCL(Varnish Configuration Language) 파일 구문에 오류가 있는지 확인하려면 다음 명령을 사용하세요. 모두 정상이면 바니시는 생성된 구성을 덤프하고, 그렇지 않으면 오류가 있는 파일의 특정 줄 번호를 표시합니다.

varnishd -C
OR
varnishd -f /etc/varnish/default.vcl -C

14. 오징어 프록시 캐싱 서버

Squid 프록시 캐싱 서버에 대한 Squid 구성 파일을 전달하려면 다음 명령을 실행하십시오. -k 옵션은 구문 분석 또는 디버그 하위 명령과 함께 오징어 데몬에게 각각 구성 파일을 구문 분석하거나 디버깅 모드를 활성화하도록 지시합니다.

squid -k parse
squid -k debug

15. 캐디 웹 서버

Caddy 웹 서버 구성에 오류가 있으면 다음 명령을 실행하십시오. 첫 번째는 기본 구성을 확인하거나 --config 명령줄 옵션을 사용하여 구성 파일을 지정합니다.

caddy validate
OR
caddy validate --config /path/to/config/file

16. vsftpd FTP 서버

다음 명령을 실행하여 vsftpd FTP 서버의 구성 파일을 테스트합니다.

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. 포스트그레SQL 서버

다음 스크린샷은 PostgreSQL 구성 파일의 오류를 보여줍니다.

이러한 오류를 감지하려면 postgres 데이터베이스 사용자 계정으로 전환하고 psql 셸에 액세스하세요. 그런 다음 다음 명령을 실행하여 구성 파일의 오류를 식별합니다.

postgres=# select sourcefile, name,sourceline,error from pg_file_settings where error is not null;

21. Nagios 모니터링 도구

Nagios 구성을 확인하려면 -v 플래그와 함께 nagios 명령을 실행하세요.

nagios -v /usr/local/nagios/etc/nagios.cfg

22. 모니터 모니터링 도구

기본 Monit 제어 파일에 대한 구문 검사를 수행하려면 -t 플래그와 함께 monit 명령을 실행하세요. 특정 제어 파일을 지정할 수 있으며 -c 플래그를 사용합니다.

monit -t
OR
monit -t -c path/to/control/file

23. 포스트픽스 메일 서버

다음 명령은 Postfix의 구성 파일에서 구문 오류를 확인하는 데 도움이 됩니다.

postfix check

이 두 번째 명령은 첫 번째 명령보다 더 장황합니다.

postfix -vvv

24. 비둘기장 IMAP 서버

doveconf 명령을 사용하여 Dovecot IMAP 서버 구성 구문을 확인하세요. 모두 정상이면 0 오류 코드로 종료되고, 그렇지 않으면 0이 아닌 오류 코드로 종료되고 오류 메시지가 표시됩니다.

doveconf 1>/dev/null
echo $?

25. 삼바 파일 서버

다음 명령을 사용하여 Samba 파일 서버 구성 파일을 확인할 수 있습니다.

testparm -v

26. 시스로그드/Rsyslogd

-N1 옵션과 함께 rsyslod 명령을 호출하면 디버그 모드가 활성화되고 기본 구성 파일에 구문 오류가 있는지도 확인합니다. 사용자 정의 구성 파일을 읽으려면 -f 플래그를 사용하십시오.

rsyslogd -N1

27. DNS(바인드) 서버

다음과 같이 이름이 지정된 DNS 구성 파일을 확인할 수 있습니다.

named-checkconf /etc/named.conf

28. NTP – 네트워크 시간 프로토콜

ntpd 구성 구문은 다음 명령을 사용하여 테스트할 수 있습니다. 여기서 -d 플래그는 자세한 디버그 모드를 활성화하고 -f는 주파수 드리프트 파일 이름을 지정합니다. , -n은 포크가 없음을 의미합니다.

ntpd -d -f /etc/ntp.conf -n

29. 오픈스택-앤서블

OpenStack-ansible 구성 파일의 구문을 확인하려면 다음 명령을 실행하십시오.

openstack-ansible setup-infrastructure.yml --syntax-check

30. 로그로테이션

logroate(로그 회전 기능) 구성 파일을 디버깅하려면 -d 옵션과 함께 logrotate 명령을 실행하고 구성 파일을 지정합니다.

logrotate -d /etc/logrotate.d/nginx

이것이 이 가이드에서 제공하는 전부입니다. 귀하의 생각을 우리와 공유하거나 아래 피드백 양식을 통해 질문하십시오. 여기에 나열되지 않은 애플리케이션이나 서비스의 구성 구문을 확인하는 방법에 대한 더 많은 예를 공유할 수도 있습니다. 기꺼이 귀하의 예시를 가이드에 추가해 드리겠습니다.