歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu使用-記錄終端輸出的LOG

Ubuntu使用-記錄終端輸出的LOG

日期:2017/2/28 16:17:45   编辑:Linux教程
先要說明為什麼要記錄終端會話,因為常會遇到這樣的情況,終端是有緩存大小限制的,當在終端打印的消息超出緩存范圍,它前面的打印消息就自動丟失了,這對於我們調試程序會造成障礙,所以有記錄完整終端打印消息的必要!

1使用script記錄Linux終端會話

script是大多數Linux產品util-linux軟件包的一部分。

script記錄會話的一切內容:你輸入的內容和你看到的內容。它甚至記錄顏色;因此如果你的命令提示符或程序輸出中包含顏色,script將記錄它。

要使用script,簡單執行以下命令:

$ script

默認情況下,它向當前目錄的typescript文件中寫入內容。然後,你輸入的一切內容都被記錄到那個文件中。要往另一個文件中記錄日志,只需使用script/path/to/file命令。

完成記錄後,輸入exit退出。這個命令將關閉script會話並保存文件。現在你可以使用cat或其它任何程序來檢查日志文件。

在Ubuntu/或者其他linux下運行,

script screen.log

開始記錄,

記錄屏幕信息到screen.log裡,一直記錄到你exit為止,記錄屏幕log的好方法…

結束記錄:

exit

使用實例

  1. aulyp@ubuntu:/home/workspace/Android_eclair_smdk6410$ sudo script screen.log //¿ªÊ¼¼Ç¼
  2. [sudo] password for aulyp:
  3. Script started, file is screen.log
  4. root@ubuntu:/home/workspace/android_eclair_smdk6410# sudo make clean
  5. ============================================
  6. PLATFORM_VERSION_CODENAME=REL
  7. PLATFORM_VERSION=2.1
  8. TARGET_PRODUCT=generic
  9. TARGET_BUILD_VARIANT=eng
  10. TARGET_SIMULATOR=
  11. TARGET_BUILD_TYPE=release
  12. TARGET_ARCH=arm
  13. HOST_ARCH=x86
  14. HOST_OS=linux
  15. HOST_BUILD_TYPE=release
  16. BUILD_ID=ERD79
  17. ============================================
  18. Cleaning out/target/product/generic...
  19. Cleaning out/target/common...
  20. Cleaning out/host/linux-x86...
  21. Cleaning out/host/common...
  22. Clean.
  23. root@ubuntu:/home/workspace/android_eclair_smdk6410# exit //Í˳ö¼Ç¼
  24. exit
  25. Script done, file is screen.log
  26. aulyp@ubuntu:/home/workspace/android_eclair_smdk6410$

已經找到了解決方法,異常退出也沒有問題,仍然記錄log,需要加上參數,script -f ido.log,如果在一個終端上使用mkfifo ido.log;script -f ido.log 然後在另一個終端登錄,找到這個ido.log文件,你tail -f 就會滾動輸出你操作的內容..這個非常方便…

2.使用script的缺點在於,它記錄所有特殊的字符;因此你輸入的文件中將充滿控制字符和ANSI轉義序列。你可以在script中使用一個非常簡單的shell來解決這個問題:

SHELL=/bin/bash PS1=”$ ” script

使用script時,不要使用交互式程序或處理窗口的程序,如vior top。它們會破壞會話的輸出結果。另外,日志文件會記錄你使用的任何命令行程序和你完成一項任務所采取的步驟。如果你需要在腳本中編輯一個文件,考慮退出script會話,然後用script –a(它在舊會話後添加新會話)對文件進行編輯後再重新啟動會話。

Copyright © Linux教程網 All Rights Reserved