![如何知道记录用户执行的完整脚本名称?](https://linux22.com/image/78638/%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E8%AE%B0%E5%BD%95%E7%94%A8%E6%88%B7%E6%89%A7%E8%A1%8C%E7%9A%84%E5%AE%8C%E6%95%B4%E8%84%9A%E6%9C%AC%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
我想记录用户执行的脚本的全名,包括他提供给该脚本的选项/参数。
我能够使用basename
and取得一些成功,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
通过在我的所有脚本中包含这两行,我能够记录谁在做什么以及他们提供了什么选项。