소개
이 프로젝트는 Bash 스크립트를 사용하여 작업 스케줄러를 만드는 과정을 안내합니다. 작업 스케줄러를 사용하면 시간별, 일별 또는 주별과 같이 지정된 간격으로 실행되도록 작업을 예약하고 관리할 수 있습니다. 이 스크립트는 예약된 작업을 나열하고, 새 작업을 추가하고, 기존 작업을 제거하는 옵션을 제공합니다.
👀 미리보기

시작하려면 task_scheduler.sh라는 파일을 만들고 제공된 코드를 작성해야 합니다. 첫 번째 단계로 진행해 보겠습니다.
🎯 작업
이 프로젝트에서는 다음을 배우게 됩니다.
- 프로젝트 파일 생성 방법
- 예약된 작업을 표시하는 코드 추가 방법
- 새 작업을 추가하는 코드 추가 방법
- 작업을 제거하는 코드 추가 방법
- 메인 메뉴 루프 설정 방법
- 스크립트를 실행 가능하게 만드는 방법
- 프로젝트 실행 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다.
- Bash 스크립트 생성
- crontab 을 사용하여 작업 예약
- Bash 스크립트에서 사용자 입력 프롬프트
- crontab 에서 작업 추가 및 제거
- Bash 스크립트에서 메뉴 루프 생성
- Bash 스크립트를 실행 가능하게 만들고 실행
프로젝트 파일 생성
원하는 텍스트 편집기를 사용하여 task_scheduler.sh라는 새 파일을 만듭니다. 다음 명령을 사용하여 파일을 생성할 수 있습니다.
cd ~/project
touch task_scheduler.sh
이제 텍스트 편집기에서 파일을 엽니다.
예약된 작업 표시를 위한 코드 추가
시스템에 crontab 이 아직 설치되어 있지 않은 경우 설치합니다. crontab 을 설치하려면 터미널에서 다음 명령을 실행합니다.
sudo apt-get update
sudo apt-get install cron
task_scheduler.sh 파일 내부에 다음 코드를 추가합니다.
#!/bin/bash
## Function to display the scheduled tasks
list_tasks() {
echo "Scheduled tasks:"
crontab -l
echo
}
이 코드는 crontab -l 명령을 사용하여 예약된 작업을 표시하는 list_tasks라는 함수를 정의합니다.
새로운 작업 추가를 위한 코드 추가
이전에 추가한 코드 아래에 다음 코드를 추가합니다.
## Function to add a new task
add_task() {
read -p "Enter the command or script to be executed: " command
read -p "Enter the schedule (hourly, daily, weekly): " schedule
read -p "Enter any additional parameters: " parameters
case $schedule in
hourly)
cron_schedule="0 * * * *"
;;
daily)
cron_schedule="0 0 * * *"
;;
weekly)
cron_schedule="0 0 * * 0"
;;
*)
echo "Invalid schedule. Please choose hourly, daily, or weekly."
return
;;
esac
## Add the task to the crontab
(
crontab -l 2> /dev/null
echo "$cron_schedule $command $parameters"
) | crontab -
echo "Task scheduled successfully."
echo
}
이 코드는 add_task라는 함수를 정의하며, 사용자에게 실행할 명령 또는 스크립트, 스케줄 (시간별, 일별 또는 주별) 및 추가 매개변수를 입력하라는 메시지를 표시합니다. 그런 다음 선택한 스케줄에 따라 적절한 cron 스케줄을 설정합니다. 마지막으로 crontab -l 명령을 사용하여 작업을 crontab 에 추가합니다.
작업 삭제를 위한 코드 추가
이전에 추가한 코드 아래에 다음 코드를 추가합니다.
## Function to remove a task
remove_task() {
read -p "Enter the command or script to be removed: " command
## Remove the task from the crontab
crontab -l | grep -v "$command" | crontab -
echo "Task removed successfully."
echo
}
이 코드는 remove_task라는 함수를 정의하며, 사용자에게 제거할 명령 또는 스크립트를 입력하라는 메시지를 표시합니다. 그런 다음 crontab -l 명령을 사용하여 작업을 crontab 에서 제거합니다.
메인 메뉴 루프를 위한 코드 추가
이전에 추가한 코드 아래에 다음 코드를 추가합니다.
## Main menu loop
while true; do
echo "Task Scheduler"
echo "1. List scheduled tasks"
echo "2. Add a task"
echo "3. Remove a task"
echo "4. Exit"
read -p "Enter your choice: " choice
echo
case $choice in
1)
list_tasks
;;
2)
add_task
;;
3)
remove_task
;;
4)
break
;;
*)
echo "Invalid choice. Please try again."
echo
;;
esac
done
이 코드는 메뉴를 반복적으로 표시하고 사용자에게 선택을 요청하는 메인 메뉴 루프를 설정합니다. 선택한 옵션에 따라 해당 함수 (list_tasks, add_task 또는 remove_task) 를 호출하거나 루프를 종료합니다.
파일 저장 및 닫기
task_scheduler.sh 파일에 변경 사항을 저장하고 텍스트 편집기를 닫습니다.
스크립트를 실행 가능하게 만들려면 터미널에서 다음 명령을 실행합니다.
chmod +x task_scheduler.sh
이 명령은 task_scheduler.sh 파일에 실행 권한을 설정합니다.
프로젝트 실행
작업 스케줄러를 실행하려면 터미널에서 다음 명령을 실행합니다.
./task_scheduler.sh
이 명령은 task_scheduler.sh 스크립트를 실행하고 작업 스케줄러를 시작합니다. 화면의 지침에 따라 예약된 작업을 나열하고, 새 작업을 추가하거나, 기존 작업을 제거하십시오.

요약
축하합니다! 작업 스케줄러 프로젝트를 성공적으로 완료했습니다. 작업을 예약하고 관리할 수 있는 Bash 스크립트를 만들었습니다. 이 스크립트는 예약된 작업을 나열하고, 새 작업을 추가하며, 기존 작업을 제거하는 옵션을 제공합니다. 특정 요구 사항에 맞게 스크립트를 자유롭게 사용자 정의하십시오. 즐거운 스케줄링 되세요!



