[shell] 시간 기반으로 하는 Shell 작업 스케줄링

리눅스 환경에서 Shell 작업을 특정 시간에 주기적으로 실행시키고 싶은 경우가 있을 것입니다. 이를 위해 cron이라는 유용한 도구를 사용할 수 있습니다. cron유닉스 계열 운영체제에서 주기적으로 프로세스를 실행시키기 위해 사용되는 시스템 스케줄러입니다. 이를 통해 운영체제가 백그라운드에서 특정 시간마다 스크립트 또는 명령어를 실행하도록 스케줄링할 수 있습니다.

cron 명령어 및 파일

cron을 사용하면 특정 시간에 지정된 작업을 수행할 수 있습니다. crontab 파일은 이러한 작업을 정의하는 데 사용됩니다. 사용자가 설정한 예약 작업을 cron 데몬이 읽어와 지정된 시간에 해당 작업을 실행합니다.

crontab 파일 작성하기

crontab 파일을 수정하려면 crontab -e 명령어를 사용합니다. 새 작업을 추가하려면 crontab -e를 실행하여 에디터를 열고, 작업을 추가한 다음 파일을 저장하고 종료합니다. 작업을 확인하려면 crontab -l 명령어를 사용합니다.

새로운 작업을 추가할 때 다음과 같은 형식을 따릅니다.

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

위 형식에서 각 *는 다음을 나타냅니다.

예를 들어, 매일 오전 2시에 스크립트를 실행하려면 다음과 같이 작성합니다.

0 2 * * * /path/to/your/script.sh

시간 기반 작업 스케줄링의 장점

시간 기반으로 작업을 스케줄링하면 자동화된 프로세스 실행이 가능하고, 특히 백그라운드에서 주기적으로 실행되어야 하는 작업을 효과적으로 처리할 수 있습니다.

그러나 주기적으로 자동 실행되는 작업은 신중히 고려되어야 합니다. 잘못된 설정으로 인해 시스템에 불필요한 부하를 주거나 작업이 예상대로 실행되지 않을 수 있습니다.

Shell 작업을 특정 시간에 실행시키려는 용도에 맞게 cron을 유연하게 활용하여 작업을 효율적으로 관리할 수 있습니다.