在 debug, compile, make world... 的時後, 如果訊息太長, 通常都是用 screen 往上慢慢翻, 不然就是用 "> file" 將輸出導到某個檔案去, 然後再去看那檔案的內容.
但是現在遇到一個問題, 我是遠端 ssh 執行某個指令, 然後要接收他的回傳值, 這讓上述的兩種作法都行不通.
- screen: 因為一次上百台機器, 記錄太長, 搜尋困難
- "> file": 在接收回傳值前, 都有些問答要答(ex: 問密碼, 問 y/n 等等的), 用此方法會看不到, 以致無法做此問答動作.
此時就要請出 script 的命令來用, 用法如下:
- script [filename] # 開始記錄(Terminal 中的內容)
- exit # 此時就會將 Terminal 的內容寫入 [filename] 中
ex:
- script /tmp/make_world.log
- ... make world ..... 開始創造世界...
- exit
- less /tmp/make_world.log # 就可以看到中間所有過程(也可當記錄教學用)
還有一些詳細的參數, 可自己再 man script.
script 的確是可以這樣用,不過有一個缺點,會記錄所有按鍵動作
如果只是要記錄 output,也可以考慮使用 tee 這隻程式
最後的結果乾淨多了
感謝指點, 但是我剛剛用 tee 的狀況是, 好像不太合用(還是應該說我不會用)..
ls / | tee /tmp/xxx
我是先這樣子測試是 ok 的, 但是若我要執行多重指令, 不知道該怎麼用耶.. Orz..
嗯 這只是我個人的使用習慣啦,未必適用於你的要求
如果有多個指令的話,tee 會比較麻煩
我自己的使用是這樣的
1.如果那一堆指令是固定的,我會寫到一個 script 去跑結果就可以丟給 tee
也可以 sh | tee log 這樣一直到離開那個 shell 之前 所有丟到 stdout 的東西都會被記錄下來
2.如果是記錄任意的操作過程,我一般就直接用 screen 的 log 功能(c-a H)來記錄
感謝您的經驗提供, 看起來 screen c-a H 的記錄功能會更好用~~ 😀
我再來試試看~~~ 感恩~ Orz..
當這類事情變多的時候,就值得寫一隻 script 專門來搞。請笑納:
http://www.jeffhung.net/blog/articles/jeffhung/6/
我主要遇到的問題主要是要做記錄, 找不到好方法來記錄...
不過您寫的這支 script 很棒, 感謝提供 😀
生成的log文件里面带有esc颜色代码,看的时候不方便
我写了一个在线小工具,可以把他们转换为html代码
欢迎使用:
http://fwolf.com/tools/screenlog2html.php
這個實在太棒了, 感謝您 😀