重启apache的时候报错:
Submitted by gouki on 2013, September 16, 2:44 PM
重启apache的时候报错:
Submitted by gouki on 2013, September 13, 10:26 PM
最近听到supervisor的机会越来越多了,主要是因为越来越喜欢将程序放到底层去运行,但又需要守护程序来监控它,万一它挂了怎么办?如果为每个程序都写上这样的脚本,那得写多少啊?
结果,在最近的看到的网上的内容里,就看到一大堆人在说用supervisor吧。
1、Asta谢的《build-web-application-with-golang》:第12章:应用部署
2、还是Asta谢的beego框架:Supervisord
3、来自the5fire的:进程管理器supervisor的使用(django实例)
其实还有很多关于这样的内容,就不一一贴出来了。只是beego框架中的介绍会相对比较简单,所以可以拿来当教程,再加上我的程序可能也会趋向于使用go来开发,就转贴一下这篇博客吧,只有三步:
安装 setuptools
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg sh setuptools-0.6c11-py2.7.egg easy_install supervisor echo_supervisord_conf >/etc/supervisord.conf mkdir /etc/supervisord.conf.d
修改配置 /etc/supervisord.conf
[include] files = /etc/supervisord.conf.d/*.conf
新建管理的应用
cd /etc/supervisord.conf.d vim beepkg.conf
配置文件:
[program:beepkg] directory = /opt/app/beepkg command = /opt/app/beepkg/beepkg autostart = true startsecs = 5 user = root redirect_stderr = true stdout_logfile = /var/log/supervisord/beepkg.log
Submitted by gouki on 2013, September 7, 11:06 PM
其实说白了就是利用sed,但怎么个用法,确实是有点想法,毕竟sed的功能实在太强了。
Submitted by gouki on 2013, September 6, 2:14 PM
标题是标题,但其实讲的内容当然是不一定只是在树梅的设备上用的。不要太纠结于表面,我不改标题是为了尊重原作者
原文来自于hugo zhu的网站:http://hugozhu.myalert.info/2013/03/08/block_failed_ssh_attempts_with_iptable.html,看了他的名字,你也可以猜出他的微博定就是http://weibo.com/hugozhu。OK,不扯蛋,上原文:
Raspberry Pi整天开着,如果用缺省SSH端口对外开放,就会经常遇到扫描SSH密码的肉鸡。虽然密码不是很简单,但还是感觉很不安全的。
系统的ssh登录日志文件在:/var/log/auth.log,登录失败时会记录以下格式的日志:
Mar 7 10:31:51 raspberrypi sshd[24510]: Failed password for root from 221.8.19.129 port 4066 ssh2
Mar 7 10:31:55 raspberrypi sshd[24514]: Failed password for root from 221.8.19.129 port 4079 ssh2
Mar 7 10:31:56 raspberrypi sshd[24518]: Failed password for sshd from 221.8.19.129 port 4080 ssh2
Mar 7 10:32:26 raspberrypi sshd[24522]: Failed password for sshd from 221.8.19.129 port 4149 ssh2
用最简单的Shell脚本来解决这个问题:
#!/bin/bash
last_ip=""
tail -f /var/log/auth | while read LINE; do
{
if [[ "${LINE}" =~ "Failed" ]]; then
ip="$(echo ${LINE} | awk '{print $(NF-3)}')"
if [[ "$last_ip" == "$ip" ]]; then
echo "block $ip"
#curl -s --data-ascii "uuid=<my iphone's uuid>" --data "body=${LINE}" http://raspberrypi/pushme
iptables -A INPUT -s "$ip" -j DROP
fi
last_ip=$ip
echo $LINE
fi
}
done
用root用户执行以下命令,也可以放到启动脚本里:/etc/rc.local
nohup /root/bin/guard.sh > /var/logs/guard.log 2>&1 &
如果连续两次输错密码,那ip就会被封,我另外加了一个报警,会通知到我的手机,这下感觉安全了些。
登录Pi用iptables -L
可以看到被封杀的IP列表,如果需要解封这些IP,可以用命令iptables -F
,也可以用crontjob每天定时运行一次iptables -F
来清除
脚本还很简单,还可以有不少改进,可以在评论里讨论。
---EOF---
越来越发现,sablog需要改版了。再不改。alexa排名下降不说,最关键的是,代码的显示不爽了。只是想到改版后有几千篇的文字需要一一调整就痛苦。
Submitted by gouki on 2013, September 2, 10:53 AM
一直以为wget只是下载点东西的工具。看到一篇网上的文章,才注意到wget原来还可以post数据。