如何知道记录用户执行的完整脚本名称?

如何知道记录用户执行的完整脚本名称?

我想记录用户执行的脚本的全名,包括他提供给该脚本的选项/参数。

我能够使用basenameand取得一些成功,whoami但它没有给我论据。

例子:让我们假设用户运行这样的脚本

root@host1:./collect_user_summary.ksh -h 20 -l 10 -x local

我的日志文件中所需的输出:

"collect_user_summary.ksh -h 20 -l 10 -x local"

我所取得的成就:basename并且whoami我能够得到

"collect_user_summary.ksh  username"

我的环境:Solaris 10,kornshell。

答案1

更新:我看到你们大多数人都指示我记录终端中输入的所有命令。我不想那样。我想做的就是每当有人执行我的脚本时,我只需要记录他提供的选项以及脚本名称。

经过一段时间的思考,我终于明白了。我正在使用以下方法来实现它。 示例脚本:

#!/bin/ksh
NAME=`basename $0`
echo `date` $WHOAMI ran this script $NAME with options -h $HVARIABLE -l $LVARIABLE -x $LOCALVARIABLE >> scripts.log
.
..
..
....
echo "SUCCESS" >> scripts.log
exit 0

通过在我的所有脚本中包含这两行,我能够记录谁在做什么以及他们提供了什么选项。

相关内容