3月 15

linux定时重启单台上多个tomcat

tomcat长期运行会越来越慢,所以需要定时重启单台上多个tomcat,写一个脚本放在crontab定时运行。脚本如下,需要注意脚本中使用了了linux中的mail命令,在tomcat启动失败时可以发送提醒邮件。(不知道为什么贴到这里格式会乱,只能手动整理)

#!/bin/sh
# ——————————————————————————-
# Filename: tomcat_reboot.sh
# Revision: 1.0
# Date: 2010-03-01
# Author: simon
# Email: simon-zzm@163.com
# Description:
# ——————————————————————————-
# Source function library.
. /etc/init.d/functions
source /etc/profile

#######set tomcat patch
tomcat_path=(“/program/tomcat_a/” “/program/tomcat_b/”)

#######set tomcat_key patch
tom_key_path=(“tomcat_a” “tomcat_b”)

###### set bases data
admin_mail=simon-zzm@163.com
IP=`/sbin/ifconfig |grep ‘inet addr:’|grep -v ‘127.0.0.1’|awk ‘ ”{print $2}’`

###### send alert mail
send_mail()
{
echo ${IP}” “${1}” can not stop…” >${2}tom_mail.log
/bin/mail -s ${1}’-‘${IP} ${admin_mail}<${2}tom_mail.log
/bin/rm -rf ${2}tom_mail.log
}

###### delete tomcat`s work dir and startup server
del_start()
{
/bin/rm -rf ${1}work/*
$1bin/startup.sh
}
######main()
for (( i=0 ; i < ${#tomcat_path[@]} ; i++ ))
do
${tomcat_path[i]}bin/shutdown.sh
sleep 3
get_pid_count=`/bin/ps -ef|grep -v grep|grep ${tom_key_path[i]}|wc -l`
if [ ${get_pid_count} -gt 0 ] ; then
/bin/ps -ef|grep -v grep|grep ${tom_key_path[i]}|awk ‘ ”{print $2}’|xargs kill -9
sleep 5
get_pid_count=`/bin/ps -ef|grep -v grep|grep ${tom_key_path[i]}|wc -l`
if [ ${get_pid_count} -gt 0 ] ; then
send_mail ${tom_key_path[i]} ${tomcat_path[i]}
else
del_start ${tomcat_path[i]}
fi
else
del_start ${tomcat_path[i]}
fi
sleep 3
get_pid_count=`/bin/ps -ef|grep -v grep|grep ${tom_key_path[i]}|wc -l`
if [ ${get_pid_count} -lt 1 ] ; then
send_mail ${tom_key_path[i]} ${tomcat_path[i]}
fi
done

3月 01

shell 打印拷贝进度

写了一个脚本做大量数据拷贝,但是拷贝的时间比较常,不知道当前进度如何,是否死机,于是写了一段关于拷贝百分比的输出,详细参见以下脚本。

#!/bin/bash
# ——————————————————————————-
# Filename: copy_percent.sh
# Revision: 1.0
# Date: 2011-03-01
# Author: simon-zzm
# Email: simon-zzm@163.com
# ——————————————————————————-

SOURCE=$1
TARGET=$2

/bin/cp -r “$SOURCE” “$TARGET” &

compute_percent() #
{
SOURCE_SIZE=`/usr/bin/du -s ${1}|awk ‘ ”{print $1}’`
TARGET_SIZE=`/usr/bin/du -s ${2}|awk ‘ ”{print $1}’`
let “i=(${TARGET_SIZE}*100)/${SOURCE_SIZE}”
return $i
}

compute_percent ${SOURCE} ${TARGET}
while [ ${i} -lt ‘100’ ]
do
compute_percent ${SOURCE} ${TARGET}
echo $i’%’
sleep 1
done
echo “ok”

2月 19

python 自动刷新简历

初学python还不是很熟悉,只能在实践中学习了。写一个自动刷新51job和智联招聘的小脚本。在网上搜

了一下,找到不少资料,还有一段用python写的代码。试了一下,51job的可以刷新,但是智联招聘的已经不能用

了,需要自己修改一下。
先使用wrishark抓个包看看刷新的过程。提取刷新图如下。从1中可以看出提交账户密码是post方式。从

2中可以看到我为抓包输入的地址。从3和4中可以看到请求的参数,此参数也保存在cookie中。为了方便直接把串

拷出来使用。

python 自动刷新简历 - simon-zzm - simon个人观点
参数部分格式( 为了安全已经隐藏了敏感信息):
site=(‘http://my.zhaopin.com/loginmgr/loginproc.asp’,
‘loginname=xxx@xxx.com&password=xxx&int_count=999&bkurl=/myzhaopin/resume_publish.asp’,
‘http://my.zhaopin.com/myzhaopin/resume_publish.asp?ext_id=JRxxxxxxxxxxxxxx0000000’,
‘resume_id=138xxxxx&Version_Number=1&language_id=1’)
代码部分:
def share_zhaopin(site):
cookiesHandler = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(cookiesHandler)
request = urllib2.Request(
url = site[0],
data = site[1])
opener.open(request)
url=site[2]+’&’+site[3]
f = opener.open(url)
print f.read()