有没有办法记录(/ var/log)用户在* nix终端执行的命令?记录终端命令* nix
回答
尽管会占用大量的磁盘空间,但进程记帐仍是一种方法。除非你有一个非常难以理解的盒子,否则它不是我可以运行的东西,但它对于解决问题非常有用,因为它基本上跟踪每一个过程,一个简单的“ps快照”工具无法比拟的说法。
你基本上与accton /var/account/pacct
打开它和内核然后写入每进程退出,其中的细节:
- 进程名(不指定参数时,不幸)。
- 开始时间。
- 经过的时间。
- 用户和系统CPU时间。
- 退出代码。
- 内存,I/O,故障和交换统计。
- 进程ID。
- 父进程ID。
和其他一些事情。
你把它关闭了一个裸体accton
所以你笑所有在Windows上使用Start
按钮关闭的人,呵呵! :-)
有两种可记录的变种记录v1和v3 - 确保您使用最新的进程记帐软件和v3记录,因为它们拥有更多有用的信息。 /usr/include/linux/acct.h文件显示你可以从那里获得什么。
记录都是固定大小(不管版本),并且易于处理。
我们刚刚为我们的性能监控软件完成了一个Linux代理 - 我以为在记忆中仍然记忆犹新的时候我会记下它。
有一点需要注意的是comp_t领域 - 它们其实是抱着一个大范围的值在16位的怪异指数/尾数类型 - 算法是把它变成一个长的很简单:
comp_t ct = ?;
long val = (ct & 0x1fff) << (((ct >> 13) & 0x7) * 3);
另一件事是,有些值是在时钟刻度,而不是秒,所以你必须除以sysconf (_SC_CLK_TCK)
返回的值。
愚蠢的想法从我的头顶:
script
将在会议复制到文件中。你可以将它发送到一个正在被日志记录过程读取的命名管道---唯一的事情是,你会得到输出以及命令。
假设您为了安全目的而执行此操作,请查看流程记帐。您没有说明您使用的是哪种UNIX版本,但对于Linux,请看http://www.gnu.org/software/acct/请注意,当进程记帐写入有关系统范围内每个命令(其内核功能)的数据时,您将生成大量数据。你的发行版可能已经有公用事业了;在Debian中检查'acct'包。
如果你只是想记录你所做的事情,你可以稍后再回头看看,脚本(如在其他答案中)或屏幕(使用-L)将提供更好的解决方案。但是,它们不适用于安全审计,因为它可以绕过它们:仅运行一个shell脚本。此外,行编辑使文件变得非常混乱。诅咒应用程序(如文本编辑器)更糟糕。另外,如果您通过例如脚本强制用户,您可能会收集信息(例如,电子邮件),这可能对您来说非法截取。
啊。有人知道他们在说什么。给予好评。 – dmckee 2008-12-07 05:24:34
- 1. 命令记录终端不使用bash
- 2. 终端命令
- 3. 记忆* nix的命令行参数
- 4. Ubuntu终端命令
- 5. Telnet /终端命令
- 6. Tomcat终端命令
- 7. 写命令终端
- 8. FileMaker终端命令
- 9. 更改目录和AppleScript终端命令
- 10. 搜索并替换终端历史记录中的命令
- 11. 最终记录的特殊AWK命令
- 12. -in命令在终端复杂命令
- 13. * Java中的Nix ls命令
- 14. 终端命令“rails server”
- 15. 终端 - 命令未找到
- 16. Python命令输出终端
- 17. postgres dropdb命令在终端
- 18. Hadoop的命令,在终端
- 19. 执行终端命令
- 20. Linux终端SCREEN命令
- 21. PHP - 终端/命令行 - Mac
- 22. 命令行串行终端
- 23. 执行终端命令
- 24. 终端命令行python3.3
- 25. PostgreSQL的psql终端命令
- 26. 禁用终端命令
- 27. WhatsChrome的终端命令
- 28. mac自动终端命令?
- 29. 终端如果命令
- 30. Mac终端“重置”命令
@dmckee:什么是* nix?一种指向Unix的方式?别的东西? – Lazer 2010-05-24 08:48:04