linux 安装使用supervisor和superlance服务监控

环境:CentOS Linux release 7.4

pip install supervisor

#加载配置,修改如下
echo_supervisord_conf > /etc/supervisord.conf
mkdir /etc/supervisord.d/

vi /etc/supervisord.conf

[include]
files = /etc/supervisord.d/*.ini

#start service
supervisord -c /etc/supervisord.conf

#write a program config
vi /etc/supervisord.d/SimpleHttp.ini

[program:SimpleHttp]
command=python2 -m SimpleHTTPServer 9000
directory=/root ;执行command之前,先切换到工作目录
user=root ;使用oxygen用户来启动该进程
autorestart=true ;程序崩溃时自动重启,重启次数是有限制的,默认为3次
stdout_logfile = /tmp/simple_http.log
loglevel=info

#roload program config, start service
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl status

#配置服务报警
pip install superlance

#Supervisor 事件发送到飞书
cp feishu-alert/event.conf /etc/supervisord.d/event.ini
supervisorctl update
注意:
1. 更给任何脚本时需执行以下命令,否则更改不生效
supervisorctl reload

参考:
https://www.jianshu.com/p/0b9054b33db3
https://cloud.tencent.com/developer/article/1414822
https://github.com/cmboss/supervisor-event-to-dingtalk-alert

Excel或Python生成随机字符串

Excel:

随机小写字母:=CHAR(INT(RAND()*25+97))
随机大写字母:=CHAR(INT(RAND()*25+65))
随机数字:=CHAR(INT(RAND()*9+48))
随机数字大小写字母:IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97))))
混合6位:=CONCATENATE(IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))))

 

Python:

''.join(random.sample('abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789', length))

安装certbot并申请ssl证书

  1. 添加存储库  add-apt-repository ppa:certbot/certbot
  2. 安装CertbotNginx软件包  apt install python-certbot-nginx certbot
  3. 使用Certbot自动完成SSL证书申请和配置,Certbot会自动修改你的nginx配置文件  certbot –nginx -d example.org
  4. 自动更新证书日期,写个脚本,包含如下内容

service nginx stop

certbot renew –dry-run

certbot renew

service nginx start

Mac OS brew更新卡住

在使用mac笔记本安装软件时需要更新brew update,但一直卡住。

解决方法1:  在/usr/local/bin/brew 添加 HOMEBREW_NO_AUTO_UPDATE=1

或者 HOMEBREW_NO_AUTO_UPDATE=1 brew install somepackage

方法2:  brew update –debug –verbose ,然后 brew update –force

三星galaxy s7 edge手机无法拷贝文件

环境:macOS,  三星galaxy s7 edge,  Android File Transfer

之前使用Android File Transfer拷贝文件到手机后发现后续无法再使用此功能,目前在 https://android.stackexchange.com/questions/46315/not-all-files-are-visible-over-mtp 发现是android的bug。

解决方法: 设置->应用程序->存储(在最下端)->立即清理

Linux如何设置时区和时间

安装zonetime包
apt install ztdata

选择时区的命令:
tzselect

设置timezone的时区
sudo timedatectl set-timezone ‘Asia/Shanghai’
或者
echo “Asia/Shanghai” > /etc/timezone

设置时间
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

MacOS登入Ubuntu虚拟环境

环境: MacOS,  Ubuntu, Clion

在做C语言开发的时候经常要涉及Linux中的库,因此在MacOS上用VirtualBox安装Ubuntu环境,通过terminal直接登入上去。但有时要用Ubuntu上的Clion,所以安装XQuartz这个支持图形界面的登入工具。使用登入如下:

ssh -Y jerry@192.168.56.101

(注:-Y 代表启用信任的X11 forwarding)

Clion编译带glibc库的C语言

环境: MacOS 10.11.6,  Clion 2019

由于C语言自带的ANSI lib内容库不太丰富,所以直接使用linux自带的glibc库。主程序直接引用 glibc头文件

#include <glib.h>

CMakeLists.txt如下:

cmake_minimum_required(VERSION 3.14)
project(untitled C)

set(CMAKE_C_STANDARD 99)

add_executable(untitled main.c)


find_package(PkgConfig)
pkg_check_modules(GLIB2 REQUIRED glib-2.0)
target_include_directories(untitled PUBLIC ${GLIB2_INCLUDE_DIRS})
target_link_libraries(untitled ${GLIB2_LIBRARIES})

但编译是老是发现无法找到libintl库,最后发现home-brew没有link到gettext,执行如下: brew link –force gettext 即可