今天在Linux下使用shell的时候,发现当我想使用Ctrl+箭头进行快速跳跃的时候,并没有出现预期的 光标 移动,而是出现了 5D, 5C 的字样。

这个很奇怪,查下相关资料,可以这样避免:

把以下两行添加到 ~/.inputrc文件中:

"\e[1;5C": forward-word # ctrl + right<br /> "\e[1;5D": backward-word # ctrl + left

退出shell再重新登录,就可以解决了。


阅读全文

使用oh-my-zsh时,同时使用了screen插件,oh-my-zsh对screen有个优化,会自动的变更当前window的title,这个功能虽然看起来很好用,但对我个人来说,很是不习惯,因为我自己有对每个window命名的习惯,每个window干什么自己都记得很清楚,他一来了就给我重命名,搞的我很不习惯,所以,我需要把这个oh-my-zsh自动更改screen的title的情况关闭掉。

查找了相关资料后,找到了一个方法,其实很简单。在 .zshrc 的配置文件里,添加一行:

DISABLE_AUTO_TITLE="true"

就可以了。


阅读全文

大家共用的开发机io不正常,磁盘空间总是被莫名其妙的占满,怀疑是某些东西在不断的生成日志,,想看下具体是那些进程在使用IO,需要安装一个iotop, 使用命令sudo yum install iotop,安装成功,但是运行iotop时提示

No module named iotop.ui

To run an uninstalled copy of iotop,

launch iotop.py in the top directory

开始还以为是没安装好,卸载了重新安装,问题依然存在。

后来仔细分析了提示信息:No mudule name xxx 应该是python的提示信息,由于服务器上默认的python版本2.4太低,我们自己安装了2.6的版本,并且把/usr/bin/python指向了2.6版本的python,而使用yum安装的库在python2.4的路径下,这就导致直接运行iotop时出现模块不存在的信息,之前yum也有同样的问题。

解决方法也很简单,只需要把安装的iotop -> /usr/bin/iotop第一行的python运行环境由#!/usr/bin/python改为#!/usr/bin/python2.4即可。


阅读全文

centos下启用snmp

安装 Net-SNMP

CentOS及其它RedHat系列产品提供了net-snmp的二进制包。我们可以直接从源里安装。

yum install net-snmp net-snmp-devel net-snmp-utils

说明:net-snmp-devel是为了使用net-snmp-config, net-snmp-utils是为了使用snmpwalk。

配置 Net-SNMP

create-snmpv3-user -ro -A snmp@jiankongbao -a MD5 jiankongbao

以上命令,创建一个snmpv3用户,只读,使用MD5,用户名为jiankongbao,密码为snmp@jiankongbao。

注意:运行之前请先停用net-snmp服务。

service snmpd stop

运行 Net-SNMP

运行 Net-SNMP 服务的方法比较简单,不过Net-SNMP服务的名字是snmpd。

service snmpd start

如果要加入开机自动运行服务列表:

chkconfig snmpd on

检测 Net-SNMP

我们可以使用 snmpwalk 来检测snmp服务是否正常开启。

snmpwalk -v 3 -u jiankongbao -a MD5 -A "snmp@jiankongbao" -l authNoPriv 127.0.0.1 sysDescr

如果一切正常,就会返回正常结果。 有关snmpwalk的参数说明,请参见其man文档。


阅读全文

今天收到用户反馈,用户在举报谈谈的谈主时会显示提交失败。

这个反馈页面入口在反馈平台,调用谈谈项目的后端接口。 这个服务相关的接口都好久没有动了,为什么会失败呢?

在线上找了一台机器进行debug,发现接口返回内容是“正常”的,一段可读的json字符串。把字符串拷贝下,在js下发现是可以解析的。

但是该项目下用的json_decode,却怎么都decode不成功。调试了半天都觉得甚是古怪,一直都找不到头绪,怕自己脑子是思维定势了,跑去看了会golang,再回来继续解决。

再怎么看, 都还是觉得很正常,不应该出问题。

再一次拷贝接口返回的字符串的时候,发现头部多了个标签。

feff-utf8_bom_remove_linux_vim

feff-utf8_bom_remove_linux_vim

查了下,发现这个FEFF就是BOM。 参考:字节顺序标记

找到问题所在了,解决问题就好说了。

windows下有各式各样的编辑器,都可以解决bom头问题,可是linux下该怎么解决呢?

google了下,问题都解决了。

1.找到哪些文件包含BOM头。

grep -rl $'xEFxBBxBF' .

通过hexdump可以看到bom头的存在。

hexdump-BOM-utf8-file

hexdump-BOM-utf8-file

2.删除BOM头信息。

sed '1s/^xEFxBBxBF//'  filename.php -i

删除后就不会再看到BOM头拉。

hexdump-NO-BOM-utf8-file

hexdump-NO-BOM-utf8-file

可以用一条命令查找并删除文件的BOM头信息:

find . -type f -exec sed '1s/^xEFxBBxBF//' -i.bak {} ; -exec rm {}.bak ;

总结:

在多人维护的项目下,很可能会有其他人上传一些不合适的文件或代码,需要对一些常规情况进行监控,及时发现、解决,避免影响线上问题。


阅读全文

作者的图片

DigDeeply

Technology Stack: PHP/Openresty/GoLang, and so on…

Web Development Engineer

Beijing China