はじめに
このプロジェクトでは、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
## 予定されたタスクを表示する関数
list_tasks() {
echo "予定されたタスク:"
crontab -l
echo
}
このコードは、list_tasks という名前の関数を定義しており、この関数は crontab -l コマンドを使って予定されたタスクを表示します。
新しいタスクを追加するコードを追加する
先ほど追加したコードの下に、次のコードを追加します。
## 新しいタスクを追加する関数
add_task() {
read -p "実行するコマンドまたはスクリプトを入力してください:" command
read -p "スケジュール (毎時、毎日、毎週) を入力してください:" schedule
read -p "追加のパラメータを入力してください:" parameters
case $schedule in
hourly)
cron_schedule="0 * * * *"
;;
daily)
cron_schedule="0 0 * * *"
;;
weekly)
cron_schedule="0 0 * * 0"
;;
*)
echo "無効なスケジュールです。毎時、毎日、または毎週を選択してください。"
return
;;
esac
## タスクを crontab に追加する
(
crontab -l 2> /dev/null
echo "$cron_schedule $command $parameters"
) | crontab -
echo "タスクが正常にスケジュールされました。"
echo
}
このコードは、add_task という名前の関数を定義しており、この関数はユーザーに実行するコマンドまたはスクリプト、スケジュール(毎時、毎日、または毎週)、および追加のパラメータを入力するよう促します。その後、選択されたスケジュールに基づいて適切な cron スケジュールを設定します。最後に、crontab -l コマンドを使ってタスクを crontab に追加します。
タスクを削除するコードを追加する
先ほど追加したコードの下に、次のコードを追加します。
## タスクを削除する関数
remove_task() {
read -p "削除するコマンドまたはスクリプトを入力してください:" command
## タスクを crontab から削除する
crontab -l | grep -v "$command" | crontab -
echo "タスクが正常に削除されました。"
echo
}
このコードは、remove_task という名前の関数を定義しており、この関数はユーザーに削除するコマンドまたはスクリプトを入力するよう促します。その後、crontab -l コマンドを使ってタスクを crontab から削除します。
メイン メニュー ルのループ用のコードを追加する
先ほど追加したコードの下に、次のコードを追加します。
## メイン メニューのループ
while true; do
echo "タスク スケジューラ"
echo "1. 予定されたタスクを一覧表示する"
echo "2. タスクを追加する"
echo "3. タスクを削除する"
echo "4. 終了する"
read -p "選択肢を入力してください:" choice
echo
case $choice in
1)
list_tasks
;;
2)
add_task
;;
3)
remove_task
;;
4)
break
;;
*)
echo "無効な選択肢です。再度お試しください。"
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 スクリプトを作成しました。このスクリプトは、予定されたタスクを一覧表示したり、新しいタスクを追加したり、既存のタスクを削除したりするオプションを提供します。あなたの特定のニーズに合うように、スクリプトをさらにカスタマイズすることも自由にできます。楽しい予定調整を!



