Linux 에서 cron job 이 예약되었는지 확인하는 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 시스템에서 예약된 cron job 을 확인하는 방법을 배우게 됩니다. 먼저 crontab -l 명령을 사용하여 사용자별 cron job 을 확인하는 것으로 시작합니다.

다음으로, /etc/crontab 파일을 검사하고 /etc/cron.* 디렉토리에 정의된 스케줄을 검토하여 시스템 전체의 cron 설정을 탐색합니다. 이 실습을 통해 Linux 시스템에서 작업이 자동으로 실행되도록 예약하는 방법을 식별하고 이해하는 데 필요한 필수 기술을 습득할 수 있습니다.

crontab -l 로 사용자 cron job 보기

이 단계에서는 crontab 명령을 사용하여 현재 사용자의 예약된 작업을 확인하는 방법을 배우게 됩니다.

Cron 은 Unix 계열 운영 체제에서 시간 기반 작업 스케줄러입니다. 사용자가 지정된 시간 또는 날짜에 자동으로 실행되도록 명령 또는 스크립트를 예약할 수 있도록 합니다. 이러한 예약된 작업은 종종 "cron job"이라고 합니다.

시스템의 각 사용자는 자체 cron job 집합을 가질 수 있습니다. 이들은 "crontab" (cron table) 이라는 특수 파일에 저장됩니다.

현재 사용자 (labex) 의 cron job 을 보려면 -l 옵션과 함께 crontab 명령을 사용합니다. -l은 "list"를 의미합니다.

아직 열지 않았다면 터미널을 엽니다. 데스크탑 왼쪽에서 Xfce Terminal 아이콘을 찾을 수 있습니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

crontab -l

labex 사용자에 대해 아직 cron job 을 설정하지 않은 경우, crontab 항목이 없다는 메시지가 표시될 가능성이 높습니다. 이는 새로운 사용자 환경에서 예상되는 동작입니다.

no crontab for labex

이 출력은 현재 labex 사용자가 개인 cron job 을 예약하지 않았음을 확인합니다.

labex 사용자에 대해 예약된 작업이 있는 경우, 여기에 스케줄과 실행될 명령이 표시됩니다.

기존 cron job 을 보는 방법을 이해하는 것은 Linux 시스템에서 예약된 작업을 관리하는 첫 번째 단계입니다. 다음 단계에서는 시스템 전체의 cron 설정을 탐색합니다.

Continue를 클릭하여 다음 단계로 진행합니다.

/etc/crontab 에서 시스템 crontab 확인

이전 단계에서는 특정 사용자의 cron job 을 보는 방법을 배웠습니다. 이제 /etc/crontab 파일에서 일반적으로 구성되는 시스템 전체 cron job 을 살펴보겠습니다.

crontab 명령으로 관리되는 사용자 crontab 과 달리, /etc/crontab 파일은 시스템 관리자 (또는 sudo 권한이 있는 사용자) 가 직접 편집할 수 있는 시스템 전체 구성 파일입니다. 이 파일에는 시스템 운영에 필수적인 cron job 이 포함되는 경우가 많습니다.

/etc/crontab 파일의 내용을 보려면 cat 또는 less와 같은 명령줄 텍스트 뷰어를 사용할 수 있습니다. /etc/crontab은 시스템 파일이므로 읽으려면 sudo가 필요할 수 있지만, 이 LabEx 환경에서는 일반적으로 sudo 없이 읽을 수 있습니다. cat을 사용하여 터미널에 직접 내용을 표시해 보겠습니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

cat /etc/crontab

시스템 crontab 파일의 내용이 표시됩니다. 다음과 유사하게 보일 수 있습니다.

## /etc/crontab: system-wide crontab
## Unlike any other crontab you might learn about, this file has a fifth field
## which is the user that the command will run as.
#
## min hour day month wday user command
## ---- ---- --- ----- ---- ---- -------
#
## Example of job execution:
## .---------------- minute (0 - 59)
## |  .------------- hour (0 - 23)
## |  |  .---------- day of month (1 - 31)
## |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
## |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
## |  |  |  |  |  .- user to run job as
## |  |  |  |  |  |  . command to be executed
## |  |  |  |  |  |  |
## *  *  *  *  *  user command
#
... (other entries)

이 파일의 구조를 확인하십시오. 형식에 대한 설명을 포함하는 주석이 있으며, cron job 을 나타내는 각 줄은 사용자 crontab 과 비교하여 추가 필드인 user 필드를 갖습니다. 이 필드는 명령이 실행되어야 하는 사용자를 지정합니다.

시스템 crontab 은 시스템 업데이트, 로그 회전 및 권한 상승 또는 특정 시스템 사용자로 실행해야 하는 기타 유지 관리 활동과 같은 작업에 자주 사용됩니다.

/etc/crontab을 검사하여 시스템 수준에서 예약된 자동화된 작업에 대한 통찰력을 얻을 수 있습니다.

Continue를 클릭하여 다음 단계로 이동하여 시스템 cron job 의 다른 위치를 살펴보십시오.

/etc/cron.* 에서 cron 스케줄 검토

주요 /etc/crontab 파일 외에도 많은 Linux 배포판은 /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, 및 /etc/cron.monthly/와 같은 디렉토리를 사용하여 시스템 전체 cron job 을 구성합니다.

이러한 디렉토리는 예약된 작업을 관리하는 보다 구조화된 방법을 제공합니다. /etc/cron.hourly/에 배치된 스크립트는 매시간 실행되고, /etc/cron.daily/에 있는 스크립트는 매일 실행되는 등입니다. 정확한 타이밍은 일반적으로 이러한 디렉토리를 주기적으로 실행하는 /etc/crontab의 스크립트에 의해 제어됩니다.

시스템 작업이 어떻게 예약되어 있는지 확인하기 위해 이러한 디렉토리의 내용을 검사해 보겠습니다.

먼저 /etc/cron.d/ 디렉토리의 내용을 나열해 보겠습니다. 이 디렉토리에는 특정 cron job 을 정의하는 설치된 패키지에 의해 배치된 파일이 포함되는 경우가 많습니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

ls /etc/cron.d/

디렉토리 내의 파일을 나열하는 다음과 유사한 출력을 볼 수 있습니다.

anacron  e2scrub_all  phpsessionclean

이러한 파일에는 /etc/crontab과 유사한 형식 (사용자 필드 포함) 의 cron job 정의가 포함되어 있습니다. cat을 사용하여 이러한 파일의 내용을 볼 수 있습니다. 예를 들어, anacron 파일을 보려면 다음을 수행합니다.

cat /etc/cron.d/anacron

다음으로, 시간별, 일별, 주별 및 월별 작업에 대한 디렉토리를 살펴보겠습니다. ls를 사용하여 이러한 디렉토리의 내용을 나열할 수 있습니다.

다음 명령을 하나씩 입력하고 각 명령 다음에 Enter 키를 누릅니다.

ls /etc/cron.hourly/
ls /etc/cron.daily/
ls /etc/cron.weekly/
ls /etc/cron.monthly/

이러한 디렉토리에 다양한 스크립트 또는 파일이 나열되는 것을 볼 수 있습니다. 예를 들어, /etc/cron.daily/에는 패키지 목록 업데이트, 임시 파일 정리 또는 로그 회전과 같은 작업에 대한 스크립트가 포함되는 경우가 많습니다.

ls /etc/cron.daily/
apt-compat  dpkg  google-chrome  man-db  mlocate  passwd  update-notifier-common

이러한 스크립트는 지정된 간격 (시간별, 일별, 주별, 월별) 으로 cron 시스템에 의해 자동으로 실행됩니다.

/etc/crontab의 파일과 /etc/cron.* 아래의 디렉토리를 검사하여 시스템에서 실행되는 자동화된 작업에 대한 포괄적인 보기를 얻을 수 있습니다. 이는 시스템 관리 및 문제 해결에 매우 중요합니다.

이제 사용자 및 시스템 전체 cron job 을 모두 볼 수 있는 주요 위치를 탐색했습니다.

이 랩을 완료하려면 Continue를 클릭하십시오.

요약

이 랩에서는 Linux 에서 예약된 cron job 을 확인하는 방법을 배웠습니다. crontab -l 명령을 사용하여 사용자별 cron job 을 보는 것으로 시작하여 각 사용자가 자신의 crontab 파일에 저장된 자체 예약 작업 집합을 가질 수 있음을 이해했습니다. 현재 사용자에 대한 기존 cron job 이 없음을 나타내는 메시지를 포함하여 출력을 해석하는 방법을 확인했습니다.

그 후, 시스템 전체 cron 구성을 탐색하기 시작하여 특히 /etc/crontab 파일에 집중했습니다. 이 파일은 시스템 수준의 cron job 에 사용되며 시스템 관리자가 직접 관리하며, 사용자 crontab 과 대조됩니다. Linux 시스템에서 예약된 작업을 포괄적으로 확인하려면 사용자 및 시스템 전체 cron job 위치를 모두 이해하는 것이 중요합니다.