diff --git a/cron.sh b/cron.sh new file mode 100644 index 0000000..a3c8def --- /dev/null +++ b/cron.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Funktion zur Eingabe einer numerischen Zahl oder Wildcard +read_number_or_wildcard() { + local prompt=$1 + local input + + while true; do + read -p "$prompt" input + if [[ $input =~ ^[0-9]+$ || $input == "*" ]]; then + break + fi + echo "Ungültige Eingabe. Bitte geben Sie eine numerische Zahl oder eine Wildcard (*) ein." + done + + echo "$input" +} + +# Funktion zur Eingabe einer Zeichenkette +read_string() { + local prompt=$1 + local string + + read -p "$prompt" string + echo "$string" +} + +# Eingabe der Minuten +minutes=$(read_number_or_wildcard "Geben Sie die Minuten ein (0-59 oder * für jede Minute): ") + +# Eingabe der Stunden +hours=$(read_number_or_wildcard "Geben Sie die Stunden ein (0-23 oder * für jede Stunde): ") + +# Eingabe der Tage des Monats +days=$(read_number_or_wildcard "Geben Sie die Tage des Monats ein (1-31 oder * für jeden Tag): ") + +# Eingabe des Monats +months=$(read_number_or_wildcard "Geben Sie den Monat ein (1-12 oder * für jeden Monat): ") + +# Eingabe der Wochentage +weekdays=$(read_number_or_wildcard "Geben Sie den Wochentag ein (0-6, 0 steht für Sonntag oder * für jeden Wochentag): ") + +# Eingabe des Befehls +command=$(read_string "Geben Sie den Befehl für den Cron-Job ein: ") + +# Generieren des Cron-Jobs +cron_job="$minutes $hours $days $months $weekdays $command" + +# Schreiben des Cron-Jobs in die Crontab-Datei +echo "$cron_job" >> mycron +crontab mycron +rm mycron + +echo "Der Cron-Job wurde erfolgreich erstellt und der Crontab hinzugefügt."