我需要將整個輸出screen
保存到一個文件中,以便稍後檢查所有內容。 原因是我通過串口卸載閃存,使用屏幕與其進行交互。 我想將它保存到一個文件來檢查內存結構。將「屏幕」(程序)輸出保存到一個文件
我已經試過:
$: screen /dev/ttyUSB0 115200 >> foo.txt
$: screen /dev/ttyUSB0 115200 | tee foo.txt
而且我還試圖用bufferfile從屏幕上,但我不知道如何使用它。
有沒有簡單的方法?
我需要將整個輸出screen
保存到一個文件中,以便稍後檢查所有內容。 原因是我通過串口卸載閃存,使用屏幕與其進行交互。 我想將它保存到一個文件來檢查內存結構。將「屏幕」(程序)輸出保存到一個文件
我已經試過:
$: screen /dev/ttyUSB0 115200 >> foo.txt
$: screen /dev/ttyUSB0 115200 | tee foo.txt
而且我還試圖用bufferfile從屏幕上,但我不知道如何使用它。
有沒有簡單的方法?
有一個用於記錄的命令行選項。輸出保存到screenlog.n文件中,其中n是屏幕的編號。 從屏幕的手冊頁:
'-L'告訴屏幕打開窗口的自動輸出日誌記錄。
下可能是有用的(測試:Linux的/ Ubuntu的12.04):
cat /dev/ttyUSB0
使用上面,你可以然後做所有你需要重新方向。例如,要將輸出轉儲到您的控制檯,同時保存到您的文件,您應該這樣做:
cat /dev/ttyUSB0 | tee console.log
這一個完美的工作。我正在記錄來自Arduino數據捕獲會話的串行監視器輸出。 –
爲Mac終端:
script -a -t 0 out.txt screen /dev/ttyUSB0 115200
細節
script
內置應用程序 「使終端會話的打字稿」-a
追加到-t 0
時間輸出文件在寫入輸出文件之間是0秒,所以out.t XT是更新的每一個新的焦炭out.txt
只是輸出文件名screen /dev/ttyUSB0 115200
- 從問題的命令,用於連接到外部設備然後你可以使用尾部看到文件正在更新
尾巴-100出。txt
這在Mac上不適用於我。日誌文件顯示腳本啓動公共和命令結束,但不顯示從屏幕命令收到的數據。 – David
所選答案對於多個會話不起作用,並且不允許指定自定義日誌文件名。
對於多屏會議,這是我的公式:
1)創建爲每個進程的配置文件:如果你想這樣做「對飛」
logfile test.log
logfile flush 1
log on
logtstamp after 1
logtstamp string "[ %t: %Y-%m-%d %c:%s ]\012"
logtstamp on
,您可以更改logfile
自動。 \012
意味着「新行」,因爲使用\n
將打印在日誌文件中:source。
2)開始與 「-c」 和 「-L」 標誌您的命令:
screen -c ./test.conf -dmSL 'Test' ./test.pl
就是這樣。你會看到「test.log中」先沖洗後:
...
6 Something is happening...
[ test.pl: 2016-06-01 13:02:53 ]
7 Something else...
[ test.pl: 2016-06-01 13:02:54 ]
8 Nothing here
[ test.pl: 2016-06-01 13:02:55 ]
9 Something is happening...
[ test.pl: 2016-06-01 13:02:56 ]
10 Something else...
[ test.pl: 2016-06-01 13:02:57 ]
11 Nothing here
[ test.pl: 2016-06-01 13:02:58 ]
...
我發現,「-L」,即使「登錄」是在配置文件中仍然需要。
我找不到屏幕使用的時間格式變量(如%m)的列表。如果您有這些格式的鏈接,請將其張貼在下面。
** ** EXTRA
如果你想這樣做 「對飛」,你可以使用這個腳本:
#!/bin/bash
if [[ $2 == "" ]]; then
echo "Usage: $0 name command";
exit 1;
fi
name=$1
command=$2
path="/var/log";
config="logfile ${path}/${name}.log
logfile flush 1
log on
logtstamp after 1
logtstamp string \"[ %t: %Y-%m-%d %c:%s ]\012\"
logtstamp on";
echo "$config" > /tmp/log.conf
screen -c /tmp/log.conf -dmSL '$name' $command
rm /tmp/log.conf
要使用它,將它保存(screen.sh)並設置+ X權限:
./screen.sh TEST ./test.pl
...並且將執行./test.pl和/var/log/TEST.log
謝謝 - 「即時」部分非常有用。 –
接下來,一個屏幕上運行一個配置文件在運行中創建和刪除過夜在'screen -r'上出錯,無法打開「/tmp/log.conf」'此外,屏幕從' [detached]狀態爲不存在,可能是什麼問題? –
你的命令做了什麼?屏幕會在缺失時重新創建日誌文件,所以我猜測/ tmp /空間不足或者有其他一些操作系統我在幾臺服務器上使用這種方法,這些服務器無限期地運行,至少在1年內我沒有看到過這種情況,如果你想讓我們開始聊天,我可以幫助你調試你的問題 – lepe
創建日誌文件Ctrl + A然後Shift + H適合我。程序仍在運行時,您可以查看文件screenlog.0
。
下面的命令適用於絲網版02年4月6日
screen -L -Logfile Log_file_name_of_your_choice command_to_be_executed
從屏幕的手冊頁:
-Logfile file : By default logfile name is "screenlog.0".
You can set new logfile name with the "-Logfile" option.
可以檢查屏幕現有版本使用屏幕-version。您可以從https://www.gnu.org/software/screen/下載並安裝最新的屏幕版本。
我正在使用的生產設置有多個屏幕實例。我需要輸出的那個人的行數爲'pts/10'。因此,我應該怎麼做才能將其輸出到文件中? – Sid