1.1 rsync部署情况
01:利用rsync daemon模式部署的备份服务器:
02:Pid文件的路径: pid file = /var/run/rsyncd.pid
03:rsync守护进程的启动方式为:rsync --daemon
1.2 脚本内容
#!/bin/bash
#
# Define variables
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
RETVAL=0
Port=873
Pid=/var/run/rsyncd.pid
# Determine the user to execute
if [ "$UID" -ne "$RETVAL" ];then
echo "Must be root to run scripts"
exit 1
fi
# Load local functions
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
# Define functions
start(){
if [ ! -f "$Pid" ];then
/usr/bin/rsync --daemon
RETVAL=$?
if [ $RETVAL -eq 0 ];then
action "Start Rsync service[$Port]" /bin/true
else
action "Start Rsync service[$Port]" /bin/false
fi
else
echo "Rsync service[$Port] is running"
fi
return $RETVAL
}
stop(){
if [ -f "$Pid" ];then
kill -USR2 $(cat $Pid)
rm -f $Pid
RETVAL=$?
if [ $RETVAL -eq 0 ];then
action "Start Rsync service[$Port]" /bin/true
else
action "Start Rsync service[$Port]" /bin/false
fi
else
echo "Rsync Service[$Port] is not running"
fi
return $RETVAL
}
status(){
if [ -f "$Pid" ];then
echo "Rsync service[$Port] is running"
else
echo "Rsync service[$Port] is nog running"
fi
return $RETVAL
}
# Case callf functions
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
stop
start
RETVAL=$?
;;
status)
status
RETVAL=$?
;;
*)
echo "USAGE:$0 {start|stop|restart|status}"
exit 1
esac
# Scripts return values
exit $RETVAL
1.3 执行脚本
[root@backup ~]# /etc/init.d/rsyncd
USAGE:/etc/init.d/rsyncd {start|stop|restart|status}
[root@backup ~]# /etc/init.d/rsyncd status
Rsync service[873] is running
[root@backup ~]# /etc/init.d/rsyncd stop
Start Rsync service[873] [ OK ]
[root@backup ~]# /etc/init.d/rsyncd start
Start Rsync service[873] [ OK ]
[root@backup ~]# /etc/init.d/rsyncd restart
Start Rsync service[873] [ OK ]
Start Rsync service[873] [ OK ]
[root@backup ~]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2396/rsync
tcp 0 0 :::873 :::* LISTEN 2396/rsync