2013年7月

bash下如何实现perl中seek的功能?

因为日志处理需要,接触到perl,虽然还未入门,但通过几个函数就可以发现其在文本处理上的威力确实名不虚传,更不用提正则表达式了。

假设有这样的应用场景:客户通过ftp客户端上传文件到接入端ftp服务器,接入端ftp服务器作为分布式存储系统的客户端,再将这些文件存入到后面的分布式存储服务器中。这个接入端ftp服务器要做的工作就是定时分析ftp server(假设是vsftpd,则日志为xferlog)的日志来获取客户上传的文件,再对这些文件做后续处理。客户上传时随时进行的,xferlog的记录条数也随之增长。

perl中通过seek函数可以很方便的做到,每一次脚本执行时,都将上一次脚本执行时xferlog的大小作为本次读操作的偏移量,用这个偏移量来调用seek,本次处理完后再将该偏移量更新后存入到一个文件供下次脚本执行时读取。

- 阅读剩余部分 -

再不判断异常分支就剁手

一两个月前刚进新公司时,正逢部门内部搞技术交流,每人轮流给部门其他人做一次自己擅长的技术培训。部门内几个老员工,有讲nginx模块开发的,有讲视频编解码的,也有讲分布式存储系统的。由于我刚入行,对公司业务完全不熟,无奈之下,索性说我就讲讲shell编程吧。于是花了一天时间写了个十几页的PPT,其中强调了脚本中对异常分支判断的重要性。脚本不是命令行的堆积,在交互模式下,一个命令的执行成功与否一目了然,根据这个结果我们会很自然的执行相应的命令;可是在脚本中,就不能这么想当然了,最简单的就是,cd到一个目录,该目录是否存在?

可是今天还是犯了一个这样的错误。

- 阅读剩余部分 -