有没有办法确定在特定时间范围内运行了哪些 shell 脚本?例如,我需要知道昨天 2:00 到 5:00 之间运行的所有 shell 脚本。
答案1
一般情况下没有这样的记录,除非脚本在运行时系统地记录到系统日志中,或者它们是作为 cron 作业运行的。您可以查看所有用户的 shell 历史记录,但这些历史记录没有时间记录。
答案2
如果您启用了 pacct,那么您可以使用 lastcomm 来获取最后命令运行的时间。
答案3
将来您可以做的是获取一些进程来定期监控正在运行的 shell 脚本。例如,您可以用 Perl 编写一个脚本,并将其设置为从 crontab 运行,并让它从命令“ps aux”获取正在运行的 shell 脚本,并将这些数据写入日志文件 :)
缺点是它最多每分钟只能运行一次,因此可能会遗漏短时间运行的脚本。这是获取“一般活动水平”的好方法,但无法帮助您审核运行的每个 shell 命令。