it-swarm.com.de

Deaktivieren Sie die Option zum Entfernen von crontab in der CLI

Wie deaktiviere ich einen bestimmten Befehl, zum Beispiel crontab -r?

Es ist mir schon zweimal passiert, dass ich das versehentlich laufen lasse, weil meine E Schlüssel ist neben dem R Schlüssel. Dieser kleine Tippfehler ist genug und Ihre Crontab ist weg.

13
user66638

Verwenden Sie einen Wrapper um den Befehl crontab, zum Beispiel würde diese Funktion Folgendes tun:

crontab () { [[ [email protected] =~ -[iel]*r ]] && echo '"r" not allowed' || command crontab "[email protected]" ;}

Diese Funktion prüft, ob -r im Argument von crontab existiert; Wenn ja, wird der Befehl mit der Meldung "r" not allowed beendet, andernfalls wird der Befehl ausgeführt.

Fügen Sie es in Ihren ~/.bashrc ein, um es bei der Initialisierung aller interaktiven bash Sitzungen zu laden.

16
heemayl

Ich schlage vor, dass Sie einschließen

alias crontab="crontab -i"

in deiner ~/.bashrc Datei (starte eine neue Shell bevor du testest!)

Dies bedeutet, dass Sie jedes Mal, wenn Sie crontab ausführen, die Option "-i" auswählen. Wenn Sie jetzt den Befehl crontab -r eingeben, wird er bei crontab -ir verarbeitet, was vor dem Entfernen der crontab-Datei angezeigt wird:

[email protected]:~$ crontab -r
crontab: really delete nick's crontab? (y/n) n
27
Nick Sillito