我在多用户环境中工作,多用户环境中多个用户可以(并且经常)同时编辑crontab。这有时会导致某些用户的更改没有出现在crontab中,因为另一个用户在几秒钟之后进行了更改(对cron的旧副本)。KSH使用别名名称设置别名名称
作为一个快速破解,我想保留crontabs的历史记录 - 运行diff的这些将立即向我们显示应该在crontab中同时有人工作的情况下进行更改。
我创建了一个非常基本的脚本:
#! /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
我的目的是要脚本每次运行命令行用户键入“crontab -e命令”。
我想设置一个别名来使用“crontab -e”并执行脚本。然而,我意识到我不能用一个带有参数的命令作为别名来使用别名。
有没有办法解决这个问题?我只想让我的程序运行,如果“crontab -e”被专门调用。
注意:所有用户都登录到相同的用户环境(即管理员),因此他们都编辑相同的crontab。
您可以删除脚本中的别名。它在ksh中是否为unalias?不确定。 –
让 - 弗朗索瓦法布尔 - 我的剧本里没有别名。我想要做的是使用别名“crontab -e”将set脚本作为别名。显然我可以将别名设置为“crontab”,但这并不理想 – Huskie69