通过case语句启动rsync服务的案例演变

来源:互联网 发布:程序员 多个显示器 编辑:程序博客网 时间:2024/05/20 14:17
#!/bin/bash. /etc/init.d/functionscase $1 in  start)    rsync   --daemon    a=`ss -antlp|grep 873|sed -n 1p |awk -F "[ :]+" '{print $5}'`    if  [[ $a -eq "873" ]];         then            action "/etc/init.d/rsyncd start"   /bin/true        else            action "/etc/init.d/rsyncd start"   /bin/false    fi;;  stop)    pkill rsync    sleep 1     b=`ss -antlp|grep 873|sed -n 1p |awk -F "[ :]+" '{print $5}'`    if  [[ $b -eq "873" ]];        then            action "/etc/init.d/rsyncd stop"       /bin/false         else                        action "/etc/init.d/rsyncd stop"       /bin/true        fi;;  *)    echo    "age: /etc/init.d/network {start|stop|status|restart|reload|force-reload}";;esac

将脚本放入/etc/init.d中给定执行权限即可用做系统脚本
将脚本放入/bin下可做命令使用

通过函数来实现上述脚本:

#!/bin/bash. /etc/init.d/functionsstart(){    a=`ss -antlp|grep 873|sed -n 1p |awk -F "[ :]+" '{print $5}'`    if [[ $a -eq 0 ]]    then        rsync   --daemon        b=`ss -antlp|grep 873|sed -n 1p |awk -F "[ :]+" '{print $5}'`        if  [[ $b -eq "873" ]];             then                action "/etc/init.d/rsyncd start"   /bin/true            else                action "/etc/init.d/rsyncd start"   /bin/false        fi    else        echo "Rsync is runing"    fi}stop(){    a=`ss -antlp|grep 873|sed -n 1p |awk -F "[ :]+" '{print $5}'`    if [[ $a -ne 0 ]]     then        pkill rsync        sleep 1         b=`ss -antlp|grep 873|sed -n 1p |awk -F "[ :]+" '{print $5}'`        if  [[ $b -eq "873" ]];            then                action "/etc/init.d/rsyncd stop"       /bin/false             else                            action "/etc/init.d/rsyncd stop"       /bin/true        fi    else        echo "Rsync is stoped"    fi}restart(){    stop    start}case $1 in  start)    start    REVIVE=$?;;  stop)    stop    REVIVE=$?;;  restart)    stop    start;;  *)    echo    "age: /etc/init.d/network {start|stop|restart}";;esac
原创粉丝点击