这篇文章,主要是接着上次的redmine部署的,文章主要包含两部分,redmine的启动脚本和监控脚本
redmine启动脚本
#!/bin/bash #redmine Startup script for the redmine server #chkconfig: - 85 15 Prog=redmine Prog_dir=/data/redmine #find the redmine's pid Pid=`ps aux | grep "\<$Prog\>" | pidof ruby` ProgPort=3000 ReturnCode=`ss -tlnp | grep "\<$ProgPort\>" &> /dev/null;echo $?` start() { if [ $ReturnCode -eq 0 ] &> /dev/null;then echo " Redmine is Already Running !!! " else cd $Prog_dir ruby redmine/script/rails server webrick -e production -d &> /dev/null echo -e "Starting redmine ..... \e[32m[ OK ]\e[m" fi } stop() { if [ $ReturnCode -ne 0 ] &> /dev/null;then echo " Redmine is Already Stopped !!!" else kill -9 $Pid echo -e "Stopping redmine ..... \e[32m[ OK ]\e[m" fi } status() { if [ $ReturnCode -eq 0 ] &> /dev/null;then echo " Redmine is Running !!! " else echo " Redmine is Stopped !!! " fi } case "$1" in start) start ;; stop) stop ;; status) status ;; restart) stop start ;; *) echo "Usage: $Prog {start|stop|status|restart}" esac
注意:使用启动脚本时,用户必须是有ruby环境的用户,假设,我是使用dev用户部署的redmine,如果使用root去启动redmine,会启动失败,因为root没有ruby的环境
redmine的监控脚本
#!/bin/bash #this script in order to check the redmine , if it down ,make it start #date : 2015/1/9 #notice : any questions send mail to shangchunhui@ihuilian.com #rvm environment source ~/.bashrc source ~/.bash_profile #change to redmine's directoy RedmineDir=/data/redmine/ cd $RedmineDir [ -d logs ] || mkdir logs #this redmine is listen on 3000 ListenPort=3000 ReturnCode=`ss -tlnp | grep "\<$ListenPort\>" &> /dev/null ; echo $?` #check the redmine and, add message to logs,located in /data/redmine/logs if [ $ReturnCode -eq 0 ];then echo -e "\e[32mtime: `date +%F-%T`\e[m" >> logs/access.log echo -e "\e[35mredmine is running.\e[m" >> logs/access.log else /etc/init.d/redmine restart echo -e "\e[32mtime: `date +%F-%T`\e[m">> logs/error.log echo -e "\e[31mredmine is down to running.\e[m" >> logs/error.log fi #now check the log file size,delete the file which is larger then 100MB cd ${RemineDir}logs for file in access.log error.log do Size=`ls -l $file | awk -F" " '{print $5}'` if (( $Size >= 102400 ));then > $file fi done
将监控脚本加入到任务计划中去
dev@mon1:~$ crontab -e */10 * * * * /bin/bash /home/dev/scripts/redmine.sh &> /dev/null
转载于:https://blog.51cto.com/cshang/1601134