Rsync random start script and rsync script

Source: Internet
Author: User
Tags syslog

Rsync random start script and rsync script

Server

 

 1 #!/bin/sh 2 # chkconfig: 2345 21 60 3 # description: Saves and restores system entropy pool for \ 4 #create by xiaohu 5 #2014.06.02 6 #This script is the Rsync service script 7 . /etc/init.d/functions 8 case "$1" in 9   start)10         echo "rsync is starting"11         /usr/local/rsyncd/bin/rsync --daemon --config=/etc/rsyncd.conf12         sleep 213         myport=`netstat -lnt|grep 873|wc -l`14         if [ $myport -eq 2 ]15         then16         action "rsync start"   /bin/true17         else18         action "rsync start"   /bin/false19         fi20         ;;21   stop)22         echo "rsync is stoping"23         myport=`netstat -lnt|grep 873|wc -l`24         if [ $myport -eq 2 ]25         then 26         killall rsync &>/dev/null27         sleep 228         killall rsync &>/dev/null29         sleep 130         fi31         myport=`netstat -lnt|grep 873|wc -l`32         if [ $myport -ne 2 ]33         then34         action "rsync stop"   /bin/true35         else36         action "rsync stop"   /bin/false37         fi38         ;;39   restart)40         if [ `netstat -lnt|grep 873|wc -l` -eq 0 ]41         then42         /usr/local/rsyncd/bin/rsync --daemon --config=/etc/rsyncd.conf43         sleep 244         myport=`netstat -lnt|grep 873|wc -l`45         if [ $myport -eq 2 ]46         then47         action "rsync restart"   /bin/true48         else49         action "rsync restart"   /bin/false50         exit51         fi52         else53         killall rsync &>/dev/null54         sleep 255         killall rsync &>/dev/null56         sleep 157         /usr/local/rsyncd/bin/rsync --daemon --config=/etc/rsyncd.conf58         sleep 259         myport=`netstat -lnt|grep 873|wc -l`60         if [ $myport -eq 2 ]61         then62         action "rsync restart"   /bin/true63         else64         action "rsync restart"   /bin/false65         fi66         fi67         ;;68   status)69         myport=`netstat -lnt|grep 873|wc -l`70         if [ $myport -eq 2 ]71         then72         echo  "rsync is running"73         else74         echo "rsync is stoped"75         fi76         ;;77   *)78         echo $"Usage: $0 {start|stop|status|restart}"79         ;;80 esac
View Code

 

 

Client

 

  1 #! /bin/sh  2   3 ### BEGIN INIT INFO  4 # Provides:          rsyncd  5 # Required-Start:    $remote_fs $syslog  6 # Required-Stop:     $remote_fs $syslog  7 # Should-Start:      $named autofs  8 # Default-Start:     2 3 4 5  9 # Default-Stop:       10 # Short-Description: fast remote file copy program daemon 11 # Description:       rsync is a program that allows files to be copied to and 12 #                    from remote machines in much the same way as rcp. 13 #                    This provides rsyncd daemon functionality. 14 ### END INIT INFO 15  16 set -e 17  18 # /etc/init.d/rsync: start and stop the rsync daemon 19  20 DAEMON=/usr/bin/rsync 21 RSYNC_ENABLE=false 22 RSYNC_OPTS='' 23 RSYNC_DEFAULTS_FILE=/etc/default/rsync 24 RSYNC_CONFIG_FILE=/etc/rsyncd.conf 25 RSYNC_PID_FILE=/var/run/rsync.pid 26 RSYNC_NICE_PARM='' 27 RSYNC_IONICE_PARM='' 28  29 test -x $DAEMON || exit 0 30  31 . /lib/lsb/init-functions 32  33 if [ -s $RSYNC_DEFAULTS_FILE ]; then 34     . $RSYNC_DEFAULTS_FILE 35     case "x$RSYNC_ENABLE" in 36     xtrue|xfalse)    ;; 37     xinetd)        exit 0 38             ;; 39     *)        log_failure_msg "Value of RSYNC_ENABLE in $RSYNC_DEFAULTS_FILE must be either 'true' or 'false';" 40             log_failure_msg "not starting rsync daemon." 41             exit 1 42             ;; 43     esac 44     case "x$RSYNC_NICE" in 45     x[0-9]|x1[0-9])    RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";; 46     x)        ;; 47     *)        log_warning_msg "Value of RSYNC_NICE in $RSYNC_DEFAULTS_FILE must be a value between 0 and 19 (inclusive);" 48             log_warning_msg "ignoring RSYNC_NICE now." 49             ;; 50     esac 51     case "x$RSYNC_IONICE" in 52     x-c[123]*)    RSYNC_IONICE_PARM="$RSYNC_IONICE";; 53     x)        ;; 54     *)        log_warning_msg "Value of RSYNC_IONICE in $RSYNC_DEFAULTS_FILE must be -c1, -c2 or -c3;" 55             log_warning_msg "ignoring RSYNC_IONICE now." 56             ;; 57     esac 58 fi 59  60 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" 61  62 rsync_start() { 63     if [ ! -s "$RSYNC_CONFIG_FILE" ]; then 64         log_failure_msg "missing or empty config file $RSYNC_CONFIG_FILE" 65         log_end_msg 1 66         exit 0 67     fi 68     # See ionice(1) 69     if [ -n "$RSYNC_IONICE_PARM" ] && [ -x /usr/bin/ionice ] && 70         /usr/bin/ionice "$RSYNC_IONICE_PARM" true 2>/dev/null; then 71         /usr/bin/ionice "$RSYNC_IONICE_PARM" -p$$ > /dev/null 2>&1 72     fi 73     if start-stop-daemon --start --quiet --background \ 74         --pidfile $RSYNC_PID_FILE --make-pidfile \ 75         $RSYNC_NICE_PARM --exec $DAEMON \ 76         -- --no-detach --daemon --config "$RSYNC_CONFIG_FILE" $RSYNC_OPTS 77     then 78         rc=0 79         sleep 1 80         if ! kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then 81             log_failure_msg "rsync daemon failed to start" 82             rc=1 83         fi 84     else 85         rc=1 86     fi 87     if [ $rc -eq 0 ]; then 88         log_end_msg 0 89     else 90         log_end_msg 1 91         rm -f $RSYNC_PID_FILE 92     fi 93 } # rsync_start 94  95  96 case "$1" in 97   start) 98     if "$RSYNC_ENABLE"; then 99         log_daemon_msg "Starting rsync daemon" "rsync"100         if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then101         log_progress_msg "apparently already running"102         log_end_msg 0103         exit 0104         fi105             rsync_start106         else107             if [ -s "$RSYNC_CONFIG_FILE" ]; then108                 [ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_FILE, not starting..."109             fi110     fi111     ;;112   stop)113     log_daemon_msg "Stopping rsync daemon" "rsync"114     start-stop-daemon --stop --quiet --oknodo --pidfile $RSYNC_PID_FILE115     log_end_msg $?116     rm -f $RSYNC_PID_FILE117     ;;118 119   reload|force-reload)120     log_warning_msg "Reloading rsync daemon: not needed, as the daemon"121     log_warning_msg "re-reads the config file whenever a client connects."122     ;;123 124   restart)125     set +e126     if $RSYNC_ENABLE; then127         log_daemon_msg "Restarting rsync daemon" "rsync"128         if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then129         start-stop-daemon --stop --quiet --oknodo --pidfile $RSYNC_PID_FILE || true130         sleep 1131         else132         log_warning_msg "rsync daemon not running, attempting to start."133             rm -f $RSYNC_PID_FILE134         fi135             rsync_start136         else137             if [ -s "$RSYNC_CONFIG_FILE" ]; then138                 [ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_FILE, not starting..."139             fi140     fi141     ;;142 143   status)144     status_of_proc -p $RSYNC_PID_FILE "$DAEMON" rsync145     exit $?    # notreached due to set -e146     ;;147   *)148     echo "Usage: /etc/init.d/rsync {start|stop|reload|force-reload|restart|status}"149     exit 1150 esac151 152 exit 0
View Code

 

 

Start rsync automatically

1. Run the script/etc/init. d/


2. Authorization
Chmod + x rsync


3. If the binsh ^ M error is thrown, rewrite the code.
Set unified dos Encoding
(Please refer to the rsync script to throw binsh ^ M bad interpreter document)


4. Add to service
Chkconfig -- add ningx


5. Random start script to drive rsync startup
Chkconfig -- level 2345 rsync on

 

 

 

The following error was found during script execution:
/Bin/sh ^ M: bad interpreter: No file or directory

Error analysis:
Because the operating system is windows, the script I edited in windows may have invisible characters.
The script file is in DOS format, that is, the end of each row is identified by \ n \ r, and its ASCII code is 0x0D, 0x0A.

There are many ways to check whether the file is in DOS or UNIX or MAC format.

Solution:
Vim filename
Run the following command:
: Set ff? # You can see the dos or unix words. If it is in dos format.


Then use
: Set ff = unix # force it to unix format, and then save the disk and exit.
Run the script again.

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.