매일 업데이트
2023-10-06 01:15 7 min

cron이 Linux에서 작동하는지 확인하는 4가지 방법

리눅스 환경에서 Cron 작업 스케줄러 작동 여부 확인 방법

Cron은 리눅스 및 유닉스 계열 운영체제에서 사용되는 작업 스케줄러입니다. 이는 모든 리눅스 배포판에 기본적으로 설치되어 있으며 반복적인 작업을 자동화하는 데 매우 유용합니다.

Cron이 원활하게 작동하는지 확인하는 것은 시스템 관리에서 중요합니다. Cron 서비스의 상태를 확인하거나, 로그를 검토하거나, 테스트 작업을 실행하거나, 실행 중인 프로세스를 확인하는 네 가지 방법을 통해 이를 확인할 수 있습니다.

Cron이란 무엇인가?

Cron은 자동 작업 처리기로서, 시스템 작업을 자동화하고 예약하는 데 사용됩니다. 시스템 관리자나 개발자는 Cron을 사용하여 특정 명령 또는 셸 스크립트(Cron 작업)를 정해진 시간이나 간격으로 주기적으로 실행하도록 예약할 수 있습니다. 이를 통해 소프트웨어 환경을 구성하고 유지 관리하는 데 필요한 반복 작업을 자동화할 수 있습니다.

Cron은 시스템 유지 보수나 관리 작업을 자동화하는 데 매우 효율적입니다. 다양한 리눅스 배포판에서 다양한 버전의 Cron이 제공되며, 대표적으로 "Vixie cron"이 Debian 및 Ubuntu에서 기본으로 사용됩니다. Arch Linux에서는 시스템 타이머를 선호하여 Cron을 기본으로 제공하지 않지만, Vixie cron을 기반으로 한 cronie 패키지를 설치하여 사용할 수 있습니다.

Cronie 패키지 설치 방법은 다음과 같습니다:

 sudo pacman -S cronie 

설치 후에는 Cron 서비스를 시작하고 시스템 부팅 시 자동 실행되도록 설정해야 합니다:

 sudo systemctl start cronie.service
sudo systemctl enable cronie.service

시스템에 설치된 Cron의 버전을 확인하려면 man 페이지를 참조하십시오:

 man cron 

리눅스에서 Cron이 작동하는지 확인하는 방법

Cron이 제대로 작동하는지 확인하는 몇 가지 방법은 아래와 같습니다.

1. 리눅스에서 Cron 서비스 상태 확인

Cron이 실행 중인지 확인하는 가장 간단한 방법은 터미널에서 `systemctl` 명령을 사용하여 Cron 서비스의 상태를 확인하는 것입니다. 터미널을 열고 다음 명령을 실행하십시오:

 sudo systemctl status cron 

만약 Cron 서비스가 활성화되어 있고 정상적으로 실행되고 있다면, 다음과 유사한 출력을 볼 수 있습니다.

반대로, Cron 서비스가 비활성 상태라면 다음과 같은 출력을 보게 될 수 있습니다.

이 경우, 다음 명령을 사용하여 Cron 서비스를 시작할 수 있습니다:

 sudo systemctl start cron.service 

Cron 서비스가 시작된 후에는 시스템이 재부팅될 때마다 자동으로 시작되도록 설정하는 것이 좋습니다:

 sudo systemctl enable cron.service 

2. 리눅스에서 Cron 로그 확인

Cron이 제대로 작동하는지 확인하는 또 다른 방법은 로그 파일을 검토하는 것입니다. Cron 로그는 일반적으로 리눅스의 `/var/log/syslog` 디렉토리에 저장됩니다.

Syslog는 시스템 이벤트 데이터를 중앙 집중화하는 프로토콜입니다. 로그에 접근하여 시스템 감사, 모니터링, 문제 해결 및 기타 필요한 IT 운영 작업을 수행할 수 있습니다. 다음 명령을 사용하여 `syslog` 파일에서 Cron 관련 로그를 볼 수 있습니다:

 grep 'cron' /var/log/syslog 

Cron이 정상적으로 실행되고 있다면 로그 파일에 다음과 유사한 출력이 저장됩니다.

`syslog` 파일에는 다른 시스템 로그도 포함되어 있으므로, Cron 로그만 따로 관리하는 것이 편리할 수 있습니다. 이를 위해 별도의 로그 파일을 생성하여 Cron 로그만 저장할 수 있습니다.

다음은 `nano` 편집기를 사용하여 설정하는 방법입니다. 다른 편집기를 사용해도 무방합니다.

 nano /etc/rsyslog.d/50-default.conf 

파일에서 다음으로 시작하는 줄을 찾습니다:

 #cron.* 

해시(#) 기호를 제거하여 해당 줄의 주석 처리를 해제합니다. 변경 사항을 저장하고 편집기를 종료합니다.

`rsyslog` 서비스를 재시작합니다:

 sudo service rsyslog restart 

이제 `/var/log` 디렉토리에 있는 `cron.log` 파일에 Cron 로그가 기록됩니다.

만약 터미널에서 로그를 확인할 수 없다면, Cron이 실행되고 있지 않거나 다른 방법으로 실행되고 있을 가능성이 있습니다. 이 경우 다른 방법을 사용하여 Cron의 작동 여부를 다시 확인해야 합니다.

3. 리눅스에서 테스트 Cron 작업 실행

간단한 테스트 Cron 작업을 생성하여 Cron이 정상적으로 작동하는지 확인할 수 있습니다. 테스트 작업이 성공적으로 실행된다면, Cron이 제대로 작동하고 있음을 의미합니다.

먼저, Bash 스크립트를 만들어야 합니다. Bash 스크립팅을 사용하면 리눅스에서 일상적인 작업을 자동화할 수 있습니다. 여기에서는 "내 Cron 작업이 작동 중입니다!"라는 메시지를 TXT 파일에 저장하는 Bash 스크립트를 만들겠습니다.

현재 작업 디렉토리를 확인하려면 다음 명령을 사용합니다.

 pwd 

`touch` 명령을 사용하여 현재 디렉토리에 파일을 만듭니다.

 touch file.txt 

`nano`를 사용하여 Bash 스크립트 파일을 만듭니다.

 nano script.sh 

파일에 다음 내용을 추가합니다:

 #! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt

텍스트 파일의 정확한 경로를 제공해야 합니다. 변경 사항을 저장하고 편집기를 종료합니다.

Bash 스크립트에 실행 권한을 부여합니다:

 chmod +x script.sh 

이제 스크립트를 실행하기 위한 Cron 작업을 생성합니다. 다음 명령을 사용하여 `crontab` 파일을 엽니다:

 crontab -e 

파일의 끝에 다음 줄을 추가합니다:

 * * * * * /path/to/script.sh 

다섯 개의 별표는 실행 시간을 의미합니다. 각각 분(0-59), 시간(0-23), 일(1-31), 월(1-12), 요일(0-7, 0과 7은 일요일)을 나타냅니다. 스크립트 파일의 이름과 경로도 함께 지정해야 합니다.

파일을 저장하고 닫으면 터미널에 "crontab: 새 crontab 설치 중"이라는 메시지가 표시됩니다.

Cron 작업이 정상적으로 실행되었는지 확인하려면 `file.txt`가 있는 디렉토리로 이동하여 `cat` 명령을 사용하여 파일 내용을 출력합니다:

 cat file.txt 

만약 파일에 "my cronjob is working!" 이라는 메시지가 있다면, Cron이 정상적으로 작동하고 있음을 의미합니다.

4. 리눅스에서 실행 중인 프로세스 확인

Cron 데몬이 작동하는지 확인하는 또 다른 방법은 시스템에서 실행 중인 프로세스 목록을 확인하는 것입니다. `ps` 명령을 사용하여 이를 확인할 수 있으며, Cron 데몬은 `crond`로 표시됩니다. 다음 명령을 실행합니다:

 ps aux | grep cron 

다음과 유사한 출력이 표시되면, Cron 프로세스가 리눅스 시스템에서 실행 중임을 확인할 수 있습니다.

Cron을 사용하여 시스템 작업 자동화 및 예약

Cron은 리눅스 시스템의 효율적인 작동을 위해 매우 중요한 유틸리티 중 하나입니다. 시스템 문제를 해결하는 동안 Cron이 작동하는지 확인하는 것은 필수적입니다.

Cron 로그를 확인하거나 시스템에서 실행 중인 프로세스를 확인하여 이를 확인할 수 있습니다. 또한 `systemctl` 명령을 사용하여 Cron 서비스의 상태를 확인하거나 테스트 Cron 작업을 실행하여 서비스가 정상적으로 실행 중인지 확인할 수도 있습니다.

Cron의 원활한 작동을 통해 일상적인 시스템 작업을 자동화하고 예약할 수 있습니다. 대부분의 Cron 작업은 설치된 응용 프로그램에 의해 자동으로 생성됩니다. 작업을 자동화하고 예약하면 전체 시스템 성능을 향상시키고 정상 상태로 유지할 수 있습니다.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.