青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-163  評論-223  文章-30  trackbacks-0
腳本概述
   nginx是一款著名的開源web服務器,為方便升級與恢復,編寫了一個簡單的腳本,因為升級備份了可執行文件和配置文件(后綴名為old),所以可用于恢復。當升級時,若nginx正在運行,則不中斷服務進行平滑升級,否則直接拷貝覆蓋;當恢復時,若nginx正在運行,則不中斷服務進行平滑恢復,否則直接拷貝覆蓋。是否正在運行根據pid來判斷,而pid從pid文件讀取,pid文件則從conf文件提取(默認為/usr/local/nginx/logs/nginx.pid)。對于參數指定的conf文件,會分析它是否存在http {和server {行來檢查有效性。該腳本的用法如下:
   ● 第1參數必須為upgrade或restore,分別表示升級或恢復。
   ● 第2參數是可選的,為nginx可執行文件,默認為/usr/local/nginx/sbin/nginx。
   ● 第3參數是可選的,為nginx配置文件,默認為/usr/local/nginx/conf/nginx.conf。

腳本實現
   在循環讀取配置文件每一行時,首先要忽略空白行和注釋行,對應正則式分別為^$、^[[:blank:]]*#;然后識別http {或server {行,對應正則式分別為^[[:blank:]]*http[[:blank:]]*{[[:blank:]]*、^[[:blank:]]*server[[:blank:]]*{[[:blank:]]*。不管恢復還是升級,當替換nginx可執行文件后,如果nginx正在運行(一定要使用mv替換才能成功),先發送USR2信號(通知nginx創建新的工作進程)并等待老的pid文件出現,再發送QUIT使老的nginx工作進程退出。
  1#! /bin/bash
  2# nginx admin script
  3
  4. extfuncs
  5
  6usage()
  7{
  8  echo "Usage: $(basename "$0") upgrade|restore [executable file] [configure file]"
  9  exit 1
 10}

 11
 12if [ $# -lt 1 ]; then
 13  usage
 14elif [ "$1" != "upgrade" -"$1" != "restore" ]; then
 15  echo "The first parameter must be upgrade or restore" 
 16  exit 1
 17fi
 18
 19do_restore=no
 20"$1" = "restore" ] && do_restore=yes
 21    
 22bin_file=${2:-/usr/local/nginx/sbin/nginx}
 23! check_file_exist "$bin_file" && usage
 24
 25if [ ! -"$bin_file" ]; then
 26  echo "$bin_file: Permission denied"
 27  exit 1
 28fi
 29
 30conf_file=${3:-/usr/local/nginx/conf/nginx.conf}
 31! check_file_exist "$conf_file" && usage
 32
 33re_0="[[:blank:]]"
 34re_1="$re_0*"
 35re_2="^$re_1"
 36re_3="$re_0+.+"
 37re_4="$re_2#"
 38re_http="${re_2}http${re_1}{${re_1}"
 39re_server="${re_2}server${re_1}{${re_1}"
 40re_pid="${re_2}pid$re_3"
 41
 42has_http=
 43has_server=
 44pid_file=
 45
 46while read line
 47do
 48  if (echo $line | grep "^$" > /dev/null|| (echo $line | grep "$re_4" > /dev/null); then
 49      continue
 50  elif (echo $line | grep "$re_http" > /dev/null); then
 51    has_http=yes
 52  elif (echo $line | grep "$re_server" > /dev/null); then
 53    has_server=yes
 54  test -"$pid_file" || pid_file=`echo $line | awk '{if($0~/'"$re_pid"'/) print substr($2,1,index($2,";")-1)}'`    
 55  test -"$pid_file" && break
 56done < "$conf_file"
 57
 58if [ "x$has_http" != "xyes" -"x$has_server" != "xyes" ]; then
 59  echo "$conf_file is not valid nginx configure file"
 60  exit 1
 61fi
 62
 63if [ -"$pid_file" ]; then
 64  pid_file=/usr/local/nginx/logs/nginx.pid
 65elif [ "${pid_file,0,1}" != "/" ]; then
 66  pid_file=/usr/local/nginx/$pid_file
 67fi
 68
 69"x$do_restore" = "xno" ] && ! check_file_exist nginx && exit 1
 70"x$do_restore" = "xyes" ] && ! check_file_exist "${bin_file}.old" && exit 1
 71"x$do_restore" = "xyes" ] && ! check_file_exist "${conf_file}.old" && exit 1
 72    
 73pid=$(get_pid "$pid_file")
 74check_pid $pid
 75ret=$?
 76
 77if [ "$ret" -eq "0" ]; then
 78  if [ "x$do_restore" = "xno" ]; then
 79     mv "$bin_file" "${bin_file}.old"
 80     cp "$conf_file" "${conf_file}.old"
 81  else
 82     mv "$bin_file" "${bin_file}.tmp"
 83  fi
 84  echo -"nginx is running($pid),"
 85else
 86  echo -"nginx is not run,"
 87fi
 88
 89if [ "x$do_restore" = "xno" ]; then
 90    echo "upgrading it"
 91else
 92    echo "restoring it"
 93fi
 94
 95if [ "x$do_restore" = "xno" ]; then    
 96  cp -f nginx $bin_file
 97else
 98  mv "${bin_file}.old" "$bin_file"    
 99  mv "${conf_file}.old" "$conf_file"
100fi
101
102$bin_file ---"$conf_file"
103
104if [ "$ret" -eq "0" ]; then
105  kill -USR2 $pid
106  wait_file "${pid_file}.oldbin" 
107  kill -QUIT `cat "${pid_file}.oldbin"`    
108  [ "x$do_restore" = "xyes" ] && rm -"${bin_file}.tmp"
109fi
110
111if [ "x$do_restore" = "xno" ]; then
112    echo "upgrade nginx finished"
113else
114  echo "restore nginx finished"
115fi

腳本示例
   升級前:nginx正在運行中,由于此時還沒升級,所以沒有old備份文件,如下圖
   

   升級后:運行./ngxadmin upgrade后,如下圖
   
   從上可得,sbin和conf子目錄下分別多出了一個nginx.old和nginx.conf.old。

   恢復后:運行./ngxadmin restore后,如下圖
   
   從上可得,sbin子目錄下沒有了nginx.old,conf子目錄下沒有了nginx.conf.old,nginx可執行文件和配置文件均已恢復為升級前的版本。
posted on 2015-01-19 00:36 春秋十二月 閱讀(2073) 評論(0)  編輯 收藏 引用 所屬分類: System
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99精品久久| 亚洲欧美自拍偷拍| 老巨人导航500精品| 亚洲综合电影| 国产乱码精品一区二区三| 亚洲一区二区三区在线视频| 亚洲欧洲日产国码二区| 欧美激情精品久久久久久大尺度 | 亚洲最新视频在线播放| 欧美日本在线看| 中国亚洲黄色| 亚洲综合激情| 激情自拍一区| 亚洲欧洲精品一区二区三区| 欧美日韩国产系列| 亚洲欧美综合精品久久成人| 欧美影院视频| 亚洲欧洲精品一区二区三区 | 久久在线免费视频| 欧美成人中文| 香蕉久久a毛片| 久久精品亚洲热| 99re6这里只有精品| 一本色道久久| 国内揄拍国内精品久久| 亚洲大黄网站| 国产欧美日韩视频| 欧美3dxxxxhd| 国产精品日韩欧美| 嫩草国产精品入口| 国产精品久久国产三级国电话系列| 欧美在线在线| 欧美激情一二三区| 欧美一区影院| 欧美日韩91| 久久在线播放| 国产精品久久久久久影视| 免费日韩成人| 国产精品一区一区三区| 亚洲国产成人porn| 国产一区二区三区在线播放免费观看| 欧美激情2020午夜免费观看| 国产毛片一区| 亚洲精品国偷自产在线99热| 国内精品一区二区| 宅男噜噜噜66一区二区| 亚洲欧洲在线看| 久久国产一区二区三区| 亚洲小说欧美另类婷婷| 美日韩精品免费观看视频| 欧美一区二区高清在线观看| 欧美日韩国产小视频在线观看| 久久这里只有精品视频首页| 国产伦精品一区二区三区高清| 亚洲欧洲午夜| 最新日韩精品| 久久精品一区蜜桃臀影院| 亚洲欧美日韩综合aⅴ视频| 欧美国产视频一区二区| 麻豆av福利av久久av| 国产一区二区精品久久| 亚洲一区二区在| 亚洲一区二区毛片| 欧美高清自拍一区| 欧美激情中文字幕乱码免费| 一区二区在线看| 久久久精品久久久久| 久久精品久久综合| 国产模特精品视频久久久久| 在线亚洲美日韩| 亚洲色图综合久久| 欧美日韩精品免费看| 亚洲欧洲日韩综合二区| 亚洲精品中文字幕在线| 欧美成人亚洲| 亚洲精品久久久久久久久久久| 亚洲日韩成人| 欧美精品午夜视频| 99视频一区二区三区| 亚洲伊人一本大道中文字幕| 国产精品久久久91| 亚洲性感激情| 久久精品五月婷婷| 激情综合亚洲| 欧美aaa级| 99视频一区| 欧美一区2区三区4区公司二百 | 久久成人资源| 免费国产一区二区| 亚洲精品国产精品国产自| 欧美国产日韩xxxxx| 99re视频这里只有精品| 亚洲欧美国产高清| 国内一区二区三区在线视频| 久久免费国产精品1| 91久久久久久| 亚洲欧美国产毛片在线| 国产亚洲一区二区在线观看 | 夜夜狂射影院欧美极品| 午夜精品久久久| 韩国精品主播一区二区在线观看| 久久久999| 亚洲人成毛片在线播放| 午夜精品视频在线观看| 国内伊人久久久久久网站视频| 欧美77777| 亚洲一区二区在线视频| 卡一卡二国产精品| 国产精品99久久不卡二区| 国产欧美日韩视频一区二区| 麻豆精品在线视频| 一区二区欧美视频| 久久免费视频在线| 一区二区久久久久| 好看的亚洲午夜视频在线| 欧美日韩国产不卡| 久久久久国产精品厨房| 一本色道久久精品| 欧美成人午夜剧场免费观看| 亚洲欧美日韩国产成人精品影院| 在线免费观看欧美| 国产欧美日韩精品一区| 欧美喷水视频| 久久婷婷国产综合国色天香| 亚洲小视频在线观看| 最新日韩精品| 葵司免费一区二区三区四区五区| 亚洲一区二区精品| 亚洲美女中出| 一区二区在线视频观看| 国产精品伊人日日| 欧美日韩一区二区高清| 免费成人黄色| 久久精品一区蜜桃臀影院| 亚洲一区免费视频| 亚洲免费观看高清完整版在线观看| 免费看的黄色欧美网站| 午夜精品网站| 亚洲在线视频网站| 一区二区三区久久精品| 亚洲激情偷拍| 亚洲第一福利视频| 韩日在线一区| 好吊妞**欧美| 国产亚洲一区二区精品| 国产伦精品一区二区三区四区免费| 欧美日韩在线一二三| 欧美激情视频网站| 欧美激情精品久久久| 欧美大秀在线观看| 欧美www在线| 欧美国产综合一区二区| 免费看精品久久片| 欧美高清视频在线播放| 欧美高清影院| 欧美日韩国产成人在线91| 欧美精品九九99久久| 欧美日韩一区二区三区视频| 欧美体内she精视频在线观看| 欧美日韩精品免费观看视一区二区 | 亚洲午夜一级| 亚洲在线一区二区| 亚洲欧美国产精品va在线观看| 亚洲一区视频| 午夜一区二区三视频在线观看| 性欧美超级视频| 久久成人人人人精品欧| 久久综合狠狠| 亚洲国产高潮在线观看| 最新亚洲视频| 亚洲校园激情| 久久成人精品无人区| 奶水喷射视频一区| 欧美日韩国产综合视频在线观看| 欧美亚洲成人精品| 国产在线欧美| 亚洲激情综合| 亚洲欧美中文日韩在线| 老司机aⅴ在线精品导航| 亚洲大片精品永久免费| 洋洋av久久久久久久一区| 亚洲一区尤物| 裸体一区二区| 国产精品vvv| 伊人男人综合视频网| 亚洲美女毛片| 久久精品久久99精品久久| 欧美激情一级片一区二区| 亚洲图片欧美日产| 久久综合激情| 国产精品久久久一区麻豆最新章节 | 另类春色校园亚洲| 欧美日韩在线视频一区二区| 国产一区二区三区在线播放免费观看 | 午夜精彩视频在线观看不卡| 美国十次成人| 国产精品中文字幕欧美| 亚洲精品老司机| 久久精品国产一区二区电影| 亚洲欧洲久久|