0

0

rsync随机启动脚本

PHP中文网

PHP中文网

发布时间:2017-07-13 18:16:10

|

1623人浏览过

|

来源于php中文网

原创

服务端

 

<span style="color: #008080"> 1</span> #!/bin/<span style="color: #0000ff">sh</span>
<span style="color: #008080"> 2</span> # chkconfig: <span style="color: #800080">2345</span> <span style="color: #800080">21</span> <span style="color: #800080">60</span>
<span style="color: #008080"> 3</span> # description: Saves and restores system entropy pool <span style="color: #0000ff">for</span><span style="color: #000000"> \
</span><span style="color: #008080"> 4</span> <span style="color: #000000">#create by xiaohu
</span><span style="color: #008080"> 5</span> #<span style="color: #800080">2014.06</span>.<span style="color: #800080">02</span>
<span style="color: #008080"> 6</span> <span style="color: #000000">#This script is the Rsync service script
</span><span style="color: #008080"> 7</span> . /etc/init.d/<span style="color: #000000">functions
</span><span style="color: #008080"> 8</span> <span style="color: #0000ff">case</span> <span style="color: #800000">"</span><span style="color: #800000">$1</span><span style="color: #800000">"</span> <span style="color: #0000ff">in</span>
<span style="color: #008080"> 9</span> <span style="color: #000000">  start)
</span><span style="color: #008080">10</span>         <span style="color: #0000ff">echo</span> <span style="color: #800000">"</span><span style="color: #800000">rsync is starting</span><span style="color: #800000">"</span>
<span style="color: #008080">11</span>         /usr/local/rsyncd/bin/rsync --daemon --config=/etc/<span style="color: #000000">rsyncd.conf
</span><span style="color: #008080">12</span>         <span style="color: #0000ff">sleep</span> <span style="color: #800080">2</span>
<span style="color: #008080">13</span>         myport=`netstat -lnt|<span style="color: #0000ff">grep</span> <span style="color: #800080">873</span>|<span style="color: #0000ff">wc</span> -<span style="color: #000000">l`
</span><span style="color: #008080">14</span>         <span style="color: #0000ff">if</span> [ $myport -eq <span style="color: #800080">2</span><span style="color: #000000"> ]
</span><span style="color: #008080">15</span>         <span style="color: #0000ff">then</span>
<span style="color: #008080">16</span>         action <span style="color: #800000">"</span><span style="color: #800000">rsync start</span><span style="color: #800000">"</span>   /bin/<span style="color: #0000ff">true</span>
<span style="color: #008080">17</span>         <span style="color: #0000ff">else</span>
<span style="color: #008080">18</span>         action <span style="color: #800000">"</span><span style="color: #800000">rsync start</span><span style="color: #800000">"</span>   /bin/<span style="color: #0000ff">false</span>
<span style="color: #008080">19</span>         <span style="color: #0000ff">fi</span>
<span style="color: #008080">20</span> <span style="color: #000000">        ;;
</span><span style="color: #008080">21</span> <span style="color: #000000">  stop)
</span><span style="color: #008080">22</span>         <span style="color: #0000ff">echo</span> <span style="color: #800000">"</span><span style="color: #800000">rsync is stoping</span><span style="color: #800000">"</span>
<span style="color: #008080">23</span>         myport=`netstat -lnt|<span style="color: #0000ff">grep</span> <span style="color: #800080">873</span>|<span style="color: #0000ff">wc</span> -<span style="color: #000000">l`
</span><span style="color: #008080">24</span>         <span style="color: #0000ff">if</span> [ $myport -eq <span style="color: #800080">2</span><span style="color: #000000"> ]
</span><span style="color: #008080">25</span>         <span style="color: #0000ff">then</span> 
<span style="color: #008080">26</span>         <span style="color: #0000ff">killall</span> rsync &>/dev/<span style="color: #0000ff">null</span>
<span style="color: #008080">27</span>         <span style="color: #0000ff">sleep</span> <span style="color: #800080">2</span>
<span style="color: #008080">28</span>         <span style="color: #0000ff">killall</span> rsync &>/dev/<span style="color: #0000ff">null</span>
<span style="color: #008080">29</span>         <span style="color: #0000ff">sleep</span> <span style="color: #800080">1</span>
<span style="color: #008080">30</span>         <span style="color: #0000ff">fi</span>
<span style="color: #008080">31</span>         myport=`netstat -lnt|<span style="color: #0000ff">grep</span> <span style="color: #800080">873</span>|<span style="color: #0000ff">wc</span> -<span style="color: #000000">l`
</span><span style="color: #008080">32</span>         <span style="color: #0000ff">if</span> [ $myport -ne <span style="color: #800080">2</span><span style="color: #000000"> ]
</span><span style="color: #008080">33</span>         <span style="color: #0000ff">then</span>
<span style="color: #008080">34</span>         action <span style="color: #800000">"</span><span style="color: #800000">rsync stop</span><span style="color: #800000">"</span>   /bin/<span style="color: #0000ff">true</span>
<span style="color: #008080">35</span>         <span style="color: #0000ff">else</span>
<span style="color: #008080">36</span>         action <span style="color: #800000">"</span><span style="color: #800000">rsync stop</span><span style="color: #800000">"</span>   /bin/<span style="color: #0000ff">false</span>
<span style="color: #008080">37</span>         <span style="color: #0000ff">fi</span>
<span style="color: #008080">38</span> <span style="color: #000000">        ;;
</span><span style="color: #008080">39</span> <span style="color: #000000">  restart)
</span><span style="color: #008080">40</span>         <span style="color: #0000ff">if</span> [ `netstat -lnt|<span style="color: #0000ff">grep</span> <span style="color: #800080">873</span>|<span style="color: #0000ff">wc</span> -l` -eq <span style="color: #800080">0</span><span style="color: #000000"> ]
</span><span style="color: #008080">41</span>         <span style="color: #0000ff">then</span>
<span style="color: #008080">42</span>         /usr/local/rsyncd/bin/rsync --daemon --config=/etc/<span style="color: #000000">rsyncd.conf
</span><span style="color: #008080">43</span>         <span style="color: #0000ff">sleep</span> <span style="color: #800080">2</span>
<span style="color: #008080">44</span>         myport=`netstat -lnt|<span style="color: #0000ff">grep</span> <span style="color: #800080">873</span>|<span style="color: #0000ff">wc</span> -<span style="color: #000000">l`
</span><span style="color: #008080">45</span>         <span style="color: #0000ff">if</span> [ $myport -eq <span style="color: #800080">2</span><span style="color: #000000"> ]
</span><span style="color: #008080">46</span>         <span style="color: #0000ff">then</span>
<span style="color: #008080">47</span>         action <span style="color: #800000">"</span><span style="color: #800000">rsync restart</span><span style="color: #800000">"</span>   /bin/<span style="color: #0000ff">true</span>
<span style="color: #008080">48</span>         <span style="color: #0000ff">else</span>
<span style="color: #008080">49</span>         action <span style="color: #800000">"</span><span style="color: #800000">rsync restart</span><span style="color: #800000">"</span>   /bin/<span style="color: #0000ff">false</span>
<span style="color: #008080">50</span> <span style="color: #000000">        exit
</span><span style="color: #008080">51</span>         <span style="color: #0000ff">fi</span>
<span style="color: #008080">52</span>         <span style="color: #0000ff">else</span>
<span style="color: #008080">53</span>         <span style="color: #0000ff">killall</span> rsync &>/dev/<span style="color: #0000ff">null</span>
<span style="color: #008080">54</span>         <span style="color: #0000ff">sleep</span> <span style="color: #800080">2</span>
<span style="color: #008080">55</span>         <span style="color: #0000ff">killall</span> rsync &>/dev/<span style="color: #0000ff">null</span>
<span style="color: #008080">56</span>         <span style="color: #0000ff">sleep</span> <span style="color: #800080">1</span>
<span style="color: #008080">57</span>         /usr/local/rsyncd/bin/rsync --daemon --config=/etc/<span style="color: #000000">rsyncd.conf
</span><span style="color: #008080">58</span>         <span style="color: #0000ff">sleep</span> <span style="color: #800080">2</span>
<span style="color: #008080">59</span>         myport=`netstat -lnt|<span style="color: #0000ff">grep</span> <span style="color: #800080">873</span>|<span style="color: #0000ff">wc</span> -<span style="color: #000000">l`
</span><span style="color: #008080">60</span>         <span style="color: #0000ff">if</span> [ $myport -eq <span style="color: #800080">2</span><span style="color: #000000"> ]
</span><span style="color: #008080">61</span>         <span style="color: #0000ff">then</span>
<span style="color: #008080">62</span>         action <span style="color: #800000">"</span><span style="color: #800000">rsync restart</span><span style="color: #800000">"</span>   /bin/<span style="color: #0000ff">true</span>
<span style="color: #008080">63</span>         <span style="color: #0000ff">else</span>
<span style="color: #008080">64</span>         action <span style="color: #800000">"</span><span style="color: #800000">rsync restart</span><span style="color: #800000">"</span>   /bin/<span style="color: #0000ff">false</span>
<span style="color: #008080">65</span>         <span style="color: #0000ff">fi</span>
<span style="color: #008080">66</span>         <span style="color: #0000ff">fi</span>
<span style="color: #008080">67</span> <span style="color: #000000">        ;;
</span><span style="color: #008080">68</span> <span style="color: #000000">  status)
</span><span style="color: #008080">69</span>         myport=`netstat -lnt|<span style="color: #0000ff">grep</span> <span style="color: #800080">873</span>|<span style="color: #0000ff">wc</span> -<span style="color: #000000">l`
</span><span style="color: #008080">70</span>         <span style="color: #0000ff">if</span> [ $myport -eq <span style="color: #800080">2</span><span style="color: #000000"> ]
</span><span style="color: #008080">71</span>         <span style="color: #0000ff">then</span>
<span style="color: #008080">72</span>         <span style="color: #0000ff">echo</span>  <span style="color: #800000">"</span><span style="color: #800000">rsync is running</span><span style="color: #800000">"</span>
<span style="color: #008080">73</span>         <span style="color: #0000ff">else</span>
<span style="color: #008080">74</span>         <span style="color: #0000ff">echo</span> <span style="color: #800000">"</span><span style="color: #800000">rsync is stoped</span><span style="color: #800000">"</span>
<span style="color: #008080">75</span>         <span style="color: #0000ff">fi</span>
<span style="color: #008080">76</span> <span style="color: #000000">        ;;
</span><span style="color: #008080">77</span>   *<span style="color: #000000">)
</span><span style="color: #008080">78</span>         <span style="color: #0000ff">echo</span> $<span style="color: #800000">"</span><span style="color: #800000">Usage: $0 {start|stop|status|restart}</span><span style="color: #800000">"</span>
<span style="color: #008080">79</span> <span style="color: #000000">        ;;
</span><span style="color: #008080">80</span> <span style="color: #0000ff">esac</span>
View Code

 

 

客户端

 

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

 

 


开机自动启动rsync

1. 扔脚本进去/etc/init.d/

男袜网源码
男袜网源码

男袜网提供袜子包年分期邮寄服务,客户选择袜子包年套餐服务,系统可以根据客户选择的邮寄周期和袜子数量,为网站主自动显示每天应该发货的订单详情;系统同时提供给客户自主修改订单的功能,客户可以随时随地自主修改订单的邮寄周期而不必另行通知网站主,而网站主也可以随时根据后台显示的当天发货详情安排发货,而不必理会顾客的修改行为。 数据库: 目前只提供MSSQL数据库,请根据文件“数据库脚本.sql”成生相应数

下载


2. 授权
chmod +x rsync


3. 一旦抛出:binsh^M错误就执行编码改写
设置dos统一编码
(请看rsync脚本抛出binsh^M bad interpreter文档)


4. 添加到服务
chkconfig --add ningx


5. 随机启动脚本带动rsync开机启动
chkconfig --level 2345 rsync on

 

 


 

执行脚本时发现如下错误:
/bin/sh^M: bad interpreter: 没有那个文件或目录

错误分析:
因为操作系统是windows,我在windows下编辑的脚本,所以有可能有不可见字符。
脚本文件是DOS格式的, 即每一行的行尾以\n\r来标识, 其ASCII码分别是0x0D, 0x0A.

可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的

解决方法:
vim filename
然后用命令
:set ff? #可以看到dos或unix的字样. 如果的确是dos格式的。


然后用
:set ff=unix #把它强制为unix格式的, 然后存盘退出。
再次运行脚本。

 

相关文章

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

23

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

68

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

162

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

84

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

113

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

29

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

79

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

62

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

51

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 4.1万人学习

Excel 教程
Excel 教程

共162课时 | 20.5万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 3.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号