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

隨筆-162  評論-223  文章-30  trackbacks-0
腳本概述
   一般地,當在目標機器編譯安裝某個服務程序后,為了使服務能開機自啟動和關機自停止,則需要將其添加為系統服務。但不同的Linux系統管理服務的方法不同,如Ubuntu使用update-rc.d命令,而RedHat則使用chkconfig命令。因此為了能自動識別系統的類型,減少人工控制,編寫了一個簡單的autosrv腳本,要求至少1個最多2個參數,特點如下:
   ● 第1個參數只能為install或uninstall,表示安裝或卸載服務。
   ● 第2參數是可選的,表示系統名稱,如果沒有指定,那么會自動識別,若出現提示錯誤,則表示應該要顯式指定系統名稱了。

腳本實現
  1#! /bin/bash
  2# autosrv
  3
  4if [ $# -lt 1 ]; then
  5    echo "Usage: $(basename "$0") install | uninstall [sysname]"
  6    exit
  7elif [ "$1" != "install" -a "$1" != "uninstall" ]; then
  8    echo "The first parameter must be install or uninstall" 
  9    exit
 10fi
 11
 12action=$1
 13sysname=$2
 14srv_path=/etc/init.d/srv_name
 15
 16if [ -z "$sysname" ]; then
 17    sysname=`lsb_release -a | sed -n '2p' | awk '{if($0~/[Uu][Bb][Uu][Nn][Tt][Uu]/) print "ubuntu"; else if($0~/[Dd][Ee][Bb][Ii][Aa][Nn]/) print "debian"; else if($0~/[Rr][Ee][Dd][Hh][Aa][Tt]/) print "redhat"; else if($0~/[Cc][Ee][Nn][Tt][Oo][Ss]/) print "centos"; else print ""}'`
 18    if [ -z "$sysname" ]; then
 19        echo "Unknown system, please manual special it with the second parameter"
 20        exit
 21    fi
 22    echo "Current system is $sysname"
 23fi
 24
 25create_file_ubuntu_debian()
 26{
 27cat << END > $srv_path
 28#! /bin/bash
 29. /lib/lsb/init-functions
 30
 31END
 32cat srv_name.body >> $srv_path
 33}
 34
 35create_file_redhat_centos()
 36{
 37cat << END > $srv_path
 38#! /bin/bash
 39#chkconfig:2345 90 10
 40#description: srv name
 41
 42. /etc/rc.d/init.d/functions
 43
 44END
 45cat srv_name.body >> $srv_path
 46}
 47
 48chmod_file()
 49{
 50    chmod u+x $srv_path
 51}
 52
 53remove_file()
 54{
 55    rm -f $srv_path
 56}
 57
 58install_ubuntu_debian()
 59{
 60    create_file_ubuntu_debian
 61    chmod_file
 62    update-rc.d srv_name defaults 90 10
 63}
 64
 65uninstall_ubuntu_debian()
 66{
 67    update-rc.d -f srv_name remove
 68    remove_file
 69}
 70
 71install_redhat_centos()
 72{
 73    create_file_redhat_centos
 74    chmod_file
 75    chkconfig --add srv_name
 76}
 77
 78uninstall_redhat_centos()
 79{
 80    chkconfig --del srv_name
 81    remove_file
 82}
 83
 84case "$sysname" in
 85    ubuntu|debian)
 86    if [ "$action" = "install" ]; then
 87        install_ubuntu_debian
 88    else
 89        uninstall_ubuntu_debian
 90    fi
 91    ;;
 92
 93    redhat|centos)
 94    if [ "$action" = "install" ]; then
 95        install_redhat_centos
 96    else
 97        uninstall_redhat_centos
 98    fi
 99    ;;
100
101    *)
102    echo "Currently only support ubuntu, debian, redhat and centos system"
103    exit
104    ;;
105esac
   從上可知,自動識別的方法是獲取lsb_release -a返回的文本再使用awk來匹配ubuntu,redhat,debian,centos這幾個子串(忽略大小寫)。要注意的是,返回的文本可能有所不同。

   當系統安裝了LSB模塊時,返回結果如下
   

   沒有安裝時,返回結果如下
   
   無論哪種情況,要提取分析的都是第2行文本,因此使用了sed -n '2p'。srv_name.body是不同系統相同的用于生成最終服務腳本的部分代碼文件,通常包含了start,stop,status,restart幾個函數,只是沒有包含前面的一部分,而這部分則由autosrv腳本來根據不同的系統生成不同的代碼。
posted on 2014-01-03 17:11 春秋十二月 閱讀(1982) 評論(1)  編輯 收藏 引用 所屬分類: System

評論:
# re: shell應用(5): 自動生成并安裝服務腳本 2014-01-03 21:23 | 梁.兄
不錯,看來你linux熟很多了  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美亚洲日本网站| 性刺激综合网| 欧美日韩在线一区二区| 久久久蜜桃一区二区人| 久久久噜噜噜久久| 男女激情久久| 欧美精品1区2区| 欧美激情免费观看| 欧美三区美女| 国产精品欧美久久久久无广告| 国产精品久久久久久久久久尿| 国产精品一区二区三区免费观看 | 亚洲精品日产精品乱码不卡| 亚洲清纯自拍| 亚洲自拍16p| 久久福利资源站| 欧美大片18| 中文在线资源观看网站视频免费不卡 | 中文成人激情娱乐网| 亚洲综合第一| 久久亚裔精品欧美| 国产精品草莓在线免费观看| 国产在线观看91精品一区| 亚洲国产精品一区在线观看不卡| 在线亚洲一区| 欧美aa国产视频| 亚洲少妇最新在线视频| 久久一二三四| 国产欧美日韩在线观看| 日韩午夜免费| 欧美成人在线免费观看| 亚洲色在线视频| 久久综合伊人77777麻豆| 欧美午夜免费影院| 亚洲激情六月丁香| 久久久久久一区| 国产精品99久久久久久久vr| 欧美激情成人在线| 樱花yy私人影院亚洲| 欧美一区日韩一区| 一本色道久久综合亚洲精品高清| 久久一综合视频| 欧美一乱一性一交一视频| 国产一区二区三区奇米久涩 | 亚洲欧美激情一区二区| 欧美国产日韩精品| 好看的av在线不卡观看| 亚洲女爱视频在线| 日韩视频免费在线| 美女视频黄免费的久久| 亚洲免费视频一区二区| 欧美日韩一区二区视频在线| 亚洲精品国产精品国自产在线| 久久精品91| 亚洲欧美日韩在线| 国产女人精品视频| 欧美一级免费视频| 在线综合亚洲欧美在线视频| 欧美日本不卡高清| 亚洲久久一区二区| 亚洲三级电影全部在线观看高清| 久久福利电影| 西西人体一区二区| 国产精品爱久久久久久久| 日韩午夜黄色| 亚洲国产三级| 欧美精品1区2区| 亚洲午夜一区二区| 亚洲午夜精品一区二区三区他趣 | 精品成人一区二区| 可以免费看不卡的av网站| 午夜一区在线| 国内精品免费午夜毛片| 老色批av在线精品| 玖玖玖国产精品| 亚洲乱码精品一二三四区日韩在线| 欧美激情1区2区| 欧美电影免费观看网站| 亚洲国产一区二区三区高清 | 欧美激情bt| 欧美黄色精品| 亚洲香蕉网站| 香港久久久电影| 在线日韩欧美| 999亚洲国产精| 日韩亚洲欧美一区| 国产精品裸体一区二区三区| 久久激情五月婷婷| 欧美成人精品三级在线观看 | 国产一区二区精品久久99| 久久久久久久久久久久久久一区| 久久精品色图| 一本色道久久| 欧美一区二区视频在线观看| 91久久香蕉国产日韩欧美9色| 亚洲精品在线免费| 亚洲欧美日韩中文视频| 性色一区二区| 亚洲精品资源美女情侣酒店| 亚洲视频专区在线| 在线日韩欧美视频| 在线亚洲国产精品网站| 好吊妞**欧美| 99av国产精品欲麻豆| 国产亚洲欧美另类中文| 亚洲日本欧美在线| 国产一区二区高清| 亚洲最新在线| 亚洲人成人99网站| 欧美在线首页| 一区二区三区www| 久久久国产精品一区| 亚洲综合二区| 欧美成熟视频| 老司机一区二区| 国产欧美va欧美va香蕉在| 亚洲欧洲一区二区在线播放| 狠久久av成人天堂| 亚洲午夜精品福利| 宅男精品视频| 欧美精品久久久久久久免费观看| 久久亚洲一区二区三区四区| 国产精品乱子久久久久| 亚洲精品日韩综合观看成人91| 精品96久久久久久中文字幕无| 亚洲综合丁香| 午夜日韩在线观看| 欧美三级视频| 一区二区av在线| 亚洲手机在线| 欧美色图一区二区三区| 日韩天堂在线视频| 一区二区三区|亚洲午夜| 欧美国产先锋| 亚洲激情在线观看| 亚洲另类视频| 欧美日本在线看| 亚洲精品一区二区三区福利| 亚洲最新在线| 国产精品v欧美精品∨日韩| 亚洲精选91| 亚洲一区在线看| 国产精品国产福利国产秒拍 | 99av国产精品欲麻豆| 亚洲视频成人| 国产精品久久久久毛片大屁完整版| 一区二区欧美在线| 亚洲欧美在线免费| 国产一区二区精品| 久久久久九九九九| 欧美激情亚洲| 99精品国产福利在线观看免费| 欧美精品在线观看播放| 99精品视频一区| 亚洲欧美激情视频| 亚洲小视频在线| 欧美一区二区| 激情视频一区二区三区| 免费试看一区| 日韩一本二本av| 久久丁香综合五月国产三级网站| 久久精品一级爱片| 亚洲美女91| 国产精品一卡| 久久精品国产99国产精品| 男女视频一区二区| 99视频有精品| 国产精品―色哟哟| 久久久精品999| 亚洲日本国产| 久久精品日产第一区二区| 亚洲电影在线免费观看| 欧美日韩一区三区四区| 亚洲欧美日韩综合国产aⅴ| 免费不卡在线视频| 亚洲一区三区视频在线观看| 韩国一区二区在线观看| 欧美日韩国产高清| 久久精品国产精品亚洲精品| 亚洲七七久久综合桃花剧情介绍| 欧美与黑人午夜性猛交久久久| 91久久在线观看| 国产视频综合在线| 欧美激情视频在线播放 | 一本大道av伊人久久综合| 久久香蕉国产线看观看网| 在线综合+亚洲+欧美中文字幕| 狠狠爱www人成狠狠爱综合网| 欧美日韩视频在线| 久久综合亚州| 欧美一级网站| av不卡免费看| 亚洲国产一成人久久精品| 久久裸体艺术| 亚洲免费一区二区| 99re6热在线精品视频播放速度| 激情五月婷婷综合| 国产精品资源在线观看| 欧美日韩精品欧美日韩精品| 欧美成人69|