我使用Zabbix的zabbix_sender.sh脚本将exception堆栈跟踪推送到远程Zabbix监视服务器。 zabbix_sender.sh需要一个键和它发送的任何数据的值。 它可以从stdin读取数据,但是这会覆盖指定的任何关键variables。 因为我的stdin数据不像Zabbix所期望的那样格式化,所以我需要传入“值”作为参数。 希望这提供了一些上下文。 我想要完成的是将grep的多行结果捕获到一个variables中,保留换行符,以便我可以用该variables作为参数调用zabbix_sender.sh脚本。 我到目前为止所尝试的是这样的: tail -Fn0 /var/log/uwsgi.log | grep "Exception:" -A 100 | (read tback; /usr/local/zabbix/bin/zabbix_sender -z myzserver.com -s MyHostName -k uwsgi_traceback -o $tback) 尽我所知,从来没有调用zabbix_sender.sh 。 为了testing,我试过使用这个命令,这似乎也不工作: tail -Fn0 /var/log/uwsgi.log | grep "Exception:" -A 100 | (read errorlines; echo "$errorlines" > /tmp/errorlines.txt) /tmp/errorlines.txt文件永远不会被创build。 如何将grep的输出行捕获到一个variables中,以便我可以用该variables调用另一个脚本作为参数?
我想configuration一个启动脚本,它将启动tomcat,监视string“Server startup”的catalina.out,然后运行另一个进程。 我一直在尝试tail -f与grep和awk的各种组合,但还没有任何工作。 我遇到的主要问题似乎是在grep或awk匹配string后迫使尾部死亡。 我简化了下面的testing用例。 test.sh is listed below: #!/bin/sh rm -f child.out ./child.sh > child.out & tail -f child.out | grep -q B child.sh is listed below: #!/bin/sh echo A sleep 20 echo B echo C sleep 40 echo D 我看到的行为是,grep在20秒后退出,但是尾巴会再花40秒死亡。 我明白为什么会发生这种情况 – tail只会注意到,在写入数据的时候pipe道已经不存在了,只有当数据被附加到文件时才会发生。 这是由尾巴是缓冲数据和输出B和C字符作为一个单一的写(我证实了这一点)的事实复合。 我试图用我在其他地方find的解决scheme来解决这个问题,例如使用unbuffer命令,但是这并没有帮助。 任何人有什么想法如何得到这个工作,我期望吗? 或者等待成功的Tomcat开始的想法(考虑等待TCP端口知道它已经开始,但是怀疑这会变得更复杂,现在我正在尝试做)。 我已经设法让awk在比赛中做“killall tail”,但是我对这个解决scheme并不满意。 注意我试图让这个在RHEL4上工作。
所以我经常会收到邮件,例如You have new mail in /var/spool/mail/root ,最后input/复制粘贴: tail /var/spool/mail/root ,这有点麻烦。 有没有一个简单的命令可以做到这一点(即从bash中的前面输出的行中抓取类似目录的东西)呢?
我想监视人们是否正在访问我的网站。 我想看看在我的网站在terminal/ SSH的http连接。 像tail -f /file/log.log函数,但我相信有一种方法不使用日志文件的权利? 我在这里读到一些其他人的问题,看来“IPTstate”就是我正在寻找的东西,任何人都可以证实这一点,这就是我所要求的吗? 我不是一个服务器pipe理员。
最后我得到Multitail工作。 唯一的问题是默认的Colorscheme不适用于我用multitail打开的文件,所以必须去菜单并手动应用它。 我的multitail.conf看起来像这样 #test defaultcscheme:test colorscheme:test: my test colorscheme cs_re_s:white,black,bold/blink:([^:]*): SRC 什么原因?
它已经很长时间了,我似乎不记得如何做到这一点。 我试图grep一个单词或文字和电子邮件的日志文件,如果它不存在的最后十五分钟(我会设置一个cron工作每15分钟,除非有更好的办法做到这一点)我到目前为止是 if grep –quiet 'SEND OK' /logfile; then echo exists else echo not found | mail -s "houston we have a problem" [email protected] fi 我可以使用tail来检查最近15分钟的日志文件吗? 是否做到了这一招? 我可以给它一个“如果”给我发电子邮件,如果它没有find关键字在过去15分钟,因为它将运行每十五分钟 我将不胜感激任何帮助
我通过SSH使用multitail来过滤许多服务器上的日志输出,如下所示: multitail -L "ssh foo.bar.com tail -n 0 -q -F /var/log/out.log | grep match" 这很好,但是当多端口退出时,多个进程仍然悬而未决 – 准确地说是三个:bash,tail和grep。 我怎么能强制multitail(或更可能的SSH)终止subprocess并退出?
有没有一种方式来尾尾的资源,如http://someserver.com/logs/server.log ? 这是我会为本地文件做的。 tail -F /var/logs/somefile.log 我想要类似于通过http协议访问的文件
我正在从microtik路由器捕获stream量到我的linux服务器并写入一个大文件。 我正在寻找一种方法来从当前文件结束前进,因为它是一个几GB的文件,我不能从头开始读取,但tshark(或tcpdump)需要先读取头,否则它终止与“无法识别的libpcap格式”。 所以尾巴-f不工作。 有任何想法吗?
如果我跑 sudo pico /var/log/lighttpd/website/error.log 我得到一个很长的文件,我看不到最后一行。 如果我运行: sudo tail -f /var/log/lighttpd/website/error.log | awk '{print $1 "–" $2}' 我没有得到任何东西? 我究竟做错了什么 ? 另外,如何使用pico编辑器移动到特定行? 谢谢