标签 shell 下的文章

作者: reistlin
来源: http://www.reistlin.com/blog/359
更新时间: 2011.08
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

linux.pngcode.png

#!/bin/bash

# name: tcp status stat v0.2
# author: reistlin
# website: www.reistlin.com
# date: 2011.08.12

# Function
cmd() {
	netstat -nt | grep $1 | awk '{print $5}' | awk -F ":" '{print $1}' | grep -v ^$ | sort | uniq -c | sort -nr | head
}

# Case
case "$1" in
	# SYN RECV
        SYN_RECV)
                echo "=============================="
                echo "$1 Source IP Top10"
                echo "=============================="
		cmd $1
        shift
        ;;
        # ESTABLISHED 
        ESTABLISHED)
                echo "=============================="
                echo "$1 Source IP Top10"
                echo "=============================="
                cmd $1
        shift
        ;;
        # FIN_WAIT1
        FIN_WAIT1)
                echo "=============================="
                echo "$1 Source IP Top10"
                echo "=============================="
                cmd $1
        shift
        ;;
        # FIN_WAIT2
        FIN_WAIT2)
                echo "=============================="
                echo "$1 Source IP Top10"
                echo "=============================="
                cmd $1
        shift
        ;;
        # CLOSE_WAIT
        CLOSE_WAIT)
                echo "=============================="
                echo "$1 Source IP Top10"
                echo "=============================="
                cmd $1
        shift
        ;;
        # LAST_ACK
        LAST_ACK)
                echo "=============================="
                echo "$1 Source IP Top10"
                echo "=============================="
                cmd $1
        shift
        ;;
        # CLOSING
        CLOSING)
                echo "=============================="
                echo "$1 Source IP Top10"
                echo "=============================="
                cmd $1
        shift
        ;;
        # TIME_WAIT
        TIME_WAIT)
                echo "=============================="
                echo "$1 Source IP Top10"
                echo "=============================="
                cmd $1
        shift
        ;;
	# Summary (Default)
	*)
		echo "=============================="
		echo "TCP Sataus Stat (Summary)"
		echo "=============================="
		netstat -nt | awk '{print $6}' | grep -v ^$ | sort | uniq -c | sort -nr

		echo "=============================="
		echo "Source IP Top10 (Summary)"
		echo "=============================="
		netstat -nt | awk '{print $5}' | awk -F ":" '{print $1}'  | sort | uniq -c | sort -nr | head
	shift
	;;
esac

作者: reistlin
来源: http://www.reistlin.com/blog/190
更新时间: 2011.01
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

linux.pngcode.png

#!/bin/bash

# name: backup directory v0.1 
# author: reistlin
# website: www.reistlin.com
# date: 2011.01.28

debug="0";

tag="blog";

dir_src="/home/reistlin/blog/";
dir_dst="/home/reistlin/backup/${tag}_`date +'%Y-%m-%d'`.tar.gz";

log="/home/reistlin/backup/${tag}_`date +'%Y-%m-%d'`.log";
md5="/home/reistlin/backup/${tag}_`date +'%Y-%m-%d'`.md5";

del_dir="/home/reistlin/backup/";
del_day="30";

if [ $debug == "1" ]; then
	echo "[INFO] source path:" $dir_src;
	echo "[INFO] target path:" $dir_dst;
	echo "[INFO] save log:" $log;
	echo "[INFO] save md5:" $md5;
	echo "[INFO] delete path:" $del_dir;
	echo "[INFO] delete days:" $del_day;
fi

cd $dir_src;
/bin/tar zcvfpP $dir_dst $dir_src >> $log;
/usr/bin/md5sum $dir_dst >> $md5;

# delete "N Day*24H+24H"
find $del_dir -name "${tag}_*.*" -mtime +${del_day} -exec rm {} \;

作者: reistlin
来源: http://www.reistlin.com/blog/189
更新时间: 2011.03
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

linux.pngcode.png

#!/bin/bash

# name: standard daemon v0.1
# author: reistlin
# website: www.reistlin.com
# date: 2011.03.15

app_name="pptpd"
app_port="1723"
app_process="/usr/sbin/pptpd"
app_run="/etc/init.d/pptpd start"

check1=`ps x | grep "${app_process}" | grep -v "grep" | wc -l`
check2=`netstat -nlpt | grep "0.0.0.0:${app_port}" | wc -l`

if [ "${check1}" -eq 0 ] || [ "${check2}" -eq 0 ]; then
	/sbin/fuser -k ${app_port}/tcp
	echo "[`date "+%Y-%m-%d %H:%M:%S"`] clean ${app_name} all process" >> $HOME/crontab/${app_name}.log
    sleep 3
	${app_run}
	echo "[`date "+%Y-%m-%d %H:%M:%S"`] restart ${app_name} ${app_port}/tcp service" >> $HOME/crontab/${app_name}.log
else
	echo "[`date "+%Y-%m-%d %H:%M:%S"`] ${app_name} service running"
fi

作者: reistlin
来源: http://www.reistlin.com/blog/74
更新时间: 2010.12
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

linux.pngcode.png

中国电信 IP 地址表

下载 [ct_acl.rar] (Updated 2010.12)

whois -h whois.apnic.net -l -i mb MAINT-CHINANET | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}' | sort -n | awk 'BEGIN{print "acl \"CT\" '{' "}{print $1";"}END{print "'}';"}' > ct_acl.conf

中国网通 IP 地址表

下载 [cnc_acl.rar] (Updated 2010.12)

whois -h whois.apnic.net -l -i mb MAINT-CNCGROUP | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}' | sort -n | awk 'BEGIN{print "acl \"CNC\" '{' "}{print $1";"}END{print "'}';"}' > cnc_acl.conf

中国铁通 IP 地址表

下载 [crtc_acl.rar] (Updated 2010.12)

whois -h whois.apnic.net -l -i mb MAINT-CN-CRTC | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}' | sort -n | awk 'BEGIN{print "acl \"CRTC\" '{' "}{print $1";"}END{print "'}';"}' > crtc_acl.conf

中国移动 IP 地址表

下载 [cmcc_acl.rar] (Updated 2010.12)

whois -h whois.apnic.net -l -i mb MAINT-CN-CMCC | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}' | sort -n | awk 'BEGIN{print "acl \"CMCC\" '{' "}{print $1";"}END{print "'}';"}' > cmcc_acl.conf

[全球国家 IP 地址分类汇总]

作者: reistlin
来源: http://www.reistlin.com/blog/42
更新时间: 2010.09
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

linux.pngcode.png

#!/bin/bash

# name: backup subversion v0.1
# author: reistlin
# website: www.reistlin.com
# date: 2010.09.10

backup_source="/home/reistlin";
backup_target="/home/reistlin/backup/svn_`date +'%Y-%m-%d'`.tar.gz";
backup_log="/home/reistlin/backup/svn_`date +'%Y-%m-%d'`.log";
backup_md5="/home/reistlin/backup/svn_`date +'%Y-%m-%d'`.md5";
backup_chk="/home/reistlin/backup";

#echo $backup_source;
#echo $backup_target;
#echo $backup_log;
#echo $backup_md5;

# SVN Directory Backup & Log & MD5
cd $backup_source;
/bin/tar zcvfpP $backup_target $backup_source >> $backup_log;
/usr/bin/md5sum $backup_target >> $backup_md5;

# Delete "3*24H+24H" Backup Files
find $backup_chk -name "svn_*.*" -mtime +3 -exec rm {} \;

# Rsync to Server
rsync -vzropg --progress -z --password-file=./backup.pass ./backup username@server::svn