服务端


<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>
客户端


<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">124</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>
开机自动启动rsync
1. 扔脚本进去/etc/init.d/
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格式的, 然后存盘退出。
再次运行脚本。
Atas ialah kandungan terperinci rsync随机启动脚本. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

自动化和任务调度在简化软件开发中的重复任务方面发挥着至关重要的作用。想象一下,有一个Python脚本需要每5分钟执行一次,例如从API获取数据、执行数据处理或发送定期更新。如此频繁地手动运行脚本可能非常耗时并且容易出错。这就是任务调度的用武之地。在这篇博文中,我们将探讨如何安排Python脚本每5分钟执行一次,确保它自动运行而无需手动干预。我们将讨论可用于实现此目标的不同方法和库,使您能够有效地自动化任务。使用time.sleep()函数每5分钟运行一次Python脚本的一种简单方法是利用tim

在当今快节奏的数字世界中,能够自动执行计算机任务可以极大地提高生产力和便利性。其中一项任务是关闭计算机,如果手动完成,这可能会非常耗时。值得庆幸的是,Python为我们提供了一套强大的工具来与系统交互并自动执行此类任务。在这篇博文中,我们将探讨如何编写Python脚本来轻松关闭计算机。无论您是想安排自动关机、远程启动关机,还是只是通过避免手动关机来节省时间,此脚本都会派上用场。导入所需的模块在开始编写脚本之前,我们需要导入必要的模块,以便与系统交互并执行关闭命令。在本节中,我们将导入os模块(它

一. 什么是auto-py-to-exeauto-py-to-exe 是一个用于将Python程序打包成可执行文件的图形化工具。本文就是主要介绍如何使用 auto-py-to-exe 完成 python 程序打包。auto-py-to-exe 基于 pyinstaller ,相比于 pyinstaller ,它多了 GUI 界面,用起来更为简单方便二. 安装 auto-py-to-exe首先我们要确保我们的 python 环境要大于或等于 2.7 然后在 cmd 里面输入:pip install

重新启动计算机是一项常见任务,我们经常执行此任务来解决问题、安装更新或应用系统更改。虽然重新启动计算机的方法有很多种,但使用Python脚本可以提供自动化和便利性。在本文中,我们将探讨如何创建一个可以通过简单执行来重新启动计算机的Python脚本。我们将首先讨论重新启动计算机的重要性及其带来的好处。然后,我们将深入研究Python脚本的实现细节,解释所涉及的必要模块和功能。在整篇文章中,我们将提供详细的解释和代码片段,以确保清晰的理解。重新启动计算机的重要性重新启动计算机是基本的故障排除步骤,可

Python 脚本部分实例:企业微信告警、FTP 客户端、SSH 客户端、Saltstack 客户端、vCenter 客户端、获取域名 ssl 证书过期时间、发送今天的天气预报以及未来的天气趋势图;Shell 脚本部分实例:SVN 完整备份、Zabbix 监控用户密码过期、构建本地 YUM 以及上篇文章中有读者的需求(负载高时,查出占用比较高的进程脚本并存储或推送通知);篇幅有些长,还请大家耐心翻到文末,毕竟有彩蛋。Python 脚本部分企业微信告警此脚本通过企业微信应用,进行微信告警,可用于

相比大家都听过自动化生产线、自动化办公等词汇,在没有人工干预的情况下,机器可以自己完成各项任务,这大大提升了工作效率。编程世界里有各种各样的自动化脚本,来完成不同的任务。尤其Python非常适合编写自动化脚本,因为它语法简洁易懂,而且有丰富的第三方工具库。这次我们使用Python来实现几个自动化场景,或许可以用到你的工作中。1、自动化阅读网页新闻这个脚本能够实现从网页中抓取文本,然后自动化语音朗读,当你想听新闻的时候,这是个不错的选择。代码分为两大部分,第一通过爬虫抓取网页文本呢,第二通过阅读工

实验环境前端nginx:ip192.168.6.242,对后端的wordpress网站做反向代理实现复杂均衡后端nginx:ip192.168.6.36,192.168.6.205都部署wordpress,并使用相同的数据库1、在后端的两个wordpress上配置rsync+inotify,两服务器都开启rsync服务,并且通过inotify分别向对方同步数据下面配置192.168.6.205这台服务器vim/etc/rsyncd.confuid=nginxgid=nginxport=873ho

程序员经常使用Bash命令语言创建Shell脚本来自动化手动任务。例如,他们会为各种配置、文件操作、生成构建结果和各种与DevOps相关的活动创建Bash脚本。几乎所有类Unix或基于Unix的操作系统都为用户提供预安装的Bash解释器,因此我们可以使用Bash编写更具可移植性的自动化脚本。正如我们已经知道的那样,Bash脚本编写是指使用Bash命令语言的语法、内置Bash命令和核心操作系统CLI程序(如GNU核心工具)编写一系列命令。标准且老式的Bash脚本通常执行一些命令并在终端上显示纯文本


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
