免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4873 | 回复: 11
打印 上一主题 下一主题

perl如何接收数据? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-30 17:35 |只看该作者 |倒序浏览
类似以下几种情况,perl如何接收数据?

local1.*                                        | /usr/local/myapp/syslog/log.pl

ls -Rl | lst.pl



论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
2 [报告]
发表于 2013-12-30 17:38 |只看该作者
stdin
  1. #!/bin/env perl
  2. #cat tpipe.pl | tpipe.pl
  3. use strict;
  4. while(<STDIN>){
  5.   print "===$_";
  6. }
复制代码

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
3 [报告]
发表于 2013-12-30 17:42 |只看该作者
{:2_172:} 这个好强!谢谢大牛!
回复 2# laputa73


   

论坛徽章:
0
4 [报告]
发表于 2013-12-30 20:20 |只看该作者
不行

论坛徽章:
0
5 [报告]
发表于 2013-12-30 20:52 |只看该作者
一看就知道你要处理系统日志,或者做个日志服务器,跟你说吧,syslog 或者 syslog-ng不支持脚本的这种方式。。。如果你要接受系统的输入,你还是在研究研究 syslog,或者其他

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
6 [报告]
发表于 2013-12-31 09:37 |只看该作者
或者你可以使用个sock文件

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
7 [报告]
发表于 2013-12-31 09:47 |只看该作者
本帖最后由 laputa73 于 2013-12-31 09:58 编辑

syslog的场景是不行的.
       This version of syslogd has support for logging output to named pipes (fifos).  A fifo or  named  pipe  can  be
       used  as  a  destination for log messages by prepending a pipy symbol (‘‘|’’) to the name of the file.  This is
       handy for debugging.  Note that the fifo must be created with the mkfifo command before syslogd is started.

              The following configuration file routes debug messages from the kernel to a fifo:

                   # Sample configuration to route kernel debugging
                   # messages ONLY to /usr/adm/debug which is a
                   # named pipe.
                   kern.=debug              |/usr/adm/debug
直接用perl监控log文件就好了

ls是可以的.

论坛徽章:
0
8 [报告]
发表于 2013-12-31 10:18 |只看该作者
shell是可以做到的:

在syslog.conf中设置

local0.*                                        | /usr/local/myapp/syslog/log.sh

然后写log.sh:

#!/bin/sh
read stuff
su -l pgsql -c "psql -h localhost -d devlog -U devlog_user_db" << QUERY_SQL
insert into "mylog" (event) values ('$stuff');
\q
exit
QUERY_SQL


想来perl应该也可以做得到吧!

论坛徽章:
0
9 [报告]
发表于 2013-12-31 10:23 |只看该作者
主要是搞不清楚perl如何接收数据

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
10 [报告]
发表于 2013-12-31 18:06 |只看该作者
回复 9# 屠龙


  my   $stuff=<STDIN>
就等效于read stuff

你确信你的shell可以?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP