cron环境下uwsgi command not found

自己运维水平一般,服务器也没有备用的,偶尔down机了,自己在公司还好恢复,有时候不在,还真难搞,总结了一下服务器最近down机原因,基本都是被恶意攻击拖垮了,只能怪自己水平有问题,暂时就想到写个脚本优化一下,以代替自己不在公司时能恢复服务。

首先学习了下Nginx对IP的限制,给单个IP加了个请求速率的限制,超出速率的,返回599,这样限制后发现能很有效了避免服务崩溃了,由于服务器是单核的,CPU在异常访问时还是会接近100%,所以在想如果吧这部分ip查出来禁掉,再检查一下uwsgi状态,不正常就重启下,应该可以吧。

脚本思路大致如下:
1,检查最近的2000行access.log,如果都在1分钟内,而且单个IP返回599状态的请求数大于100,就将此IP禁止访问,
2,访问web url状态,如果返回不是200,就重启uwsgi

单独脚本测试时都还正常,但是当放到cron中时,居然出现uwsgi命令无法使用。。。
由于使用了pyenv,估计也是找不到对应的uwsgi吧,折腾了好久,终于找到解决办法,在脚本中加入

PATH=/usr/local/.pyenv/shims:/usr/local/.pyenv/bin:$PATH

加入pyenv的环境变量,就可以了。

后来查询了资料,应该是说cron的环境变量是系统的,不包括用户设置的变量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器。根据搜索的教程照做,对于原理一...
    Cocoa_Coder阅读 17,285评论 4 56
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,699评论 19 139
  • 13 上线 上一章中,你为你的项目创建了RESTful API。在本章中,你会学习以下知识点: 配置一个生产环境 ...
    lakerszhy阅读 5,407评论 1 6
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,880评论 6 13
  • 系统巡检脚本:Version 2016.08.09 ############################ 系统...
    NamasAmitabha阅读 5,198评论 0 0