mysql java 守护脚本

参考网上资料,为生产环境的mysql 和java 进程增加守护进程,负责进程退出时,自动拉起

#!/bin/sh
##设置mysql进程和jira进程的监控进程名和进程数目;
mysql_process_check=`lsof -i:3306|awk '{ print $1 }'|sed -n 2p`
mysql_check=`lsof -i:3306 |wc -l`
jira_process_check=`lsof -i:8080|awk '{ print $1 }'|sed -n 2p`
jira_check=`lsof -i:8080 |wc -l`

##设置java运行环境,单独在shell脚本提示符号下面运行是可以不用设置java运行环境(因为加载用户shell脚本环境时已经加载
##了);但是在cron进程下面时则需要设置java运行环境。

#export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
#export PATH=$PATH:/usr/lib/jvm/java-1.5.0-sun/bin

while [ 1 ]
do
echo "$(date) jboss_deamon running..."
##先查看3306端口是否有运行进程(注意,这个时候运行在3306脚本上面的不一定是mysql进程mysqld!不过我们第一步是判断
##3306端口上面是否运行了进程)
while [ $mysql_check -eq 0 ]
do
echo "port:3306 have no process running"
sleep 2
#/usr/bin/mysqld_safe -umysql &
service mysql start
##如果8080端口上有进程运行,不管它是jira服务进程java还是其它进程,则一律把8080端口上运行的进程强行终止掉;
##因为jira服务的运行依赖于mysql的正常运行后才运行;如果jira服务进程正常存在系统中,但是mysql进程已经出问题了,
##那么这个时候不管8080端口上运行的是jira服务进程java还是其它进程,一律强行终止掉。
if [ $jira_check -gt 0 ]; then
pkill -9 $jira_process_check
fi
sleep 20
mysql_check=`lsof -i:3306 |wc -l`
done

##这一次将判断3306端口上面运行的是否为mysql进程mysqld,如果不是则强行终止3306上面的非mysql进程,同时终止完后运行##mysql进程
mysql_process_check=`lsof -i:3306|awk '{ print $1 }'|sed -n 2p`
if [ $mysql_process_check != mysqld ]; then
echo 'mysql_process not run in port 3306,so I will kill process which run in port 3306.'
pkill -9 $mysql_process_check
mysql_check=`lsof -i:3306 |wc -l`
# echo $mysql_check
while [ $mysql_check -eq 0 ]
do
sleep 2
#/usr/bin/mysqld_safe -umysql &
service mysql start
##确认8080端口上面是否运行了进程,如果运行了进程则强行终止掉8080端口上面运行的进程,不管是jira进程还是其它进程。
if [ $jira_check -gt 0 ]; then
pkill -9 $jira_process_check
fi
sleep 20
mysql_check=`lsof -i:3306 |wc -l`
done
echo 'mysql_process are running in port 3306.'
else echo 'mysql_process are running in port 3306.'
fi

##确认8080端口上面是否运行了进程(不管8080端口上面运行的是java进程还是其它进程)jira_check=`lsof -i:8080 |wc -l`
while [ $jira_check -eq 0 ]
do
echo "port:8080 have no process running"
sleep 2
#/usr/local/jira/bin/startup.sh
nohup /data/web/jboss-as-7.1.1.Final/bin/standalone.sh >/dev/null 2>&1 &
sleep 30
jira_check=`lsof -i:8080 |wc -l`
done

##检查8080端口上面是否运行着jira服务进程java,如果没有则先强行终止8080端口上面运行的进程;然后在启动jira服务
jira_process_check=`lsof -i:8080|awk '{ print $1 }'|sed -n 2p`
if [[ $jira_process_check != java ]]; then
echo 'jira_process not run in port 8080,so I will kill process which run in port 8080.'
pkill -9 $jira_process_check
jira_check=`lsof -i:8080 |wc -l`
# echo $jira_check
while [ $jira_check -eq 0 ]
do
sleep 2
#/usr/local/jira/bin/startup.sh
/data/web/jboss-as-7.1.1.Final/bin/standalone.sh >/dev/null 2>&1 &
sleep 30
jira_check=`lsof -i:8080 |wc -l`
done
echo 'jira_process are running in port 8080.'
else echo 'jira_process are running in port 8080.'
fi
sleep 60
done

mysql 重置密码

sudo service mysql stop
sudo mysqld_safe --skip-grant-table&
mysql
use mysql;
update user set password = password('yourpasswd') where user = 'root';
flush privileges;

重启登录后,如果提示:You must SET PASSWORD before executing this statement
解决:

mysql>  SET PASSWORD = PASSWORD('123456');

使用postfix 实现注册用户邮件通知

之前使用的是企业邮箱,由于有反垃圾邮件和每日发送次数限制,当用户量上来的时候,就苦逼了,后台调用失败,用户注册不了。

所以把邮件服务器换成了postfix。这样就可以摆脱以上的限制,而且postfix也很强大。

目前只实现简单的smtp 功能,实现发送注册邮件功能。

1. 增加DNS解析

为什么需要dns解析?因为显示的发送邮箱是可以软件填写的,所以唯一的好处就是在用代码调用的时候能保证接口稳定(ip主机迁移,只要修改dns解析就可以)。

2. 如果是本机发送,基本默认配置就可以搞定了。如果要支持remote,就需要简单的设置

postfix-config

对应 /etc/postfix/main.cf 中的mynetworks 参数

全部修改参数如下:

myhostname = mail.xxx.com
mydomain = xxx.com
mynetworks = 127.0.0.0/8 xxx.xxx.xxx.xxx
inet_interfaces = all

如果要进行详细的客户端权限管理和虚拟用户帐户管理,可以参见这篇文章:

http://www.centoscn.com/CentosServer/lighttpd/2013/0730/806.html

配置完成后,记得一定要重启

3. telnet 测试。

MAIL FROM: xxx@xxx.com
RCPT TO: xxx@xxx.com
DATA
From: xxx@xxx.com
To: xxx@xxx.com
Subject: test message
test mail
.

注意:Telnet时 ,请用外网ip或者域名否则可能出现:

Postfix 554 5.7.1 Relay Access Denied  的错误

ok,可以替换以前代码中的企业邮箱的参数了。

jboss 的时区问题导致timestamp 错误

最近由于更换云主机,环境进行了搬迁,发现以前正常的设备数据都和实际时间段差了时区值。同时发现jboss的日志时间是UTC时间,所以推断是jboss时间错误导致时间戳错误,数据错乱。

修改jboss 时区:

修改 xxx/bin/xxx.cnf xxx根据服务器类型有变化

在 启动配置中添加jvm 参数,指定时区和jboss 的语言:

export JAVA_OPTS="-Duser.timezone=Asia/Shanghai -Dfile.encoding=utf-8 -Duser.language=zh -Duser.region=CN"

一生

【1岁】我就是不讲话,不让大人们轻易知道我在想什么。哼哼。 

【2岁】发表第一篇论文《论走路》:还是手脚并用更稳当一些…… 

【3岁】认识了许多新朋友。女生(男生)?她(他)和我不一样。 

【4岁】鹅鹅鹅,曲项向天歌,白毛拂绿水,红掌拨清波……我的苦难人生就这样开始了。 

【5岁】我讨厌每个人都过来摸我一下表示喜欢,我讨厌回答几岁了这个问题。 

【6岁】上学,我很忙。 

【7岁】老师说的为什么和爸爸妈妈说的不一样?一定是爸爸妈妈错了。 

【8岁】我应该有些自己的奢侈品,原来的那些太土了。 

【9岁】第一次翘课。 

【10岁】“隔壁班上的那个女孩(男生)为什么还没有经过我的窗前……” 

【11岁 】褪字灵真是个好东西,但学会模仿爸爸签字好像更重要。 

【12岁】升初中,真的从现在开始就能决定我一生的走向吗?那要不要列一个清晰版的人生计划? 

【13岁】每天都在发育。女生在妈妈陪伴下买了第一个Bra,男生突然开始自己洗内裤。 

【14岁】 ……!!其实不过是拉拉手而已。 

【15岁】小学里最要好的朋友,有的已经失去了联系。 

【16岁】成为有身份的人。男生偷偷用了父亲的刮胡刀。 

【17岁】人生里“第一次”最密集的一年。 

【18岁】成年。有投票权。啊,还有高考……它的重要性和决定性是过了好多年才发现的。虽然当时已经被这重要压得喘不过气来了。 

【19岁】新世界展开了,我可以无法无天了。被叫“叔叔”或者“阿姨”。 

【20岁】重新思考一下人生,可以给过来人讲自己的传奇故事了。 

【21岁】无所事事的一年,也是最容易被忽略和忘记的一年。或者,这一年就该被浪费掉? 

【22岁】我赚钱了!王侯将相,宁有种乎? 

【23岁】一个人住在北京(上海……),还不错哦。很多东西不像自己想象的那个样子。 

【24岁】对本命年充满忌惮,随时准备倒更大的霉。 

【25岁】懒得跳槽了,有什么区别呢? 

【26岁】学会了用“呵呵”来表达自己不一样的看法。 

【27岁】啊,那些运动员的年龄,居然比我还小。

【28岁】远大前程,终于找到了得心应手的感觉。 

【29岁】父母帮忙付首付,自己付按揭的第一套房。第一次婚姻。该为家族负责的事,在这一年似乎应该都搞定才行。 

【30岁】曾经可怕的年龄,也就这么着就来了。 

【31岁】事业不错,生活也不错,但不舒服的是,富豪榜上也有比你年轻的人了。 

【32岁】计划开始繁殖。 

【33岁】抓住青春的尾巴。 

【34岁】发现有些事情不是你通过努力就能做到的。 

【35岁】突然想起来,多年以前那个35岁退休的理想不可能实现了。 

36岁】理解了为什么妈妈当年会觉得你是如此天赋异禀,因为你也如此看自己的孩子。

【37岁】挠挠七年之痒。 

【38岁】那些不知天高地厚的年轻人! 

【39岁】奔4,但已经不恐慌了。 

【40岁】 四十不惑。就是说,任何事情都要自己解决了,你没有资格也不好意思再去请教别人了。 

【41岁】看孩子写作业,这些题怎么还是那么讨厌。 

【42岁】毕业20年聚会,男生最大的能耐还是把自己的肚子搞大。 

【43岁】孩子问题好像是遇到的问题中最棘手也是最没把握的。 

【44岁】去健身房的目的不是为了肌肉或者减肥,而是更多考虑自己的心肺功能问题了。 

【45岁】中年危机,找到心跳的感觉。 

【46岁】事业有成,觉得自己还是很幸运的。 

【47岁】孩子的个头超过自己。 

【48岁】发现眼睛居然不近视了。 

【49岁】琢磨了一年如何与孩子沟通的问题。 

【50岁】结婚20周年纪念,一起度一次假。只是因为孩子住校了。 

【51岁】去陌生城市开拓一个新市场。很激动兴奋,就像有很多未知的东西等在前面。 

【52岁】同学又聚会,为早逝的同学默哀。交流最多的是健康问题。 

【53岁】太阳底下没有新鲜事。 

【54岁】公共汽车上,很意外有个孩子给你让座。 

【55岁】儿子(女儿)要出国了。 

【56岁】做的所有事,终究还是要放下的。 

【57岁】父母随时需要有人在身边照顾。 

【58岁】越来越絮叨了,更年期。 

【59岁】做了很多退休的计划,这一年过得可真快。 

【60岁】退休。早上一起床就手足无措,若有所失。 

【61岁】认识了许多新朋友。 

【62岁】见一对陌生的同龄夫妇,与他们一起探讨了儿女结婚的事宜。 

【63岁】参加孩子的婚礼。 

【64岁】搬到另一个城市与孩子同住。 

【65岁】能记得住电视里每个电视频道的号码。 

【66岁】告诫自己不要太操心孩子家里的事,但总是管不好自己。 

【67岁】很迫切地希望有孩子的孩子。 

【68岁】终于有了自己的爱好。 

【69岁】不会再搬家了。 

70岁】得了一场病,写了遗嘱。 

【71岁】终于有了孩子的孩子,溺爱他(她)。 

【72岁】同学聚会,发现少了些人。 

【73岁】想应该把自己一生记录下来。 

【74岁】记忆力狠狠衰退了一下。 

【75岁】早晨醒得越来越早。 

【76岁】和儿子(女儿)争执,第三代应该如何教育。 

【77岁】不再抱怨了,世界不是我们的。 

【78岁】与朋友谈论最多的是各种疾病。 

【79岁】坚持每天了解新闻,知道别人在讲什么东西。 

【80岁】其实一辈子还是挺满意的。 

【81岁】量身高,发现比年轻时矮了3公分。 

【82岁】孩子越来越多地把我当作要照顾的孩子。 

【83岁】重写一遍遗嘱,只不过是叮嘱继承者一定保管好这些东西。 

【84岁】 “我居然活到了84岁。” 

【85岁】随身带着卡片,上面记着姓名健康状况还有住址和联系电话。 

【86岁】很久远的事都想起来了,但身边发生的事变得越来越模糊了。 

【87岁】有时会想有关尊严的问题。 

【88岁】他们以为我真的什么也不清楚了。 

【89岁】拒绝轮椅,坚持每天出去走几分钟。 

【90岁】对那些说“看不出您90岁”的人报以微笑。 

【91岁】最后一颗牙齿掉了。 

【92岁】接受不做任何事——已经没有人放心让你做任何事情了。 

【93岁】接受轮椅。 

【94岁】孙子(女)用他(她)的第一个月的工资给我买了礼物。 

【95岁】已经不再关心具体的日期了。只是下意识地问“今天是几号?”一天问了10次。 

【96岁】上一次出门是什么时候? 

【97岁】在床上,完成所有活动。像很早很早以前。 

【98岁】又一次几乎触摸到死亡。 

【99岁】等待。 

【100岁】我走了。 

从睁开眼到见到神,转瞬即一生。


 结语:时间总是那么慢却又那么快,蓦然回首,很多事情很多人已经过去,我们来到这个世界,不全是为了金钱,不是为了成为他的奴隶。人生有限,再多的钱买不到你的时间和你的欢乐,别沉迷于此。你是否应该回头,看看自己,看看自己的家人,看看自己的朋友,容颜无法永驻,时间无法停留,生来不带财物,死去也不过三寸之地,生活的美好在于创造美好的记忆,是不是我们该想想,哪些事情想做却一直未做的,或者,哪些想见的人却一直未见的。