記錄終端輸出的LOG到文件


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

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.  

  2. aulyp@ubuntu:/home/workspace/Android_eclair_smdk6410$ sudo script screen.log //¿ªÊ¼¼Ç¼

  3.  

  4. [sudo] password for aulyp:

  5.  

  6. Script started, file is screen.log

  7.  

  8. root@ubuntu:/home/workspace/android_eclair_smdk6410# sudo make clean

  9.  

  10. ============================================

  11.  

  12. PLATFORM_VERSION_CODENAME=REL

  13.  

  14. PLATFORM_VERSION=2.1

  15.  

  16. TARGET_PRODUCT=generic

  17.  

  18. TARGET_BUILD_VARIANT=eng

  19.  

  20. TARGET_SIMULATOR=

  21.  

  22. TARGET_BUILD_TYPE=release

  23.  

  24. TARGET_ARCH=arm

  25.  

  26. HOST_ARCH=x86

  27.  

  28. HOST_OS=linux

  29.  

  30. HOST_BUILD_TYPE=release

  31.  

  32. BUILD_ID=ERD79

  33.  

  34. ============================================

  35.  

  36. Cleaning out/target/product/generic...

  37.  

  38. Cleaning out/target/common...

  39.  

  40. Cleaning out/host/linux-x86...

  41.  

  42. Cleaning out/host/common...

  43.  

  44. Clean.

  45.  

  46. root@ubuntu:/home/workspace/android_eclair_smdk6410# exit //Í˳ö¼Ç¼

  47.  

  48. exit

  49.  

  50. Script done, file is screen.log

  51.  

  52. 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(它在舊會話后添加新會話)對文件進行編輯后再重新啟動會話。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM