<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # **case語法案例** ## **制作nginx啟停腳本** ### **1.條件:** 啟動服務命令/application/nginx/sbin/nginx 停止服務命令/application/nginx/sbin/nginx -s stop 實現/etc/init.d/nginxd {start|stop|restart},并可chkconfig開機自起 ### **2.思路:** 1)nginx啟動成功會有一個PID文件,所以根據判斷該文件是否存在來確定nginx是開啟還是關閉狀態 2)通過腳本傳入參數start或stop,通過case語句取值判斷 3)為了專業,調用系統函數庫的action函數 4)對函數及命令允許的返回值進行處理,是腳本看起來更專業、規范 5)通過chkconfig來管理nginx腳本,實現開機自啟動 ### **3.腳本** * `cat /etc/init.d/nginxd` ```shell #!/bin/sh # chkconfig: 2345 40 98 # description: Start/Stop Nginx server path=/application/nginx/sbin pid=/application/nginx/logs/nginx.pid RETVAL=0 . /etc/init.d/functions start(){ if [ ! -f $pid ];then $path/nginx RETVAL=$? if [ $RETVAL -eq 0 ];then action "nginx is started" /bin/true return $RETVAL else action "nginx is started" /bin/false return $RETVAL fi else echo "nginx is running" return 0 fi } stop(){ if [ -f $pid ];then $path/nginx -s stop RETVAL=$? if [ $RETVAL -eq 0 ];then action "nginx is stopped" /bin/true return $RETVAL else action "nginx is stopped" /bin/false return $RETVAL fi else echo "nginx is no running" return $RETVAL fi } case "$1" in start) start RETVAL=$? ;; stop) stop RETVAL=$? ;; restart) stop sleep 1 start RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|reload}" exit 1 esac exit $RETVAL ``` `chomod +x /etc/init.d/nginxd` * 參考腳本 linux系統內部有很多值得學習的參考的腳本,空了請研究如下腳本 * /etc/init.d/rpcbind * /etc/init.d/functions * /etc/rc.d/rc.sysinit ## **添加刪除openvppn用戶的腳本** ### **1.實現要求** **1) 命令用法:** 實現通過傳參的方式往/etc/openvpn_authfile.conf里添加用戶 `USAGE: sh adduser {-add|-del|-search} username` **2) 傳參要求:** -add 表示添加后面接的用戶名 -del 表示刪除后面接的用戶名 -search 表示查找后面接的用戶名 **3) 細節要求** 如果用戶存在則不能添加,不存在則不能刪除,查找結果要給用戶明確提示 /etc/openvpn_authfile.conf不能被所有外部用戶直接刪除及修改 ### **2.具體腳本** * cat /server/scripts/b8.sh ```shell #!/bin/bash . /etc/init.d/functions FILE_PATH=/etc/openvpn_authfile.conf [ -f $filepath ] || touch $filepath usage(){ echo "usage:`basename $0` {-add|-del|-search} username" } if [ $UID -ne 0 ] then echo "you are not root,must use root" exit 1 fi if [ $# -ne 2 ] then usage exit 2 fi case "$1" in -add|-a) shift #位置參數左移,$2替換$1 if grep "^$1$" ${FILE_PATH} >/dev/null 2>&1 then action $"vpnuser,$1 is exist" /bin/false exit else chattr -i ${FILE_PATH} /bin/cp ${FILE_PATH} ${FILE_PATH}.$(date +%F%T) echo "$1" >>${FILE_PATH} [ $? -eq 0 ] && action $"add $1" /bin/true chattr +i ${FILE_PATH} fi ;; -d|-del) shift if [ `grep "\b$1\b" ${FILE_PATH}|wc -l` -lt 1 ] then action $"vpnuser,$1 is not exist" /bin/false exit else chattr -i ${FILE_PATH} /bin/cp ${FILE_PATH} ${FILE_PATH}.$(date +%F%T) sed -i "/^${1}$/d" ${FILE_PATH} [ $? -eq 0 ] && action $"DEL $1" /bin/true chattr +i ${FILE_PATH} exit fi ;; -s|-search) shift if [ `grep -w "$1" ${FILE_PATH}|wc -l` -lt 1 ] then echo $"vpnuser,$1 is no exist." exit else echo $"vpnuser,$1 is exist." exit fi ;; *) usege exit ;; esac ``` > 注意本例中用到的grep三種精確過濾方法 grep -w "oldboy" /file grep "\bodlboy\b" /file grep "^oldboy$" /file
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看