Введение
В этом проекте вас проведет создание планировщика задач с использованием 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 с использованием команды crontab -l.
Добавьте код для удаления задачи
Под先前 добавленным кодом добавьте следующий код:
## Функция для удаления задачи
remove_task() {
read -p "Введите команду или скрипт для удаления: " command
## Удалите задачу из crontab
crontab -l | grep -v "$command" | crontab -
echo "Задача успешно удалена."
echo
}
Этот код определяет функцию с именем remove_task, которая запрашивает у пользователя команду или скрипт для удаления. Затем он удаляет задачу из crontab с использованием команды crontab -l.
Добавьте код для цикла главного меню
Под先前 добавленным кодом добавьте следующий код:
## Цикл главного меню
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-скрипт, который позволяет вам планировать и управлять задачами. Скрипт предоставляет варианты просмотра запланированных задач, добавления новых задач и удаления существующих задач. Не стесняйтесь дальней настройки скрипта в соответствии с вашими конкретными потребностями. Приятного планирования!



