Linux下Nginx、MySQL和PHP等应用的日志切割脚本
在Linux中如果应用程序会产生日志,那么就需要考虑日志切割,例如按照固定的大小切割、按照日期进行切割等等。同样,在编译Nginx1.9.0、MySQL5.7.7rc和PHP7后,这三个应用服务都会产生日志,尤其是Nginx进程根据配置文件ngnix.conf记录每条访问记录到access.log中。如果所有的日志都打印到同一个文件中的话,那么时间长了的话就会影响效率。
在Linux中如果应用程序会产生日志,那么就需要考虑日志切割,例如按照固定的大小切割、按照日期进行切割等等。同样,在编译Nginx1.9.0、MySQL5.7.7rc和PHP7后,这三个应用服务都会产生日志,尤其是Nginx进程根据配置文件ngnix.conf记录每条访问记录到access.log中。如果所有的日志都打印到同一个文件中的话,那么时间长了的话就会影响效率。
根据前文的上线步骤,目前已经成功的将博客从Typecho迁移到了Pelican。中间上线发布的时候,遇到了好几个问题,不过由于上线步骤中有失败的处理方案(保留Typecho程序),所以在Typecho到Pelican之间来来回回切换了好几次。
8月份的时候,终于从庞大的WordPress转到了轻量级的博客程序Typecho。简洁的设计和比较出色的Markdown支持,整个Typecho体验还是挺不错的。到10月份的时候,自己了解了一些静态博客程序,包括nodejs的Ghost、Hexo等,ruby写的jekyll以及Python写的Pelican等。
由于当时正好接触到了大蟒蛇,而且对js不熟(ruby都没用过),所以就在本地尝试了一下Pelican。之间折腾了一个从Octopress移植过来的主题Pelican-Octopress未果,后面忙着就没怎么弄了。
前段时间辞职后,闲着就打算把博客“简洁到底”:抛弃MySQL数据库和PHP执行解释,完全采用Python生成静态HTML文件。这样以后就只需要在本地通过Markdown写好文章,然后通过pelican生成html文件即可。
前段时间和其它系统做联调测试,对方系统采用的是负载均衡模式。调试时采用的是多台手机作为客户端发送到对方负载均衡服务器,然后再把报文转发送到我这边的服务端。在测试的时候,对方测试人员说有的手机客户端会偶尔出现报文发不过来的情况。
故事有点长,先发一张tcp三次握手的过程图镇楼~
最近在写一个Makefile,调试时遇到了libsrcpbl.so: undefined reference to gcProgramName
的问题。在这个Makefile脚本里面,终极目标是通过链接一个自定义的动态库libsrcpbl.so
生成一个ELF目标文件。
由于链接生成libsrcpbl.so动态库的.o文件比较多,无法定位具体的错误程序文件和位置,所以折腾了较长时间。
在unix系统中,通过gnu开源gcc或者g++工具生成的目标文件(object file),可以用nm
、objdump
和readelf
这三个命令来查看。
之前在调试makefile文件的时候,链接动态库出错:libsrcpbl.so: undefined reference to 'gcProgramName'
。也就是变量gcProgramName没定义,后来通过nm -u libsrcpbl.so
命令辅助排查解决了。