我有一个在Linux终端上工作的程序。当它运行时,数据输出到终端窗口,数据每秒都在变化。
a b c d
d b c a
c a d b
机器2的数据 - 时间:15:29:31
11 13 17 18 #changing lines
21 18 17 16 #changing lines
18 17 11 9 #changing lines
我想将窗口中的数据以10分钟的间隔记录到1个文件中。什么是Bash脚本,它可以读取窗口的内容,每隔十分钟解析第4行及以下的内容并将其附加到1个文件中?
所需结果的示例 - log.txt:
机器2的数据 - 时间:15:40:00
58 47 61 34
17 8 3 2
机器2的数据 - 时间:15:50:00
5 7 8 12
35 41 70 25
33 41 11 14
机器2的数据 - 时间:16:00:00
12 14 15 16
13 18 19 20
24 21 22 23
这个任务的第二部分在我脑海中可以解决这样的事情: grep -A 100“来自机器的数据”...... | tail -n +2>> log.txt的 (不知道应该是什么而不是...) 但关于第一部分,还有更多不清楚的问题。可能是我应该看到STDOUT的主题。 需要你的帮助。
答案 0 :(得分:0)
你的问题有几个部分都可以通过谷歌搜索获得。
第1部分......
为了获得第4行或第4000行或文件的任何行,您可以按照以下讨论进行讨论:How can I extract a predetermined range of lines from a text file on Unix?
第2部分......
然后有问题是每10分钟做一次吗?您应该从第1部分(无论您选择做什么)中获取解决方案并将其放在.sh文件中并通过crontab每10分钟运行一次该脚本,您可以通过
访问该文件crontab -e
您可以在此处详细了解:https://serverfault.com/questions/248305/running-cron-on-every-10-minutes
编辑第3部分以回应您的评论:
使用屏幕将正在运行的进程置于后台,然后打开另一个终端窗口并在那里执行任何操作。您还可以使用ssh连接到同一台计算机并运行其他终端会话。您不必在1个屏幕上运行1个终端会话,而您不知道其他任何内容。谷歌nohup或屏幕。