Ich arbeite in einer Umgebung mit mehreren Benutzern, in der mehrere Benutzer gleichzeitig die Crontab bearbeiten können. Dies kann manchmal zu Problemen führen, bei denen die Änderungen einiger Benutzer nicht in der Crontab erscheinen, da ein anderer Benutzer einige Sekunden später Änderungen vorgenommen hat (zu einer älteren Kopie des Cron).KSH Einstellen des Aliasnamens mit dem Argument im Aliasnamen
Als schnellen Hack wollte ich eine Geschichte von Crontabs behalten - ein Diff auf diesen zu zeigen, würde uns sofort zeigen, wo Änderungen vorgenommen werden sollten, sollte jemand gleichzeitig an der Crontab arbeiten.
Ich habe ein sehr einfaches Skript:
#! /bin/ksh
export datetime=`date +%Y%m%d_%H%M`
echo "Your username?: \c"
read username
crontab -l > /u01/app/oracle/dba/scripts/audit/cron_hist/"crontab_"$username"_"$datetime
export cronfile=/u01/app/oracle/dba/scripts/audit/cron_hist/"crontab_"$username"_"$datetime
### echo $cronfile
vi $cronfile
crontab < $cronfile
Meine Absicht Skript jedes Mal einen Benutzertypen „crontab -e“ auf der Kommandozeile ausgeführt haben sollte.
Ich wollte einen Alias für die Verwendung von "crontab -e" festlegen und das Skript ausführen. Allerdings habe ich erkannt, dass ich nicht Alias mit einem Befehl mit einem Argument als Alias-Namen verwenden kann.
Gibt es einen Weg um dies? Ich will immer nur, dass mein Programm läuft, wenn "crontab -e" speziell aufgerufen wird.
HINWEIS: Alle Benutzer melden sich in der gleichen Benutzerumgebung an (d. H. Admin), so dass sie alle dieselbe crontab bearbeiten.
Sie können den Alias in Ihrem Skript entfernen. Ist es unalias in ksh? nicht sicher. –
Jean-François Fabre - in meinem Skript gibt es keinen Alias. Was ich tun möchte, ist dieses Skript als Alias mit dem Aliasnamen "crontab -e" einzustellen. Obviosuly ich konnte den Alias als "Crontab" setzen, aber das ist nicht ideal – Huskie69