1.linuxä¸å¦ä½çå¬è¿ç¨
2.å¦ä½å®è£
å设置Monitç¨åº
3.从零搭建测试公众号,码安每天发送一句小情话(支持计算农历生日)
4.十个PM2中冷门但实用的码安功能
linuxä¸å¦ä½çå¬è¿ç¨
ä¸ãsupervise
Superviseæ¯daemontoolsçä¸ä¸ªå·¥å ·ï¼å¯ä»¥ç¨æ¥çæ§ç®¡çunixä¸çåºç¨ç¨åºè¿è¡æ åµï¼å¨åºç¨ç¨åºåºç°å¼å¸¸æ¶ï¼superviseå¯ä»¥éæ°å¯å¨æå®ç¨åºã
使ç¨ï¼
mkdir test
cd test
vim run åå ¥å¸ææ§è¡çæä½
supervise test (注æè¿éæ¯çåæ°æ¯runæ件ä¸å±çæ件夹ï¼æ¹årunç为å¯æ§è¡ chmod +x run)
äºãmonit
monitæ¯ä¸ä¸ªå°åçå¼æ¾æºç å·¥å ·æ¥ç®¡çåçæ§Unixç³»ç»ãMonitå¯ä»¥èªå¨ç»´æ¤è¿ç¨ï¼åæ¶é¿å è¿ç¨å¼å¸¸éåºç产ççé®é¢ã
ç³»ç»ï¼ monitå¯ä»¥çæ§é®é¢çåçï¼å æ¬è¿ç¨ç¶æãç³»ç»cpuè´è½½ãå åå ç¨æ åµçï¼ä¾å¦å½apacheæå¡çcpuè´è½½ä»¥åå åé¸å¼æ åµè¿é«æ¶åï¼å®ä¼éå¯apacheæå¡ã
è¿ç¨ï¼ monitå¯ä»¥çæ§å®æ¤è¿ç¨ï¼å æ¬ç³»ç»è¿ç¨ãä¾å¦å½æ个è¿è¡downæï¼å®ä¼èªå¨æ¢å¤éå¯è¯¥è¿ç¨ã
æ件系ç»ï¼Monitå¯ä»¥çæ§æ¬å°æ件ãç®å½ãæ件系ç»çååï¼å æ¬æ¶é´æ³ãæ ¡éªå¼ã大å°çååãä¾å¦ï¼å¯ä»¥çæ§æ件sha1以åmd5çå¼ï¼æ¥çæ§æ件æ¯å¦åçååã
ç½ç»ï¼monitå¯ä»¥çæ§ç½ç»è¿æ¥ï¼æ¯æTCPãUDPãUnix domain sockets以åHTTPãSMTPçã
å®æ¶èæ¬ï¼monitå¯ä»¥ç¨æ¥å®æ¶æµè¯ç¨åºåèæ¬ï¼è·åç¨åºè¾åºç»æï¼è¿èå¤ææ¯å¦æåæå ¶ä»æ åµã
å®è£ ï¼
sudo apt-get install monit
ç¼è¾é ç½®ï¼
sudo vim /etc/monit/monitrc
å¯å¨ãåæ¢ãéå¯ï¼
sudo /etc/init.d/monit start
sudo /etc/init.d/monit stop
sudo /etc/init.d/monit restart
设置页é¢çæ§ç¶æï¼
set mand=python /root/test_supervisor.py
process_name=%(program_name)s
stdout_logfile=/root/test.log
stderr_logfile=/root/test.log
ä¿åï¼å¯å¨ï¼
/usr/bin/supervisord -c /etc/supervisord.conf
å¦ä½å®è£ å设置Monitç¨åº
ä¸ãç®ä»
Monitæ¯ä¸ä¸ªå¨ç±»unixå¹³å°ä¸ç¨äºçè§è¿ç¨ãæ件ãç®å½å设å¤ç软件ï¼å¯ä»¥ä¿®å¤åæ¢è¿ä½æè¿ä½å¼å¸¸çç¨åºï¼éåå¤çé£äºç±äºå¤ç§åå 导è´ç软件é误ã
äºãå®è£
åå®ä¸é¢çå®è£ åé ç½®åå¨root身份ä¸è¿è¡ã
å®è£ å¾ç®åï¼ä¸è½½monitçæºä»£ç ï¼ç°å¨ææ°çæ¬æ¯4..1ï¼monit-4..1.tar.gzï¼å°å ¶æ¾å°éåçç®å½ä¸ï¼ç¶å解åï¼configure(é»è®¤è®¾ç½®å³å¯)ï¼makeï¼make install ãå ·ä½å¨ç»ç«¯ä¸ä½¿ç¨å¦ä¸å½ä»¤ï¼
tar âxzf monit-4..1.tar.gz
cd monit-4..1
./configure
make
make install
å¾å¿«å°±å¯ä»¥å®è£ å®æ¯ã
ä¸ãé ç½®
å®è£ å®æ¯å,å¨monitæºä»£ç çç®å½å°monitçé ç½®æ件monitrcæ·è´å°/etcç®å½ä¸,使ç¨å½ä»¤:
cp monitrc /etc
注æ/etc/monitrcè¿ä¸ªæ件ç访é®æéä¸è½å¤§äº,æ以å¯è½è¿éè¦ä¿®æ¹å®ç访é®æé:
chmod /etc/monitrc
ç¶åæå¼/etc/monitrcè¿ä¸ªæ件è¿è¡é ç½®ï¼monitå·²ç»å°å¤§é¨åçé ç½®çä¾åæ¾å¨äºéé¢ï¼å¤æ°é ç½®åªéå°é ç½®åé¢ç#ï¼æ³¨éï¼å»æååç¸åºä¿®æ¹å³å¯ãæ们主è¦ç¨monitæ¥çè§tomcatæå¡å¨ï¼æ以é ç½®å¦ä¸ï¼
set daemon # 设置monitä½ä¸ºå®æ¤è¿ç¨è¿è¡ï¼å¹¶ä¸æ¯2åéçè§ä¸æ¬¡
# 2åéæ¯é»è®¤çæ¶é´é´éï¼ä»ç½ä¸ççå°çå¤ä¸ªé ç½®çä¾å
# çå°çæ¶é´é´éä¹æ¯2åéï¼åºè¯¥æ¯æ¯è¾åçç
set logfile /var/log/monit.log # 设置æ¥å¿æ件çä½ç½®ï¼å¦æè¦åå ¥ç³»ç»æ¥å¿å¯ä»¥
# set logfile syslog
set # æ¶é®ä»¶å°å,å¦æè¦åéå°å¤ä¸ªå°å
# å¯ä»¥åå¤æ¡è¿æ ·ç设置
# ä¸é¢è®¾ç½®çè§tomcat
check process tomcat with pidfile /var/run/catalina.pid # è¿ä¸ªè¦å¦å¤è¯´æã2ã
start program = "/etc/init.d/tomcat start" # 设置å¯å¨å½ä»¤
stop program = "/etc/init.d/tomcat stop" # 设置åæ¢å½ä»¤
if 9 restarts within cycles then timeout # 设置å¨ä¸ªçè§å¨æå é
# å¯äº9次åè¶ æ¶,ä¸åçè§
# è¿ä¸ªæå¡ãåå å¦å¤è¯´æã3ã
if cpu usage > % for 5 cycles then alert # å¦æå¨5个å¨æå 该æå¡
# çcpu使ç¨çé½è¶ è¿%
# åæ示
# è¥è¿ç»5个å¨ææå¼urlé½å¤±è´¥ï¼ç§è¶ æ¶ï¼è¶ æ¶ä¹è®¤ä¸ºå¤±è´¥ï¼
# åéå¯æå¡
if failed url /fushentong/sa...
支持事项:
通过微信公众号给指定对象(举例:你的男/女朋友)每天发送指定内容;
内容包含:
同时,支持字体颜色自定义;
暂时不一定支持事项:(不是码安不能做只是作者用不到,有需要的码安小伙伴可以评论区留言,需要的码安多则下一期完善,有好的码安普元后台源码解决思路的大佬也欢迎评论区留言) 农历的部分月份 和 阳历不在同一年, 农历部分情况下可能出现闰某月
一、码安整体框架
二、码安准备需要的码安东西(网上均有免费可用的体验版)
总览:
接下来带大家一步步研究怎么获取这些账号
第一步:公众号测试平台的注册并配置
从微信官方文档中,找到接口测试号,码安并申请
申请测试公众号后,码安可用获得独有的码安AppID 和 appsecret。
这两个值的码安作用就是为了在程序中向微信平台验证身份。
就像是码安 用户名和密码一样。
同时,码安用你自己的获取整站完整源码微信 和 你想要发送信息的对象的微信,扫描你的公众平台上的二维码。获得对应用户的微信号。
这个微信号,就像是我们的身份证号一样,是独一无号的。
有了微信号,你才能告诉微信平台,这条消息该发给谁。
同时设置消息模板,
最终发送给到 手机微信上的消息,也就是设置的这个格式的。
同时在程序里面返回数据,也要包含模板中的数据
参考:
{ { first.DATA}} 今天天气:{ { thing.DATA}} 今天温度:{ { thing.DATA}} 和xxx已经恋爱了:{ { thing.DATA}} 距离xxx生日还有:{ { thing.DATA}} 送你一句土味情话:{ { remark.DATA}} 送你一句诗词:{ { remark.DATA}} 送你一句脑洞鸡汤:{ { remark.DATA}}
第二步:准备天气API
在搜索引擎,直接搜索“免费天气API”就能找到许多。
小编采用的自动生成采集源码是图中所框选的。
进去后可以看到有一部分是免费的的
免费的当然会有一些限制,但对于我们自己玩,完全足够了。
注册后,你就会得到我们需要的两个东西,
天气API平台的appID 和 appSecret
第三步:准备情话API
同样的步骤,我们在搜索引擎搜索“免费土味情话API”。
选择其中一个,小编选择的是ALAPI。
注册后,你就要可以在你的控制台页面找到你的token
(token的作用也是用于在请求数据的时候标识你的身份,不熟悉的小伙伴记下这个值就好了,后面会用到。)
第四步:(可选,不一定要)
在自己电脑上安装XAMPP方便调试,如何改写软件源码确定调试好了再上传。
把文末下载地址中的index.php 文件和Lunar.php文件放入XAMPP安装目录的htdocs目录下
(XAMPP使用方法自行搜索,有障碍的小伙伴也可以评论区留言。)
第五步:免费虚拟主机+免费子级域名
自行选择,各个云服务厂商也有几个月免费体验那种。
推荐: freehost.cc
第六步:定时触发程序
同样搜索免费网页监控程序,找一个自己觉得还行的。
(因为php脚本的原理就是,你打开网页,它就会触发执行程序,发消息给微信平台。)
也可以不弄这个监控程序。你想要发这个信息的时候,自己在浏览器输入一次也是一样的。
小编使用的后台表单录入源码是: monit.or.passby.me/
至此,我们需要的环境就全部准备完毕了。
下面开始解读程序
三、代码主体逻辑解析
程序已开源到gitee,可查看。(其中的部分参数需要更新为上面申请到的)
前置:准备好相关平台数据 ,替换成我们前面申请到的
第一步:定义一个对象,把对象的相关信息都放进去
第二步:把需要发送的一些共用的数据先准备好
第三步:将消息组装成自己需要的样式
根据个人信息,计算在一起天数、当地天气、距离生日的时间。
封装成模板格式,同时可以字体颜色可以自行调整
字体颜色进制表:
模板里面格式字符,是来自微信官方平台的规范:
第四步:发送信息
以上就是代码的主体逻辑了,其中出现的函数都在同一文件中。
四、本地调试(如果您本地有php环境的话)
本地调试方法可以直接使用php在命令行运行脚本,也可以使用XAMPP将gitee中的index.php发布成本地站点。浏览器输入xampp发不出的本地站点来调试。
五、上传云服务器,并使用浏览器触发
如果申请了虚拟主机的话,根据平台指使文档来就行。
一般的流程是将程序文件按要求命名后,上传到虚拟主机的某个路径下,即可。
(注意:我们这里index.php和Lunar.php一定要同时放。因为index.php中调用了Lunar.phh)
再使用虚拟主机提供的域名或者地址,在浏览器输入地址,则会触发上传的程序文件。
六、定时触发
找一个免费的网站监控程序,设置成固定每天的x点钟,扫描一次上一步虚拟主机给到的域名。
以上就大功告成了,大家有疑问可以评论、留言,看到会回的哦!
gitee.com/fushentong/sa...
十个PM2中冷门但实用的功能
欢迎探索Node.js进程管理神器PM2的那些鲜为人知但极其实用的功能,让你的开发工作更加得心应手。1. 自动守护进程</: pm2 set pm2:autodump true,这个隐藏的宝藏功能能自动保存进程变更,告别手动操作,确保进程安全。
2. 精准日志管理</: pm2 start --log [file],将日志定向到指定位置,让你随时掌握应用的动态。
内存守护者</: pm2 start --max-memory-restart=M,预防内存泄漏,保护系统资源。
深入洞察进程</: pm2 show [id],轻松获取进程详细信息,了解每个进程的健康状况。
实时监控大师</: pm2 monit,面板监控一目了然,CPU、内存和日志实时更新,提升运维效率。
PM2 Plus的力量</: 高级功能需付费解锁,但带来的性能提升和便捷性不可忽视,详情请参阅官方文档。
源码映射解谜</: pm2 start --source-map-support,线上错误追踪不再是难题,快速定位问题根源。
智能更新重启</: pm2 start --watch,业务变动自动重启,简化部署流程,但务必注意目录和忽略文件设置。
重启策略的艺术</: PM2提供了多种重启策略,从固定延时到高可用集群,适应不同场景需求。
固定延时</: pm2 start --restart-delay=
动态延时</: pm2 start --exp-backoff-restart-delay=
集群模式</: pm2 start -i 4,pm2 reload server,保障服务不间断。
控制重启频率</: pm2 start --no-autorestart
命名空间的智慧</: pm2 start api.js --namespace chihu,方便统一管理和操作多组件业务。
内置HTTP服务器的力量</: pm2 serve [path] [port],为前端提供高效托管服务,提升用户体验。
这些实用功能只是冰山一角,深入探索PM2的文档和源码,你会发现更多的宝藏。提升开发效率,就从掌握这些冷门却强大的功能开始吧!