Linux 輸出或儲存終端顯示

hky87發表於2012-09-28
如何在輸出資訊的同時將其儲存在檔案中?
有三種方式
1. 直接將命令的結果用 > 把輸出轉向
[root@www ~]# ls >ls.txt
[root@www ~]# cat ls.txt
anaconda-ks.cfg
cronolog-1.6.2
install.log
install.log.syslog
ls_tee.txt
ls.txt
typescript

2.利用tee在輸出資訊的同時儲存到檔案中
tee的含義:read from standard input and write to standard output and files

[root@www ~]# ls | tee ls_tee.txt
anaconda-ks.cfg
cronolog-1.6.2
install.log
install.log.syslog
ls_tee.txt
ls.txt
typescript
[root@www ~]# cat ls_tee.txt
anaconda-ks.cfg
cronolog-1.6.2
install.log
install.log.syslog
ls_tee.txt
ls.txt
typescript

3.多個命令的輸出都需要記錄,可以用script


[root@www ~]# script
Script. started, file is typescript
[root@www ~]# ls
anaconda-ks.cfg  install.log         ls_tee.txt  typescript
cronolog-1.6.2   install.log.syslog  ls.txt
[root@www ~]# exit
exit
Script. done, file is typescript
[root@www ~]# cat typescript
Script. started on Fri 28 Sep 2012 05:27:02 PM CST
[root@www ~]# ls
anaconda-ks.cfg  install.log         ls_tee.txt  typescript
cronolog-1.6.2   install.log.syslog  ls.txt
[root@www ~]# exit
exit

Script. done on Fri 28 Sep 2012 05:27:12 PM CST

在啟動script時沒有指定檔名,它會自動記錄到當前資料夾下一個檔名為typescript的檔案中。也可以用-a 引數  指定檔名
[root@www ~]# script. -a example.txt

另外還可以錄製

並播放session的內容

  我們可以用 script把整個終端會話的所有操作和輸出錄製下來,然後再用scriptreplay進行播放。

  如果錄製時記錄下來了操作時的時間資料,那麼播放時和操作時的使用時間完全相同,

  這個很有用吧,比如:我們可以把安裝軟體時編譯的過程記錄下來,然後給別人進行演示

  看例子:

  $ script. -t 2>example.time -a example.txt

  Script. started, file is example.txt

  $ ls

  說明: -t 2>example.time -t是把時間資料輸出到標準錯誤(standard error)

  所以我們使用 2>example.time 把資料轉向到 example.time這個檔案當中

  如何播放所記錄的內容?

  第一步:安裝scriptreplay

  下載

  wget linux/utils/util-linux/util-linux-2.12r.tar.bz2">ftp://ftp.kernel.org/pub/linux/utils/util-linux/util-linux-2.12r.tar.bz2

  解壓

  tar -jxvf util-linux-2.12r.tar.bz2

  之後複製檔案到系統的命令目錄中即可

  # cp util-linux-2.12r/misc-utils/scriptreplay.pl /usr/bin/scriptreplay

  # chmod 755 /usr/bin/scriptreplay

  備註: fedora 10的util-linux-ng-2.14.1-3.2.fc10.i386.rpm 此包中已包含 scriptreplay,已無需另行安裝

  第二步:播放所錄製的session內容

  $ scriptreplay example1.time example1.txt

  $ ls

  1.gtkrc-2.0 c.tar pass

  $ abcd

  bash: abcd: command not found

  $ exit


錄製及播放沒有測試過

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10314474/viewspace-745392/,如需轉載,請註明出處,否則將追究法律責任。

相關文章