我知道如果有任何东西被追加到文件tail有tail 。 我也知道可以使用vim :w !diff % – 是否有类似的东西,如果任何东西在文本文件中修改并打印出来。 澄清是类似于尾巴的东西,但文件内的变化可能在任何地方。 (而不是我每次都必须运行vim。)
我需要一些帮助以下内容: 在一个菜单中,尾部操作将被执行,然后在某个输出结束后尾部将被终止,我们将返回到菜单。 tail -f server.log | grep "Started successfully with " && echo "it is working" || echo "not working" 任何人都可以帮助我有一个自闭尾巴命令?
我有一个log.file的日志文件内容 123 123 321 312 123 412 151 我做了tail -f log.file 。 在其他会话中,我打开了相同的日志文件并添加了更多的值。 我的假设是, tail -f log.file应显示新附加的值,但它没有显示。
我有一个文件用于logging客户端的IP地址。 他们想保留文件的最后500行。 这是在一个PHP4的Linux系统上(不!)。 我打算用新的IP地址一次添加一行文件。 我们没有权限访问cron,所以我可能需要使这个函数进行行限制清理。 我想用exec('tail [some params]')或者用PHP读取文件,用换行符将其分解为数组,获取最后1000个元素,然后写回。 似乎有点内存密集虽然。 什么是更好的方法来做到这一点? 更新: Per @ meagar的下面的评论,如果我想使用zipfunction,我将如何做我的PHP脚本? (不能访问cron) if(rand(0,10)== 10){ shell_exec(“find.logfile.txt [where size> 1mb] -exec zip {} \;”) } 如果有一个现有的文件,将拉链自动枚举文件,或者我需要手动吗?
我想监视一个日志文件,当一个新的日志消息匹配我定义的模式(比如说包含“错误”),然后发送一封邮件给我。 要做到这一点,我写了一个Python脚本monitor.py,主要部分看起来像: import sys for line in sys.stdin: if "error" in line: print line 当我使用tail my.log | python monitor.py时候它运行的很好 tail my.log | python monitor.py ,然后切换到tail -f my.log | python monitor.py tail -f my.log | python monitor.py ,那么它不起作用,至less不会立即。 我已经做了一些testing,当日志中的新内容累积到8KB,那么我的Python脚本可以从尾部输出。 所以我高度怀疑这是由stdin / stdout缓冲区大小控制的。 我怎样才能立即得到输出? 还有一个问题,当我使用tail -f my.log和tail -f my.log | grep error tail -f my.log | grep […]
我用 tail -f file | grep pattern 所有的时间连续grep。 然而,有没有一种方法可以使grep在同一个位置输出模式,比如在屏幕的顶部? 所以屏幕不会一直滚动? 我的情况是这样的: tail -f log_file | grep Status -A 2 tail -f log_file | grep Status -A 2将显示当前状态以及将其更改为该状态的内容。 问题是屏幕卷轴,它变得烦人。 我宁愿输出卡在屏幕的前3行。 谢谢!
我在控制台中使用以下命令编写了一个Perl程序来捕获Linux机器上的tail命令的实时数据stream: tail -f xyz.log | myperl.pl 它工作正常。 但是现在我必须在不同的机器上执行这个Perl程序,因为日志文件在不同的机器上。 任何人都可以告诉我如何做到这一点?
我很好奇,在以下情况下更快。 我有大约2MB的输出文件和数千行(在15k – 50k之间的任何地方)。 我正在寻找一个string在文件的末尾(最后10行)左右。 我多次执行此操作,有时使用相同的最后10行文件,以及多个文件。 我很好奇以下哪个是最快最有效的: tail最后10行,保存为一个variables。 当我需要grep或检查一个string时,在输出中echo该variables和grep 每次我需要grep东西,首先tail输出文件,然后pipe和grep的输出 放弃上面的任何一个,每次grep整个文件。 选项1) if [ -f "$jobFile".out ]; then { output=$(tail -n 10 "$jobFile".out) !((echo "$output" | grep -q "Command exited with non-zero status" ) || (echo "$output" | grep -q "Error termination via Lnk1e")) && continue { output "$(grep $jobID $curJobsFile)" sed -i "/$jobID/d" "$jobIDsWithServer" […]
我有一个脚本,收集不断馈送的文件的大小。 我将它的大小回显到一个日志文件(echo'filesize是$ size'> log.txt),所以我只有最后的大小信息。 所以,只有一条线。 现在,在另一个terminal中,我想要尾随该日志文件来实时查看其大小。 事实certificate,tail -f path / to / file为我提供了我想要的输出,但它一直跳到下一行(正如我所料)。 所以,输出是这样的: $ tail -F log.txt 2>/dev/null filesize is 1.658 GB filesize is 1.659 GB filesize is 1.659 GB filesize is 1.660 GB 我想要更多的东西,比如“没有光标”的命令。 也许一个更好的例子是“mtr”,不断更新屏幕上的信息,而不会去下一行(而不是跟踪路由)。 谢谢,
这是我的示例日志文件。 http://pastebin.com/DwWeFhJk 。 当我在做 tail -f log | awk '{if (NF>3) {print $1}; }' 我得到的结果是正确的 64.242.88.10 64.242.88.10 64.242.88.10 64.242.88.10 64.242.88.10 64.242.88.10 64.242.88.10 64.242.88.10 64.242.88.10 64.242.88.10 但是当我在做: tail -f log | awk '{if (NF>3) {print $1}; }' | awk '{print $1}' 我没有得到任何输出。 即使没有输出的情况下 tail -f log | awk '{if (NF>3) {print $1}; }' | grep "64" […]