pack in c

 

 

lua学习

module机制

等同于

 

关于nginx+luajit的折腾

缘起

需要写一个lua版的SDK在nginx中使用

基本功能

  1. 通过http请求下载关于SDK的配置文件并cache起来
  2. http的响应信息是json格式的
  3. 需要用到rsa/des/rc4解密

系统环境

ubuntu14.04

相关资料

  • http://www.kyne.com.au/~mark/software/lua-cjson-manual.html
  • http://www.kyne.com.au/~mark/software/lua-cjson.php
  • zlib下载地址: http://www.zlib.net/
  • 安装luajit: http://luajit.org/install.html

学到了什么

文件权限之粘滞位

缘起

如果将一个root属主的可执行文件,添加一个属主的粘滞位,那么,由该程序创建的其它进程的euid还是root吗?

测试

test.php

 

看来是不好使的,即: 粘滞位是不能在程序间继承的

awk之exit

题目

有100个日志文件,每个文件大约1G,每条日志都以 “H:i:s” 的时间格式开头,如:

因为是日志文件,所以肯定以时间为顺序的,现在可以确定的是,在某个文件中存在一条 01:02:03 这个时间点的关于xxx的日志,要找出来 ,如何做?

 

办法1:

虽然我们的正则是只匹配行首,算是很快的了,但是,我们还是扫描了整个的100个文件;考虑到每个文件肯定都是有时间顺序的,我们做了大量的无用的工作,其实完全可以提前退出的,加入每10分钟都会有日志出现,则可以优化如下:

 办法2:

这样的话,没个文件只扫描很少的一部分就可以了

办法3:

该题的sed解法:

 办法4:

当然,将 xxx 并入正在表达式也是可以的(只是没有上面看起来更一目了然):

 

sed 示例

在匹配到的行尾添加:

删除匹配后的N行(delete n lines following a pattern)or (delete n lines after match/matches)

如果匹配到的行不需要删除

 

正则替换:

将 “craete time: 1988-02-02 11:22:12″ 替换为”craete time: 1988-02-02T11:22:12”

  1. 使用 -r
  2. 反向引用

 

参考资料: http://blog.csdn.net/holandstone/article/details/8488434

http://stackoverflow.com/questions/4396974/sed-or-awk-delete-n-lines-following-a-pattern

http://stackoverflow.com/questions/8323287/how-can-i-use-sed-to-delete-2-lines-after-match-matches