有沒有辦法記錄(/ 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