我需要的全输出保存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”告诉屏幕打开自动输出日志记录的窗口。
您也可以使用Control-A + H到测井公司保存到screenlog.n文件。 一个更控制-A + H关闭。
的Ca H:开始/结束当前窗口到文件“screenlog.n”的记录。
为MAC终端:
script -a -t 0 out.txt screen /dev/ttyUSB0 115200
细节
script
内置的应用程序“使终端会话的打字稿” -a
追加到输出文件 -t 0
写作之间的时间来输出文件是0秒,所以out.txt是为每一个新的char更新 out.txt
只是输出文件名 screen /dev/ttyUSB0 115200
-命令从问题,用于连接到外部装置 那么你可以使用尾部看到该文件被更新
尾-100 out.txt
下面的命令适用于丝网版02年6月4日
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/ 。
所选答案不与多个会话中工作得非常好,并没有允许指定自定义日志文件名。
对于多屏会议,这是我的公式:
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
将打印在日志文件: 源 。
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日志文件
按Ctrl + A然后按Shift + H为我工作。 您可以查看文件screenlog.0
而程序仍在运行。
Unix下的“脚本”的命令应该做的伎俩。 只需在新的控制台开始运行它,你应该是好的。
下面可能是有用的(测试:Linux的/ Ubuntu的12.04):
cat /dev/ttyUSB0
使用上面,你可以然后做所有你需要重新方向。 例如,转储输出到控制台,同时保存到你的文件,你会怎么做:
cat /dev/ttyUSB0 | tee console.log
这里有一个窍门:把它包在sh -c
!
screen sh -c './some-script 2>&1 | tee mylog.log'
其中2>&1
重定向标准错误到stdout这样tee
可以捕获和记录错误消息。