写了个Python脚本监控nginx进程
接上一文用iptables让SSH服务对陌生人说不。还是有点担心这个学期内,nginx可能会因为系统各种原因而出现异常退出,导致Web服务暂停。所以,又来了一个方案。
#!/usr/bin/env python
import os, sys, time
while True:
time.sleep(3)
try:
ret = os.popen('ps -C nginx -o pid,cmd').readlines()
if len(ret) < 2:
print "nginx process killed, restarting service in 3 seconds."
time.sleep(3)
os.system("service nginx restart")
except:
print "Error", sys.exc_info()[1]
设置文件可执行属性,加入到/etc/rc.local,总算放心了。
这种方法还可以监控别的进程,我相信应该有现成的监控软件,但是我觉得写个脚本更方便。
用iptables让SSH服务对陌生人说不
今晚老师跟我说服务器的Web挂了,但是FTP可以用。我登录了这个OpenVZ的VPS,发现nginx进程没了。为什么会发生这么神奇的事情呢?
我在/var/log/nginx下翻了日志文件,没有发现任何出错信息。然后想会不会是系统内存超了,被OpenVZ内核KILL了呢?查了一下,果然发现:
uid resource held maxheld barrier limit failcnt
3004536: kmemsize 3626521 4652581 51200000 51200000 0
lockedpages 0 0 2048 2048 0
privvmpages 34041 131231 131200 262200 3
shmpages 1281 1297 128000 128000 0
私有虚拟页面privvmpages的数值超了,有3次失败请求。一个页面4KB,所以这个VPS的内存是512M.
我在这个VPS上只开启了nginx,vsftpd,mysqld,php-cgi,xxfpm等服务,不可能占用那么多内存吧。php的进程数量是用自己写的xxfpm限制死了,只能有3个进程。这些所有的服务一共才占用100多MB内存,怎么可能超了512M呢?
在路由器上写CMCC自动登录验证脚本
今天入手了一个新的路由器,160RMB,特点是体积很小,像个火柴盒,但有64MB内存,安装openWRT(Linux)操作系统,内核比较新。玩了一下,功能很强大,跟那些几千元的大型路由器有的比呀!
如下图模型:
完美解决Linux下Intel 1000 BGN间断丢包的bug
我的Y460笔记本接入A哥的无线路由的时候,不到一会,就会出现完全丢包的现象。等几分钟之后,又好了,但是不到10多秒,又丢了。
这种现象一直困扰了我几年多,我以前曾经尝试过安装官方提供的网卡驱动或者固件,都无法解决这个问题。今晚好不容易想使用一下荣哥分享的校园网,这个问题重现,真的烦死了!
dmesg一下日志,如下:
ARM版Ubuntu源
我的手机用的是Ubuntu maverick的arm版,可以使用apt-get来给手机安装系统软件包。例如常用的一些gcc,tcpdump,apache2,php,升级内核等。
官方的arm源并不在archive.ubuntu.com上,而是在ports.ubuntu.com。
修改/etc/sources.list为:
deb http://ports.ubuntu.com maverick main restricted universe multiverse
然后更新软件包信息。
改用PAE内核让32位Linux支持4GB以上的内存
2011年4月,我在网上买了一条4G金士顿的笔记本内存(DDR3 1333),花了275.00元(不含邮费)。
几个月前,我舍友买了一条同样的4G内存条,花了156.00元。
今天在网上看了一下,同样的内存只需要120元左右就够了。
一年还不到,这个降价太离谱啦!!!
因为大部分在32位的Linux下娱乐工作学习,所以在我电脑上最多只能使用到3GB多的内存。
直到今天,我才真正的把这条4G内存用上场。有点可惜了
PAE是Physical Address Extension,最初是为了弥补32位地址在PC服务器应用上的不足而推出的。更新至支持PAE的Linux内核,可以让你的32位Linux支持最大64GB内存。
更新步骤很简单,在终端执行下面一句或者在软件包管理器里选择安装linux-generic-pae:
apt-get install linux-generic-pae
手动创建ICMP Tunnel实现VPN上网(附Python实现代码)
其实这是一篇讲解利用中国移动CMWAP的一些特性来实现免费上网的博文,但是没有以这个为标题,因为
1、用的是2G的EDGE网络,跟2G手机上网一样,速度有限.
2、各地区的移动设备有差别,例如在广州,这种方法行不通。但是广州的移动Wifi是可以通过UDP建立VPN来免费使用的。
3、不想吸引太多人的注意。
我见过很多公共网络都对UDP和TCP有不少限制,以致于我们不能自由地访问互联网。为了摆脱这种束缚,很多人都为此付出了很多努力,例如各种代理软件,各种隧道,各种VPN等。本文介绍的是一种比较罕见的ICMP隧道方式建立VPN。
背景
一年前,因为在县城里没有网络使用,又不想晚上跑到外面上,所以经常使用笔记本连接手机的GPRS网络来上网。打开一些网页或者聊天工具之类的,网速的快慢并不是很重要。但是流量有限,当时开通了300MB的套餐也很快被消耗尽了。有一次,在Ubuntu下创建了一个cmwap网络,cmwap是需要设置代理IP为10.0.0.172才能上网的。但是奇怪的是,我竟然可以ping通我自己博客服务器的IP。所以我想cmwap对外网IP的访问只是限制了TCP和UDP类型的数据包进出而已。




