Erstellen eines Aufgabenplaners mit Bash

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Dieses Projekt führt Sie durch die Erstellung eines Task Schedulers mit einem Bash-Skript. Der Task Scheduler ermöglicht es Ihnen, Aufgaben zu planen und zu verwalten, die in bestimmten Intervallen wie stündlich, täglich oder wöchentlich ausgeführt werden sollen. Das Skript bietet Optionen, geplante Aufgaben aufzulisten, neue Aufgaben hinzuzufügen und vorhandene Aufgaben zu entfernen.

👀 Vorschau

Vorschau des Task Scheduler-Skripts

Um loszulegen, müssen Sie eine Datei namens task_scheduler.sh erstellen und den bereitgestellten Code darin schreiben. Lassen Sie uns zum ersten Schritt übergehen.

🎯 Aufgaben

In diesem Projekt lernen Sie:

  • Wie Sie die Projekt-Dateien erstellen
  • Wie Sie Code hinzufügen, um geplante Aufgaben anzuzeigen
  • Wie Sie Code hinzufügen, um eine neue Aufgabe hinzuzufügen
  • Wie Sie Code hinzufügen, um eine Aufgabe zu entfernen
  • Wie Sie die Hauptmenü-Schleife einrichten
  • Wie Sie das Skript ausführbar machen
  • Wie Sie das Projekt ausführen

🏆 Errungenschaften

Nach Abschluss dieses Projekts werden Sie in der Lage sein:

  • Ein Bash-Skript zu erstellen
  • Crontab verwenden, um Aufgaben zu planen
  • Benutzer-Eingaben in einem Bash-Skript abzufragen
  • Aufgaben in der Crontab hinzuzufügen und zu entfernen
  • Eine Menü-Schleife in einem Bash-Skript zu erstellen
  • Ein Bash-Skript ausführbar zu machen und es auszuführen

Erstellen Sie die Projekt-Dateien

Erstellen Sie eine neue Datei namens task_scheduler.sh mit einem beliebigen Texteditor. Sie können den folgenden Befehl verwenden, um die Datei zu erstellen:

cd ~/project
touch task_scheduler.sh

Öffnen Sie nun die Datei in Ihrem Texteditor.

✨ Lösung prüfen und üben

Fügen Sie Code hinzu, um geplante Aufgaben anzuzeigen

Installieren Sie Crontab, wenn es noch nicht auf Ihrem System installiert ist. Um Crontab zu installieren, führen Sie folgenden Befehl im Terminal aus:

sudo apt-get update
sudo apt-get install cron

Fügen Sie im Inneren der Datei task_scheduler.sh folgenden Code hinzu:

#!/bin/bash

## Funktion, um die geplanten Aufgaben anzuzeigen
list_tasks() {
  echo "Geplante Aufgaben:"
  crontab -l
  echo
}

Dieser Code definiert eine Funktion namens list_tasks, die die geplanten Aufgaben mithilfe des Befehls crontab -l anzeigt.

✨ Lösung prüfen und üben

Fügen Sie Code hinzu, um eine neue Aufgabe hinzuzufügen

Unter dem zuvor hinzugefügten Code fügen Sie folgenden Code hinzu:

## Funktion, um eine neue Aufgabe hinzuzufügen
add_task() {
  read -p "Geben Sie den Befehl oder das Skript ein, das ausgeführt werden soll: " command
  read -p "Geben Sie den Zeitplan (stündlich, täglich, wöchentlich) ein: " schedule
  read -p "Geben Sie alle zusätzlichen Parameter ein: " parameters

  case $schedule in
    hourly)
      cron_schedule="0 * * * *"
      ;;
    daily)
      cron_schedule="0 0 * * *"
      ;;
    weekly)
      cron_schedule="0 0 * * 0"
      ;;
    *)
      echo "Ungültiger Zeitplan. Wählen Sie bitte stündlich, täglich oder wöchentlich."
      return
      ;;
  esac

  ## Fügen Sie die Aufgabe zur Crontab hinzu
  (
    crontab -l 2> /dev/null
    echo "$cron_schedule $command $parameters"
  ) | crontab -

  echo "Aufgabe erfolgreich geplant."
  echo
}

Dieser Code definiert eine Funktion namens add_task, die den Benutzer auffordert, den Befehl oder das Skript einzugeben, das ausgeführt werden soll, den Zeitplan (stündlich, täglich oder wöchentlich) und alle zusätzlichen Parameter. Anschließend setzt es den entsprechenden Cron-Zeitplan basierend auf dem gewählten Zeitplan. Schließlich fügt es die Aufgabe zur Crontab hinzu, indem es den Befehl crontab -l verwendet.

✨ Lösung prüfen und üben

Fügen Sie Code hinzu, um eine Aufgabe zu entfernen

Unter dem zuvor hinzugefügten Code fügen Sie folgenden Code hinzu:

## Funktion, um eine Aufgabe zu entfernen
remove_task() {
  read -p "Geben Sie den Befehl oder das Skript ein, das entfernt werden soll: " command

  ## Entfernen Sie die Aufgabe aus der Crontab
  crontab -l | grep -v "$command" | crontab -

  echo "Aufgabe erfolgreich entfernt."
  echo
}

Dieser Code definiert eine Funktion namens remove_task, die den Benutzer auffordert, den Befehl oder das Skript einzugeben, das entfernt werden soll. Anschließend entfernt es die Aufgabe aus der Crontab, indem es den Befehl crontab -l verwendet.

✨ Lösung prüfen und üben

Fügen Sie Code für die Hauptmenü-Schleife hinzu

Unter dem zuvor hinzugefügten Code fügen Sie folgenden Code hinzu:

## Hauptmenü-Schleife
while true; do
  echo "Aufgabenplaner"
  echo "1. Geplante Aufgaben auflisten"
  echo "2. Eine Aufgabe hinzufügen"
  echo "3. Eine Aufgabe entfernen"
  echo "4. Beenden"
  read -p "Geben Sie Ihre Wahl ein: " choice
  echo

  case $choice in
    1)
      list_tasks
      ;;
    2)
      add_task
      ;;
    3)
      remove_task
      ;;
    4)
      break
      ;;
    *)
      echo "Ungültige Wahl. Bitte versuchen Sie es erneut."
      echo
      ;;
  esac
done

Dieser Code setzt eine Hauptmenü-Schleife auf, die wiederholt ein Menü anzeigt und den Benutzer nach ihrer Wahl fragt. Basierend auf der gewählten Option ruft es die entsprechende Funktion (list_tasks, add_task oder remove_task) auf oder beendet die Schleife.

✨ Lösung prüfen und üben

Speichern und Schließen der Datei

Speichern Sie die Änderungen in der Datei task_scheduler.sh und schließen Sie den Texteditor.

Um das Skript ausführbar zu machen, führen Sie folgenden Befehl im Terminal aus:

chmod +x task_scheduler.sh

Dieser Befehl setzt die Ausführbarkeitsberechtigung für die Datei task_scheduler.sh.

✨ Lösung prüfen und üben

Führen Sie das Projekt aus

Um den Aufgabenplaner auszuführen, führen Sie folgenden Befehl im Terminal aus:

./task_scheduler.sh

Dieser Befehl führt das Skript task_scheduler.sh aus und startet den Aufgabenplaner. Folgen Sie den Anweisungen auf dem Bildschirm, um geplante Aufgaben aufzulisten, neue Aufgaben hinzuzufügen oder vorhandene Aufgaben zu entfernen.

Task scheduler terminal output
✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Aufgabenplaner-Projekt erfolgreich abgeschlossen. Sie haben ein Bash-Skript erstellt, das Ihnen ermöglicht, Aufgaben zu planen und zu verwalten. Das Skript bietet Optionen, um geplante Aufgaben aufzulisten, neue Aufgaben hinzuzufügen und vorhandene Aufgaben zu entfernen. Fühlen Sie sich frei, das Skript weiter anzupassen, um Ihren spezifischen Anforderungen zu entsprechen. Frohes Planen!