Shell脚本范例(十六)——rsync服务启动脚本

本文分享常用的一些Shell脚本的例子,这是第十六篇——编写rsync服务启动脚本。

要求:写出网络服务独立进程模式下rsync的系统启动脚本,例如:/etc/init.d/rsyncd {start|stop|restart}。

  1. 要使用系统函数库技巧;
  2. 要用函数,不能将一堆代码混在一起;
  3. 可被chkconfig管理。

参考:

#!/bin/bash
# chkconfig: 2345 20 80
#Author: Oliver King
#Blog: http://www.oliver.ren

if [ $# -ne 1 ]
then
    echo "usage:$0 {start|stop|restart}"
    exit 1
fi

if [ "$1" = "start" ]
then
    rsync --daemon
    sleep 2
    if [ `netstat -lntup|grep rsync|wc -l` -ge 1 ]
    then
        echo "rsync is started."
        exit 0
    fi
elif [ "$1" = "stop" ]
then
    killall rsync &> /dev/null
    sleep 2
    if [ `netstat -lntup|grep rsync|wc -l` -eq 0 ]
    then
        echo "rsyncd is stopped."
        exit 0
    fi
elif [ "$1" = "restart" ]
then
    killall rsync
    sleep 1
    killpro=`netstat -lntup|grep rsync|wc -l`
    rsync --daemon
    sleep 1
    startpro=`netstat -lntup|grep rsync|wc -l`
    if [ $killpro -eq 0 -a $startpro -ge 1 ]
    then
        echo "rsync is restarted."
        exit 0
    fi
else
    echo "usage:$0 {start|stop|restart}"
    exit 1
fi

标签: none