用一行命令kill掉指定id号的进程

ps -ef | grep process_name_segment | grep -v grep | awk '{print $2}' | xargs kill -9

命令说明:

ps -ef
# 列出进程信息
grep process_name_segment
# 在进程信息中找到需要杀死的进程命令名
grep -v grep
# 在进程信息中剔除带 grep 的信息(也就是剔除 grep 命令的进程,避免误删)
awk '{print $2}'
# 提取字符串行内容的第2个字段,也就是当前示例的进程号
xargs kill -9
# 将进程号作为参数传递给kill -9这个命令

解决GmSSL报错找不到libssl.so.1.1的错误

按照文档手册安装好国密库GmSSL之后,执行命令:

gmssl version

报错:

gmssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

解决方法如下:

添加两条软连接:

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

再次运行命令,就OK啦:

GmSSL 2.5.4 - OpenSSL 1.1.0d  19 Jun 2019

gyp: No Xcode or CLT version detected!

最近升级了系统之后,做 npm install 操作时会报错如下

gyp: No Xcode or CLT version detected!
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:203:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.4.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/hliang/Documents/wwwroot/tbw.ixcv.com/vuebackend/node_modules/fsevents
gyp ERR! node -v v12.7.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok

解决方式如下:

$ sudo rm -rf $(xcode-select -print-path)
$ xcode-select --install

服务器挖矿病毒查杀(crontab pastebin.com)

服务器异常症状

  • CPU使用率过高,网络出口流量异常;
  • crontab异常,出现 pastebian.com 相关的 wget 命令

查杀方法

安装busybox

wget http://busybox.net/downloads/busybox-1.21.0.tar.bz2
yum -y install bzip2
tar -xvf busybox-1.21.0.tar.bz2
cd ./busybox-1.21.0
make defconfig
make
make install
ln -s `pwd`/busybox /usr/bin/busybox
busybox|grep BusyBox |grep v

如果出现以下信息,说明安装成功

BusyBox v1.21.0 (2019-04-15 19:51:44 CST) multi-call binary.

注意,部分挖矿病毒会修改动态链接库,用 vim 打开下面文件,并注释掉其中的内容

Continue reading →

supervisor配置文件模板

项目中需要使用到supervisor来管理常驻内存的后台程序,配置文件样例如下:

[program: smproxy]
command=/usr/local/php/bin/php /usr/local/smproxy/SMProxy start --console    ;服务启动命令
directory=/usr/local/smproxy/    ;命令执行目录
user=root    ;执行命令用户
autorestart=true    ;是否自动重启
autostart=true ;启动supervisor时是否自行启动该程序
;redirect_stderr=true   ;如果为true则将stderr发送到stdout相应的log文件中去
;;stdout_logfile=/var/log/supervisor/app.log ;制定stdout的输出文件
;;stdout_logfile_maxbytes=10MB   ;限定logfile的大小, 默认为50M
;;stdout_logfile_backups=10 ;保存logfile的最大数目,如果操作这个数目则对最早的logfile进行覆盖,默认为10
;;environment=A="1", B="2" ;设置环境变量,这里可以保存运行程序需要的参数 

注:

通过yum安装的supervisor,默认配置文件目录为 /etc/supervisord.d