Introdução
Este projeto irá guiá-lo através da criação de um agendador de tarefas usando um script Bash. O agendador de tarefas permite que você agende e gerencie tarefas a serem executadas em intervalos especificados, como a cada hora, diariamente ou semanalmente. O script oferece opções para listar tarefas agendadas, adicionar novas tarefas e remover tarefas existentes.
👀 Pré-visualização

Para começar, você precisará criar um arquivo chamado task_scheduler.sh e escrever o código fornecido nele. Vamos prosseguir para o primeiro passo.
🎯 Tarefas
Neste projeto, você aprenderá:
- Como criar os arquivos do projeto
- Como adicionar código para exibir tarefas agendadas
- Como adicionar código para adicionar uma nova tarefa
- Como adicionar código para remover uma tarefa
- Como configurar o loop do menu principal
- Como tornar o script executável
- Como executar o projeto
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Criar um script Bash
- Usar o
crontabpara agendar tarefas - Solicitar entrada do usuário em um script Bash
- Adicionar e remover tarefas do
crontab - Criar um loop de menu em um script Bash
- Tornar um script Bash executável e executá-lo
Criar os arquivos do projeto
Crie um novo arquivo chamado task_scheduler.sh usando um editor de texto de sua escolha. Você pode usar o seguinte comando para criar o arquivo:
cd ~/project
touch task_scheduler.sh
Agora, abra o arquivo em seu editor de texto.
Adicionar código para exibir as tarefas agendadas
Instale o crontab se ele ainda não estiver instalado em seu sistema. Para instalar o crontab, execute o seguinte comando no terminal:
sudo apt-get update
sudo apt-get install cron
Dentro do arquivo task_scheduler.sh, adicione o seguinte código:
#!/bin/bash
## Function to display the scheduled tasks
list_tasks() {
echo "Scheduled tasks:"
crontab -l
echo
}
Este código define uma função chamada list_tasks, que exibe as tarefas agendadas usando o comando crontab -l.
Adicionar código para adicionar uma nova tarefa
Abaixo do código adicionado anteriormente, adicione o seguinte código:
## 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
}
Este código define uma função chamada add_task, que solicita ao usuário que insira o comando ou script a ser executado, a programação (horária, diária ou semanal) e quaisquer parâmetros adicionais. Em seguida, define a programação cron apropriada com base na programação escolhida. Finalmente, adiciona a tarefa ao crontab usando o comando crontab -l.
Adicionar código para remover uma tarefa
Abaixo do código adicionado anteriormente, adicione o seguinte código:
## 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
}
Este código define uma função chamada remove_task, que solicita ao usuário que insira o comando ou script a ser removido. Em seguida, remove a tarefa do crontab usando o comando crontab -l.
Adicionar código para o loop do menu principal
Abaixo do código adicionado anteriormente, adicione o seguinte código:
## 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
Este código configura um loop de menu principal que exibe repetidamente um menu e solicita ao usuário sua escolha. Com base na opção escolhida, ele chama a função correspondente (list_tasks, add_task ou remove_task) ou sai do loop.
Salvar e fechar o arquivo
Salve as alterações no arquivo task_scheduler.sh e feche o editor de texto.
Para tornar o script executável, execute o seguinte comando no terminal:
chmod +x task_scheduler.sh
Este comando define a permissão de execução para o arquivo task_scheduler.sh.
Executar o projeto
Para executar o agendador de tarefas, execute o seguinte comando no terminal:
./task_scheduler.sh
Este comando executa o script task_scheduler.sh e inicia o agendador de tarefas. Siga as instruções na tela para listar tarefas agendadas, adicionar novas tarefas ou remover tarefas existentes.

Resumo
Parabéns! Você concluiu com sucesso o projeto do agendador de tarefas. Você criou um script Bash que permite agendar e gerenciar tarefas. O script oferece opções para listar tarefas agendadas, adicionar novas tarefas e remover tarefas existentes. Sinta-se à vontade para personalizar o script ainda mais para atender às suas necessidades específicas. Boas programações!



