소개
이 랩에서는 Linux 에서 예약된 작업을 설정하는 방법을 배우게 됩니다. 짧은 간격으로 명령을 반복적으로 실행하기 위한 watch 명령과 특정 시간에 작업을 예약하기 위한 crontab 유틸리티, 이 두 가지 강력한 도구를 살펴볼 것입니다. 이러한 기술은 시스템 관리자 및 Linux 시스템에서 반복적인 작업을 자동화해야 하는 모든 사람에게 필수적입니다.
이 랩에서는 Linux 에서 예약된 작업을 설정하는 방법을 배우게 됩니다. 짧은 간격으로 명령을 반복적으로 실행하기 위한 watch 명령과 특정 시간에 작업을 예약하기 위한 crontab 유틸리티, 이 두 가지 강력한 도구를 살펴볼 것입니다. 이러한 기술은 시스템 관리자 및 Linux 시스템에서 반복적인 작업을 자동화해야 하는 모든 사람에게 필수적입니다.
watch 명령을 사용하면 명령을 반복적으로 실행하고 실시간으로 출력을 볼 수 있습니다. 이는 변경 사항을 모니터링하거나 짧은 간격으로 명령을 정기적으로 실행하는 데 유용합니다.
터미널을 엽니다. /home/labex/project 디렉토리에 있어야 합니다. 확실하지 않은 경우, pwd 명령으로 현재 디렉토리를 확인할 수 있습니다.
watch를 사용하여 현재 날짜와 시간을 5 초마다 표시해 보겠습니다. 다음 명령을 입력합니다.
watch -n 5 date
이 명령은 다음과 같은 기능을 합니다.
watch는 다른 명령을 반복하기 위해 사용하는 명령입니다.-n 5는 watch에게 각 실행 사이에 5 초를 대기하도록 지시하는 옵션입니다. 이 옵션을 생략하면 watch는 기본 간격인 2 초를 사용합니다.date는 watch가 반복적으로 실행할 명령입니다. 현재 날짜와 시간을 표시합니다.명령을 입력하면 5 초마다 업데이트되는 전체 화면 표시가 나타납니다. 다음과 유사하게 보일 것입니다.

맨 위 줄에는 실행 중인 명령과 업데이트 빈도가 표시됩니다. 나머지 화면에는 date 명령의 출력이 표시됩니다.
watch 명령을 종료하려면 Ctrl+C를 누릅니다. 이 키 조합은 Linux 에서 실행 중인 명령을 종료하는 데 일반적으로 사용됩니다.
watch 명령을 중지하지 않으면 무한정 계속 실행되어 터미널에서 새 명령을 입력하지 못할 수 있습니다.
작업을 예약하기 위해 crontab 을 사용하기 전에, 시스템에 설치되어 있는지 확인해야 합니다. 대부분의 Linux 배포판에는 crontab 이 미리 설치되어 있지만, 필요에 따라 확인하고 설치하는 것이 좋습니다.
먼저, crontab 이 이미 설치되어 있는지 확인해 보겠습니다. crontab 명령을 실행하여 확인할 수 있습니다.
crontab -l
crontab 이 설치되어 있으면 현재 cron 작업 목록이 표시되거나 "no crontab for labex"라는 메시지가 표시됩니다.
명령을 찾을 수 없다는 오류 메시지가 표시되면 crontab 을 설치해야 합니다. Ubuntu 또는 Debian 기반 시스템에서는 다음 명령을 사용하여 설치할 수 있습니다.
sudo apt update
sudo apt install cron
비밀번호를 입력하라는 메시지가 표시됩니다. 입력하고 (보안상의 이유로 입력하는 문자가 표시되지 않습니다) Enter 키를 누릅니다.
설치 후, cron 서비스를 시작합니다.
sudo service cron start
이 명령은 cron 서비스를 즉시 시작합니다.
이제 cron 이 설치되어 실행 중인지 확인합니다.
sudo service cron status
cron 서비스가 실행 중임을 나타내는 출력이 표시되어야 합니다.
이제 crontab 을 설치했으니, 사용 방법을 살펴보겠습니다. Crontab 은 로그인하지 않은 상태에서도 특정 시간에 작업을 예약하는 데 사용됩니다.
먼저, 현재 crontab 항목 (있는 경우) 을 확인해 보겠습니다. 다음 명령을 사용합니다.
crontab -l
-l 옵션은 "list"를 의미합니다. 이 명령은 crontab 에 있는 모든 예약된 작업을 표시합니다.
아직 cron 작업을 설정하지 않았다면 "no crontab for labex"라는 메시지가 표시됩니다. 이는 새 사용자에게는 정상입니다.
이제 편집을 위해 crontab 을 열어보겠습니다. 다음 명령을 사용합니다.
crontab -e
-e 옵션은 "edit"를 의미합니다. 이 명령은 텍스트 편집기에서 crontab 파일을 엽니다.
crontab 을 처음 사용하는 경우, 편집기를 선택하라는 메시지가 표시될 수 있습니다. 다양한 편집기에 해당하는 숫자 목록이 표시됩니다. 초보자의 경우, nano(일반적으로 옵션 1) 가 사용하기 더 간단하므로 좋은 선택입니다. nano 에 해당하는 숫자를 입력하고 Enter 키를 누릅니다.

편집기를 선택하라는 메시지가 표시되지 않으면 걱정하지 마세요. 이미 기본 편집기가 설정되어 있다는 의미입니다.
편집기가 열리면 빈 파일 (또는 기존 cron 작업이 있는 경우) 이 표시됩니다. 아직 아무것도 추가하지 마세요. 나중에 단계에서 수행할 것입니다. 지금은 편집기에 익숙해지세요.
nano 를 사용하는 경우, 화면 하단에 몇 가지 도움말 명령이 표시됩니다. ^ 기호는 Ctrl 키를 나타냅니다. 따라서 ^X는 "Ctrl+X"를 의미하며, nano 를 종료하는 데 사용됩니다.
변경 사항을 저장하지 않고 편집기를 종료합니다. nano 에서는 Ctrl+X 를 눌러 이 작업을 수행할 수 있습니다. 변경 사항을 저장할지 묻는 메시지가 표시되면 'N'을 눌러 "No"를 선택합니다.
cron 작업을 추가하기 전에, 구문을 이해하는 것이 중요합니다. Crontab 은 작업이 언제 실행되어야 하는지 결정하기 위해 특정 형식을 사용합니다.
cron 작업의 기본 형식은 다음과 같습니다.
* * * * * command_to_execute
각 별표 (*) 는 왼쪽에서 오른쪽으로 특정 시간 단위를 나타냅니다.
이해를 돕기 위한 몇 가지 예시입니다.
30 2 * * *는 "매일 오전 2 시 30 분"을 의미합니다.0 9 * * 1-5는 "월요일부터 금요일까지 오전 9 시"를 의미합니다.*/15 * * * *는 "15 분마다"를 의미합니다.다음 특수 문자를 사용할 수 있습니다.
*: 모든 값,: 값 목록 구분자-: 값 범위/: 단계 값더 복잡한 예시를 살펴보겠습니다.
15,45 9-17 * * 1-5 /path/to/script.sh
이는 "월요일부터 금요일까지 오전 9 시부터 오후 5 시까지 매 시간 15 분과 45 분에 /path/to/script.sh를 실행"을 의미합니다.
이 구문을 이해하는 것은 효과적인 cron 작업을 만드는 데 핵심입니다. 이 형식을 사용하여 다양한 작업을 어떻게 예약할 수 있는지 생각해 보십시오.
이제 구문을 이해했으니, 매 분마다 현재 날짜를 파일에 쓰는 간단한 cron 작업을 추가해 보겠습니다.
편집을 위해 crontab 을 엽니다.
crontab -e
편집기가 열리면 다음 줄을 crontab 에 추가합니다.
* * * * * date >> /home/labex/project/date_log.txt

이 내용을 자세히 살펴보겠습니다.
* * * * *는 "매달, 매일, 매 시간, 매 분마다"를 의미합니다.date는 실행하려는 명령입니다.>>는 출력을 파일에 추가하는 데 사용됩니다 (덮어쓰는 대신)./home/labex/project/date_log.txt는 출력을 저장할 파일입니다.편집기를 저장하고 종료합니다. nano 를 사용하는 경우:
Ctrl+X를 눌러 종료합니다.Y를 누릅니다.Enter를 누릅니다.종료 후 "crontab: installing new crontab"이라는 메시지가 표시되어야 합니다. 이는 변경 사항이 저장되었음을 확인합니다.
이제 cron 작업을 설정했으니, 제대로 작동하는지 확인해 보겠습니다.
먼저, cron 작업을 추가한 후 최소 1 분 이상 기다려야 합니다. cron 작업은 분 단위로 실행되므로, 작업이 처음 실행되기까지 최대 1 분이 걸릴 수 있습니다.
기다린 후, cat 명령을 사용하여 로그 파일의 내용을 봅니다.
cat /home/labex/project/date_log.txt
cat 명령은 파일의 내용을 터미널에 직접 표시합니다.
날짜와 시간이 포함된 줄이 하나 이상 표시되어야 합니다. 다음과 유사하게 표시됩니다.
Sat Aug 5 10:15:01 UTC 2023
아무것도 보이지 않으면, 1 분 더 기다린 후 다시 시도하십시오. 때로는 cron 작업이 실행을 시작하는 데 시간이 걸릴 수 있습니다.
cron 작업이 실제로 작동하는 것을 보려면, 앞서 배운 watch 명령을 사용하여 파일을 실시간으로 모니터링할 수 있습니다.
watch -n 60 cat /home/labex/project/date_log.txt
이렇게 하면 60 초마다 업데이트되어, 새로운 항목이 추가될 때마다 표시됩니다.
몇 분 동안 실행해 봅니다. 매 분마다 새로운 줄이 추가되는 것을 볼 수 있습니다.
관찰을 마쳤으면, Ctrl+C를 눌러 watch 명령을 종료합니다.
축하합니다! "예약된 작업 설정" 랩을 성공적으로 완료했습니다. 다음을 배우셨습니다.
watch 명령을 사용하는 방법.crontab -l 및 crontab -e를 사용하여 crontab 을 보고 편집하는 방법.이러한 기술은 Linux 환경에서 작업을 자동화하고 시스템을 모니터링하는 데 기본이 됩니다. Linux 여정을 계속 진행하면서 시스템 관리 및 자동화에서 예약된 작업의 더 많은 용도를 찾을 수 있습니다.
날짜를 로깅하는 간단한 예제를 사용했지만, 데이터 백업, 소프트웨어 업데이트 또는 시스템 유지 관리 스크립트 실행과 같은 더 복잡한 작업에 cron 작업을 사용할 수 있습니다. 특히 시스템에 중요한 작업을 포함하는 경우 cron 작업을 설정할 때 항상 주의하십시오.