cszer

分类存档: 工作相关

banip

IN:工作相关, 技术, shell   Tags:    评论: 3   阅读:1,620 views

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
#2014/01/02 caishzh
 
TODAY=$(date +%Y%m%d)
LOG=/home/caishzh/banip.log
ACCESSLOG=/opt/apache/logs/access-${TODAY}.log
TMPLOG=/tmp/banip_tmp.log
NOW=$(date +%Y%m%d%H%M)
TMPTIME=$(date -d "-5 minute" +%Y%m%d%H%M)
LIMIT=30
 
sed -n "/${TMPTIME}/,/${NOW}/p" $ACCESSLOG >$TMPLOG
 
grep zone_protocol.aspx?zone_id $TMPLOG |cut -d" " -f3|sort|uniq -c|awk -v limit="$LIMIT" '$1>limit{print $1,$2}' | while read times ip;
do
     if ! iptables-save|grep $ip >/dev/null && ! grep "${ip}$" /home/caishzh/whitelist >/dev/null;then
          iptables -I INPUT -s "$ip" -p tcp -m tcp --dport 80 -j DROP    
          echo "$(date +'%F %T')  $times  $ip" >>$LOG
     fi
done
04-10
2014

linux多线程网页截图-python

IN:工作相关, python   Tags: , ,    评论: 0   阅读:2,425 views

上一篇中(linux多线程网页截图-shell),使用shell多进程对大量的网站截图,大大减少了截图的时间。但慢慢的也发现了这种方式的弊端:每个进程分配的网站数量是相等的,有些进程截图较快,有些较慢,个别进程在其它进程已经截图完成后,还要运行10多个小时才能把分配的网站截图完。
如何把现有的“平均分配”截图方式改成“能者多劳”呢?
刚好最近在学习python,而python可以很方便的支持多线程。找了些资料,使用threading+queue的方式实现了“能者多劳”的多线程截图方式:
继续阅读 »

06-13
2013

linux多线程网页截图-shell

IN:工作相关, shell   Tags: ,    评论: 1   阅读:5,150 views

老大临时安排任务,要定期对大量(万为单位)的网站截图并归档保存。最早使用的是window下的一个解决方案:webshotcmd.exe+批处理。运行了一段时间,发现经常弹出webshotcmd.exe程序未响应的窗口,需要人工点击确定后才能继续截图,而且webshocmd未注册版本截出的图是灰色的,不方便查看。
google了下,发现了linux的两个截图工具cutycapt和phantomjs,经过测试,cutycapt截图较慢,但比较稳定,phantomjs截图速度较快,但时有出现进程假死的状态。权衡利弊,决定使用cutycapt+shell脚本的方式截图:
继续阅读 »

06-08
2013

开发自己的监控系统三、移动篇(android)

IN:工作相关, Linux 运维   Tags: , ,    评论: 9   阅读:4,849 views

开发自己的监控系统一、email篇
开发自己的监控系统二、web篇

移动篇(android)

关键字:java、android、json、php

互联网已经进入移动时代,如果没有给自己的产品开发手机端的应用程序,出门都不好意思跟别人打招呼了~~
为了随时随地掌握服务器的运行状态,当然,也为了装ability,下面就来为我们的监控系统开发一个手机端(android)的应用。

原理:

首先编写一个web接口,读取数据库服务器数据,返回json对象数组。android应用程序解析json数据,通过listvie控件显示。
继续阅读 »

05-22
2013

开发自己的监控系统二、web篇

IN:工作相关, Linux 运维, shell   Tags: ,    评论: 8   阅读:6,861 views

开发自己的监控系统一、email篇
开发自己的监控系统三、移动篇(android)

web篇:

关键字:shell mysql python web.py

在上一篇中,我们介绍了如何使用shell脚本监控系统状态,并在出现异常时通过email发送警报。但email报警有一个弊端,无法实时了解服务器的运行状态。为了满足这一需求,就要开发一个web程序,通过网页的方式来显示所有服务器的实时运行状态。

原理:

定时执行监控脚本提取服务器运行相关信息,如系统负载、磁盘空间等,将这些信息入到mysql数据库中。开发一个web程序,当用户通过浏览器访问web监控页面,web程序读取mysql数据库中服务器的数据,以网页的形式展现给用户。
继续阅读 »

05-21
2013

开发自己的监控系统一、email篇

IN:工作相关, Linux 运维, shell       评论: 6   阅读:4,085 views

前言:

随着维护服务器量的增多,越来越觉得监控的重要性。监控,就是运维人员的眼睛,没有了监控,你不知道磁盘是否满了,网络流量是否超标,甚至服务器是否宕机。监控的重要性不言而喻。市面上的监控软件也很多,如商业版的ipmontor、opmanager,免费开源的nagios、cacti等。每个监控软件都有各自优缺点和应用场景,这里不去探讨。本文要探讨的是从一个初学者的角度去打造属于自己的监控系统。共分为三部分:email篇web篇移动篇(android)。好了,不废话了,下面开始。

email篇:

关键字:shell、email

原理:
定时执行监控脚本,提取服务器运行状态,如系统负载、磁盘空间或是相关服务是否运行等,只要有一项异常,即马上发送邮件警报。下面是脚本内容(由于只是个事例,所以只设定了两个监控项目,大家根据自己的需求增减监控项目)。
继续阅读 »

05-19
2013

postfix中recipient/client/sender/helo四者的区别

IN:工作相关       评论: 0   阅读:1,961 views

postfix在main.cf中用下面四个做限制,那么这四者到底有什么区别?

  1. smtpd_recipient_restrictions
  2. smtpd_client_restrictions
  3. smtpd_sender_restrictions
  4. smtpd_helo_restrictions

首先得明白recipient, client, sender, helo的意思:

  1. recipient 就是指收件人,即RCPT TO阶段的收件人
  2. client指的是连接到postfix的客户机的ip地址,这里包含了ip地址及ip反解
  3. sender就是来信人,即MAIL FROM的内容
  4. helo就是HELO阶段,由客户机发送过来的helo主机名

这4个restriction就是对上述4个特征内容进行限制的。区别就不言而明了,至于说执行的次序,这个和SMTP命令产生的顺序是一样的,首先是CONNECT阶段(client),然后发送HELO(helo),再是MAIL FROM(检查sender),再到RCPT TO(检查recipient)。

smtpd_xxx_restrictions可以配置的规则请看:
http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions

09-23
2012

Give root password for maintenance…

IN:工作相关       评论: 2   阅读:4,094 views

刚上班,打开foxmail,就看到一封火急火燎的邮件,客户邮局xxxx.com无法访问。
浏览器测试了下,邮局web页面打不开,ping了下服务器ip,不通。
加了下客户qq,具体沟通了下,服务器起不来,停在一个界面,客户描述不清楚,让其发了张图片过来: 继续阅读 »

08-20
2012

mail服务器磁盘满故障

IN:工作相关       评论: 3   阅读:2,095 views

早上一个客户来电,称其邮件无法正常收发。要来服务器ip及root密码,登陆查看。
登陆后立马df+w(事实证明这是个好习惯^_^~),直接就看到了问题所在:

[root@master ~]# df
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             39674192  37635572         0 100% /
/dev/sda2             857G  750G   63G  93% /mail
/dev/sda1             244M   13M  219M   6% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm

根分区满了!! 继续阅读 »

08-02
2012

工作中常用的shell命令

IN:工作相关, Linux 运维, shell   Tags:    评论: 1   阅读:2,585 views

列出所有 ESTABLISHED 状态的连接:

1
netstat -nta | fgrep "ESTABLISHED" | cut -b 49-75 | cut -d ':' -f1 | sort | uniq -c | sort -n -r --key=1,7 | head -25

列出所有连接状态的统计:

1
netstat -nta | fgrep ":" | cut -b 77-90 | sort | uniq -c

1
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

继续阅读 »

06-25
2012
第 1 页,共 2 页12