私は、複数のユーザが同時にcrontabを編集できる(しばしば行う)マルチユーザ環境で働いています。これは、あるユーザーの変更が他のユーザーが数秒後に変更したときにcrontabに表示されない問題につながります(古いcronのコピーに)。KSHエイリアス名の引数でエイリアス名を設定する
クイックハックとして、私はcrontabの歴史を残したかったのです。これらのファイルに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ですか?わからない。 –
Jean-FrançoisFabre - スクリプトにエイリアスはありません。私がしたいのは、エイリアス名 "crontab -e"を使って別名としてスクリプトを設定することです。 Obviosuly私は "crontab"としてエイリアスを設定することができますが、それは理想的ではありません – Huskie69