从今天开始写技术笔记,为了总结,记录和达成目标。
今天解决了几个棘手的问题,一个是什么值得监控(http://smzdtx.com PS:目前内测阶段)的ruby脚本在crontab下执行失效的问题,情况是用ruby编写的监控脚本手动执行成功,但是在crontab下执行失败并且没有错误提示,跟踪代码发现问题出现在加载了带有中文的邮件模板文件之后,调用gsub方法的时候程序终止,并且无错误信息,经过一番寻找发现问题出在编码上,将读取内容加上.force_encodeing(‘utf-8’)即可,并且在程序头标识了文件编码# -- encoding: utf-8 --;另一个问题是邮件进程异常终止,后来发现是邮件模板中存在字符\r,进行了删除和替换。
今天发现了crontab按秒执行的方法,以下是一个半分钟执行一次的例子:
1 | */1 * * * * command |
把标准输出和标准错误从定向到指定文件的方法是:
1 | command > filename 2>&1 |
另外今天还读了一些PHP手册的内容:
- declare命令是一个从来没见过的指令,作用是指定编码或者每n行代码执行事件。
- 了解了位操作符&与,|或,^异或,~非,<<,>>, 并且第一次发现我一直遗忘了一个xor(异或)的逻辑操作符,还有了解了E_ALL ^ E_NOTICE的位操作原理。
- 使用反引号“
"可以执行系统命令,这样就简单多了,不用总是exec,比如$output =
dir`; - 字符也是可以进行自增操作的,今天也是第一次知道 ‘A’++// B
- 之前在百度遇到的关于global的面试题也在手册里得到了解决,global是可以放在全局中的,是为了让该变量在function中被引用(include)时起到作用。
- 另外一个在新浪面试遇到的问题是表达式的返回值问题,$a = 5; 涉及到3个值,一个是整数5, 另一个是$a的值,还有就是该表达式本身的值。
今天还下单了两本书《redis入门指南》和《银河系漫游指南》。