Nginx平滑升级脚本,实现不间断服务

2012-09-26 2,398次浏览 发表评论

轻量级Web服务器Nginx 1.2.6稳定版今天发布了,把博客VPS 上Nginx升级之后记录了下过程,并且写成脚本方便以后升级,也可供有需要的朋友使用。脚本写的很简单,基本都是命令序列,不完善和需要改进的地方希望你能指出。

此脚本只适用于编译安装的Nginx,运行之前需要编辑nginx的编译安装路径和升级后的版本。脚本红色处是需要编辑的地方。

Nginx平滑升级脚本

#!/bin/bash
# Description:  A Shell Script For Nginx update
# Author:       Sunk
# Web Site:     http://1987.name
# Last Update:  2012-12-12

#Edit You Nginx Installation Path
Nginx_Install_URL="/usr/local/webserver/nginx"

#Edit You Upgraded Version
Nginx_Version="1.2.6"

#The following does not need to edit
cd /usr/local/src
$Nginx_Install_URL/sbin/nginx -V &> $$
Configure_Arguments=`cat $$ | awk -F ":" '/^configure/{ print $2 }' | cut -c2-`
Configure_Command="./configure $Configure_Arguments"
wget http://nginx.org/download/nginx-$Nginx_Version.tar.gz
tar zxvf nginx-$Nginx_Version.tar.gz && cd nginx-$Nginx_Version
$Configure_Command && make
mv $Nginx_Install_URL/sbin/nginx $Nginx_Install_URL/sbin/nginx.old; cp objs/nginx $Nginx_Install_URL/sbin/
$Nginx_Install_URL/sbin/nginx -t
if [ $? -eq 0 ];
then
	kill -USR2 `cat $Nginx_Install_URL/nginx.pid`
	kill -QUIT `cat $Nginx_Install_URL/nginx.pid.oldbin`
	echo -e "\033[32;49;1mUpgrade is Successful\033[39;49;0m"
	$Nginx_Install_URL/sbin/nginx -v
else
	echo -e "\\033[37;41;1mUpgrade Fails, check the reason. Before restart nginx will not affect the current site service.\033[37;41;0m"
fi
rm -f /usr/local/src/$$
find /usr/local/src -mtime +1 -name "nginx-*" -exec rm -fr {} \;

脚本注解

重名/sbin/nginx为nginx.old

mv $NginxInstallURL/sbin/nginx $NginxInstallURL/sbin/nginx.old

复制编译后objs目录下的nginx文件到nginx的安装目录sbin/下

cp objs/nginx $NginxInstallURL/sbin/

让nginx把nginx.pid文件修改成nginx.pid.oldbin,随即启动nginx,实现不间断。

kill -USR2 `cat $NginxInstallURL/nginx.pid`
kill -QUIT `cat $NginxInstallURL/nginx.pid.oldbin`

有不足之处请在评论指出。

4条评论

  • ABCD你是急 2012年9月29日 10:20 回复

    轻轻的我走了,
    正如我轻轻的来
    留下一串脚印,
    等你来回踩
    。。。

  • 小清新 2012年9月28日 14:16 回复

    路过,
    打个酱油
    ,,,,,,
    踩两脚,
    留个脚印
    。。。。。。。

  • 魅力卡公主 2012年9月28日 12:49 回复

    总得留点什么??想来想去,就留个脚印吧。。哈哈

    • 奔跑 2012年9月29日 11:02 回复

      😉 你也可以建立自己独立博客。。

您可以在这里写下评论