Write a shell script to start and stop the rsync service

foreword

         Use the query service port of linux to judge the start, stop and update of writing condition trigger service


1. Shell

        Shell is a program written in C language, which is a bridge for users to use Linux. Shell is both a command language and a programming language. Shell refers to an application program that provides an interface through which users access the services of the operating system kernel. Ken Thompson's sh is the first Unix shell, and Windows Explorer is a typical graphical interface shell.

2. Write rsync service start and stop scripts

  • Check the service startup command according to /usr/lib/systemd/system/rsyncd.service
[root@controller init.d]# cat /usr/lib/systemd/system/rsyncd.service
[Unit]
Description=fast remote file copy program daemon
ConditionPathExists=/etc/rsyncd.conf

[Service]
EnvironmentFile=/etc/sysconfig/rsyncd
ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS"  #启动方法

Use the netstat -tunlp |grep rsync |wc -l command to check whether the service is enabled, which is convenient for conditional judgment in the script

[root@controller init.d]# cat rsync 
#!/bin/bash
status=`netstat -tunlp |grep rsync |wc -l`

if [ "$1" = "start" ]
  then
    /usr/bin/rsync --daemon
  if [ "$status" -lt 1 ]
    then 
      sleep 2
      echo "Rsync started !!"
  else
    echo "Rsync already Started!"
  fi
elif [ "$1" = "stop" ]
  then 
    if [ "$status" -gt 0 ]
      then
        killall rsync
        sleep 2
        echo "Rsync stoped !!"
    else
      echo "Get something wrong,please check the status"
    fi
elif [ "$1" = "restart" ]
  then
    killall rsync
    echo "Rsync stopping!!"
    sleep 2
    echo "Rsync stoped !!"
    if [ "$status" -lt 1 ]
      then
        /usr/bin/rsync --daemon
        echo "Rsync starting!!"
    else
      echo "Rsync already Started!"
    fi
    /usr/bin/rsync --daemon
else
  echo "Usage ./rsync {start|stop|restart}"
fi

3. Run the test

[root@controller init.d]# ./rsync.sh 
Usage ./rsync {start|stop|restart}
[root@controller init.d]# netstat -ntpl |grep rsync
[root@controller init.d]# ./rsync.sh start
Rsync started !!
[root@controller init.d]# netstat -ntpl |grep rsync
tcp        0      0 127.0.0.1:873           0.0.0.0:*               LISTEN      8099/rsync          
[root@controller init.d]# ./rsync.sh stop
Rsync stoped !!
[root@controller init.d]# netstat -ntpl |grep rsync
[root@controller init.d]# ./rsync.sh restart
Rsync stopping!!
Rsync stoped !!
Rsync starting!!
[root@controller init.d]# netstat -ntpl |grep rsync
tcp        0      0 127.0.0.1:873           0.0.0.0:*               LISTEN      8161/rsync   

Guess you like

Origin blog.csdn.net/TttRark/article/details/131177430