#!/bin/bash
. /etc/init.d/functions
case $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/functions
start(){
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