{"id":959,"date":"2017-09-14T12:42:19","date_gmt":"2017-09-14T12:42:19","guid":{"rendered":"https:\/\/peloo.net\/?p=959"},"modified":"2018-07-01T13:34:53","modified_gmt":"2018-07-01T13:34:53","slug":"%e5%9c%a8shell%e8%84%9a%e6%9c%ac%e4%b8%ad%e4%bd%bf%e7%94%a8%e5%87%bd%e6%95%b0","status":"publish","type":"post","link":"https:\/\/peloo.net\/?p=959","title":{"rendered":"\u81ea\u7528PC\u589e\u91cf\u5907\u4efdShell\u811a\u672c"},"content":{"rendered":"<p>\n\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/peloo.net\/wp-content\/uploads\/2017\/09\/s5_backup_sh.png\" \/>\n<\/p>\n<p>\n\t<span style=\"font-family:verdana,geneva,sans-serif\"><span style=\"font-size: 16px\">\u6700\u8fd1\u81ea\u5df1\u7684PC\u786c\u76d8\u91cc\u4e22\u4e86\u4e2a\u91cd\u8981\u6587\u4ef6\uff0c\u5e94\u8be5\u662f\u6211\u8bef\u5220\u9664\u7684\uff0c\u6240\u4ee5\u63d0\u9192\u5927\u5bb6\u5343\u4e07\u522b\u4e71\u5220\u6587\u4ef6\uff0c\u5c31\u7b97\u5220\u9664\u4e5f\u8981\u5907\u4efd\u4e00\u4fe9\u6708\u3002\u4e8e\u662f\u4e00\u6012\u4e4b\u4e0b\u5199\u4e86\u4e2ashell\u811a\u672c\uff0c\u4e13\u95e8\u7528\u4e8e\u5907\u4efd\u91cd\u8981\u6587\u4ef6\u7684\uff0c\u4e3b\u8981\u662f\u901a\u8fc7rsync\u8fd9\u4e2a\u5f3a\u5927\u7684\u540c\u6b65\u5de5\u5177\u5b9e\u73b0\uff0c\u811a\u672c\u91cc\u4e5f\u4f7f\u7528\u4e86\u51fd\u6570\u521b\u5efa\u548c\u8c03\u7528\uff0c\u5177\u4f53\u5185\u5bb9\u5982\u4e0b\uff0c<\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#!\/bin\/bash<br \/>\n\t&nbsp;<br \/>\n\t#&nbsp; this script is made to automatically backup data of host S5<br \/>\n\t#&nbsp; Author:Attaboy<br \/>\n\t#&nbsp; history:<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2016.06.28<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2016.07.03<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2016.07.14<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.09.02<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.09.04<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.09.14<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.09.17<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.04&nbsp; anotate bak_node_3 function<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.07&nbsp; allow bak_node_3 function<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.11&nbsp; allow bak_node_4 function<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.12&nbsp; add code to start DELL server<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.14&nbsp; add backup node 6 function<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.18&nbsp; modify backup function 6<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.19<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.25&nbsp; add variable end_hour<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.12.30&nbsp; shutdown virtual machine before running backup task<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.12.30&nbsp; modify notification and anotate shutdown machine code<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2018.02.20&nbsp; add function of absolutely synchronizing in some backup nodes.<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2018.02.21&nbsp; modify error code, ban backup_node_1, backup_node_5 and backup_node_6<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">switch=&quot;0&quot;<br \/>\n\tbak_node3_port=&quot;22&quot;<br \/>\n\tbak_node4_port=&quot;22&quot;<br \/>\n\tmnt_dir=&quot;mnt\/2T|mnt\/1T_0|mnt\/3T|dev\/sda|mnt\/1T_1&quot;<br \/>\n\tsrc=&quot;\/mnt\/2T&quot;<br \/>\n\tbak_node_1=&quot;\/mnt\/1T_0&quot; #local disk<br \/>\n\tbak_node_2=&quot;\/mnt\/1T_1&quot; #local disk<br \/>\n\tbak_node_3=&quot;pi@172.17.1.176:\/media\/pi\/Seagate_disk\/backup&quot; #Raspberry pi<br \/>\n\tbak_node_4=&quot;pc@172.17.1.170:\/mnt\/data\/backup&quot; #DELL SERVER<br \/>\n\tbak_node_5=&quot;\/mnt\/3T&quot; #local disk<br \/>\n\tbak_node_6=&quot;\/mnt\/4T\/backup\/2T&quot;<br \/>\n\tbak_node3_ip=&quot;172.17.1.176&quot;<br \/>\n\tbak_node4_ip=&quot;172.17.1.170&quot;<br \/>\n\tremote_boot_ip=&quot;172.17.1.171&quot;<br \/>\n\tremote_boot_user=&quot;pc&quot;<br \/>\n\tremote_boot_pwd=&quot;pc&quot;<br \/>\n\tbak_log=&quot;\/var\/log\/S5-backup.log&quot;<br \/>\n\tend_hour=&quot;07&quot;<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">pre_do(){<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#&nbsp; check the integtity of important paths and remote host alive.<br \/>\n\tif [ ! ${UID} -eq 500 ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &#039;\\n...... Current user is not pc, please switch user using &quot;su&quot; .&#039; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit -1<br \/>\n\telif [ $(df -h 2&gt;\/dev\/null | grep -Eic ${mnt_dir}) -lt 5 ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &#039;\\n...... number of PATHs is NOT FOUR ,script WILL HALT with exit code -2.&#039; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit -2<br \/>\n\telif [ $(ping ${bak_node3_ip} -c 2 | grep -c icmp) -eq 0 ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &quot;\\n...... Host ${bak_node3_ip} is offline&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #exit -3<br \/>\n\telif [ ${switch} -eq 0 ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nc -zv ${bak_node4_ip} ${bak_node4_port}<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ $? -eq 0 ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &quot;skip start DELL server .&quot;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ipmitool -U ${remote_boot_user} -P ${remote_boot_pwd} -H ${remote_boot_ip} power on &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #ping -c 400 127.1 2&gt;\/dev\/null 1&gt;&amp;2<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi<br \/>\n\telif [ ! -d ${bak_node_1} -o ! -d ${bak_node_5} -o ! -d ${src} ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &quot;\\n...... folder ${bak_node_1}, ${bak_node_5} or ${src} is not available, script will halt with exit code -4&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit -4<br \/>\n\t#if log file size is up to 100MB,then empty it.<br \/>\n\telif [ $(du -sm ${bak_log} | awk '{ print $1 }') -gt 100 ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;${bak_log}<br \/>\n\tfi<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\"># shutdown virtual machines<br \/>\n\t#for l in $(vboxmanage list vms | grep -iE &quot;centos601\\+oracle11gr2|c7964-formal|win7-pure-zrhsh&quot; | awk -F&#039;&quot;&#039; &#039;{ print $2 }&#039;)<br \/>\n\t#do<br \/>\n\t#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vboxmanage controlvm&nbsp; ${l} poweroff&nbsp; 2&gt;\/dev\/null<br \/>\n\t#done<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">}<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">backup_node1(){<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#backup from local to local node1(1T_0)<br \/>\n\techo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... local backup node1(1T_0) begin,just wait .\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP $src\/down&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_1}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP $src\/work&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_1}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP $src\/life&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_1}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP $src\/tools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_1}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP $src\/backup&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;${bak_node_1}\/backup<br \/>\n\techo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... local backup node1(1T_0) end.\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">}<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<br \/>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">backup_node2(){<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#backup from local to local node2(1T_1)<br \/>\n\techo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... local backup node2(1T_1) begin,just wait .\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/down&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_2}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/work&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_2}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/life&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_2}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/tools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_2}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/backup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_2}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\techo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... local backup node2(1T_1) end.\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">}<br \/>\n\t&nbsp;<br \/>\n\t#backup local file to Raspberry pi<br \/>\n\tbackup_node3(){<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#backup from local to remote node3(raspberrypi)<br \/>\n\tnc -zv ${bak_node3_ip} ${bak_node3_port}<br \/>\n\tif [ $? -eq 0 -a ${switch} -eq 0 ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... remote backup node3(raspberrypi) begin,just wait .\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rsync -azvP --delete $src\/down -e &quot;ssh -p ${bak_node4_port}&quot; ${bak_node_3} &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... remote backup node3(raspberrypi) end.\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\telse<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &quot;\\n...... Host ${bak_node3_ip} is offline&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\tfi<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">}<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#&nbsp; backup full disk of sumsang SSD and other important folders<br \/>\n\tbackup_node4(){<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#backup from local to remote node4(DELL server S7)<br \/>\n\tnc -zv ${bak_node4_ip} ${bak_node4_port}<br \/>\n\tif [ $? -eq 0 -a ${switch} -eq 0 ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... remote backup node4(DELL server S7) begin,just wait .\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rsync -azvP $src\/down\/CV -e &quot;ssh -p ${bak_node4_port}&quot; ${bak_node_4} &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... remote backup node4(DELL server S7)&nbsp; end.\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\telse<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e &quot;\\n...... Host ${bak_node4_ip} is offline&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\tfi<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">}<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">backup_node5(){<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#backup from local to local node5(3T), full syncronous<br \/>\n\techo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... local backup node2(3T) begin,just wait .\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/down&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_5}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/work&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_5}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/life&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_5}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/tools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_5}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync -azvP --delete $src\/backup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_5}\/backup &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\techo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... local backup node5(3T) end.\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">}<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">backup_node6(){<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#backup from local to local node6(4T\/backup\/2T)<br \/>\n\techo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... local backup node6 begin,just wait .\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<br \/>\n\trsync --delete -azvP ${src}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${bak_node_6}<br \/>\n\techo -e &quot;\\nTime:$(date +%Y%m%d-%H%M%S)...... local backup node6 end.\\n&quot; &gt;&gt;${bak_log} 2&gt;&amp;1<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">}<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">#define what is done when backup is over<br \/>\n\tpost_do(){<br \/>\n\t#DELL server will not shutdown when it is dayTime .<br \/>\n\tif [ $(date '+ %k') -le ${end_hour} ] ; then<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #umount -l $bak_dev&nbsp; &amp;&amp; mount -o ro $bak_dev $bak_node_1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ipmitool -U ${remote_boot_user} -P ${remote_boot_pwd} -H ${remote_boot_ip} power off<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ping -c 2 127.1 1&gt;\/dev\/null 2&gt;&amp;1<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ipmitool -U ${remote_boot_user} -P ${remote_boot_pwd} -H ${remote_boot_ip} power off<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #umount -l $bak_dev &amp;&amp; mount $bak_dev $bak_node_1<br \/>\n\tfi<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">}<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">pre_do<br \/>\n\t#backup_node1<br \/>\n\t#backup_node2<br \/>\n\tbackup_node3&nbsp; #Raspberry pi<br \/>\n\tbackup_node4&nbsp; #DELL server S7<br \/>\n\tbackup_node5<br \/>\n\t#backup_node6<br \/>\n\tpost_do<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"color:#0000CD\"><span style=\"font-family: verdana, geneva, sans-serif\"><span style=\"font-size: 16px\">exit 0<\/span><\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"font-size:16px\"><span style=\"font-family:verdana,geneva,sans-serif\">------------------------------------------------------\u5206\u5272\u7ebf-------------------------------------------------------<\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"font-size:16px\"><span style=\"font-family:verdana,geneva,sans-serif\">\u89e3\u91ca\uff1a<\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"font-size:16px\"><span style=\"font-family:verdana,geneva,sans-serif\">1&nbsp; \u5355\u72ec\u5199\u4e00\u4e2a\u51fd\u6570pre_do\u7528\u4f5c\u6570\u636e\u5907\u4efd\u524d\u7684\u5404\u9879\u68c0\u67e5\uff0c\u4ee5\u4fbf\u4e3b\u5907\u4efd\u51fd\u6570\u7684\u6b63\u5e38\u8fd0\u884c\uff1b<\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"font-size:16px\"><span style=\"font-family:verdana,geneva,sans-serif\">2&nbsp; \u51fd\u6570backup_node1\u548cbackup_node2\u662f\u5907\u4efd\u5230\u672c\u5730\u4e24\u4e2a\u78c1\u76d8\u7684\u5907\u4efd\u76ee\u5f55\uff1b<\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"font-size:16px\"><span style=\"font-family:verdana,geneva,sans-serif\">3&nbsp; backup_node3\u548cbackup_node4\u5206\u522b\u7528\u4f5c\u5907\u4efd\u6570\u636e\u5230\u5c40\u57df\u7f51\u5185\u7684\u6811\u8393\u6d3e\u677f\u5b50\u6302\u8f7d\u7684\u79fb\u52a8\u786c\u76d8\u548cDELL\u670d\u52a1\u5668\uff1b<\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"font-size:16px\"><span style=\"font-family:verdana,geneva,sans-serif\">4&nbsp; Dell\u670d\u52a1\u5668\u53ef\u4ee5\u901a\u8fc7PC\u8fdc\u7a0b\u542f\u52a8\u548c\u5173\u95ed\uff0c\u51fd\u6570post_do\u53ef\u4ee5\u7528\u6765\u5907\u4efd\u6570\u636e\u5b8c\u6210\u540e\u7684\u540e\u7f6e\u8bbe\u7f6e\uff0c\u5305\u62ec\u5173\u95edDell\u670d\u52a1\u5668\u7535\u6e90\u3002<\/span><\/span>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<span style=\"font-size:16px\"><span style=\"font-family:verdana,geneva,sans-serif\">\u5176\u5b9e\u5427\uff0cshell\u8001\u624b\u4f1a\u53d1\u73b0\uff0c\u4ee3\u7801\u8fc7\u4e8e\u5197\u4f59\uff0c\u56e0\u4e3a\u51e0\u4e2abackup_node\u5b9e\u5728\u592a\u50cf\u4e86\uff0c\u6240\u4ee5\u53ef\u4ee5\u8003\u8651\u5c01\u88c5\u4e00\u4e2a\u516c\u5171\u7684backup\u51fd\u6570\uff0c\u5229\u7528\u4f4d\u7f6e\u53c2\u6570\u8fdb\u884c\u4f20\u9012\uff0c<\/span><\/span>\n<\/p>\n<p>\n\t<span style=\"font-size:16px\"><span style=\"font-family:verdana,geneva,sans-serif\">\u5b8c\u6210\u5907\u4efd\u4e3b\u8fc7\u7a0b\u3002 \u89c1\u6587\u7ae0\u5b9e\u4f8b&nbsp; <a href=\"https:\/\/peloo.net\/?p=1339\">https:\/\/peloo.net\/?p=1339<\/a><\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1\u81ea\u5df1\u7684PC\u786c\u76d8\u91cc\u4e22\u4e86\u4e2a\u91cd\u8981\u6587\u4ef6\uff0c\u5e94\u8be5\u662f\u6211\u8bef\u5220\u9664\u7684\uff0c\u6240\u4ee5\u63d0\u9192\u5927\u5bb6\u5343\u4e07\u522b\u4e71\u5220\u6587\u4ef6\uff0c\u5c31\u7b97\u5220\u9664\u4e5f\u8981\u5907\u4efd\u4e00\u4fe9\u6708\u3002\u4e8e\u662f\u4e00\u6012\u4e4b\u4e0b\u5199\u4e86\u4e2ashell\u811a\u672c\uff0c\u4e13\u95e8\u7528\u4e8e\u5907\u4efd\u91cd\u8981\u6587\u4ef6\u7684\uff0c\u4e3b\u8981\u662f\u901a\u8fc7rsync\u8fd9\u4e2a\u5f3a\u5927\u7684\u540c\u6b65\u5de5\u5177\u5b9e\u73b0\uff0c\u811a\u672c\u91cc\u4e5f\u4f7f\u7528\u4e86\u51fd\u6570\u521b\u5efa\u548c\u8c03\u7528\uff0c\u5177\u4f53\u5185\u5bb9\u5982\u4e0b\uff0c #!\/bin\/bash &nbsp; #&nbsp; this script is made to automatically backup data of host S5 #&nbsp; Author:Attaboy #&nbsp; history: #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2016.06.28 #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2016.07.03 #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2016.07.14 #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.09.02 #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.09.04 #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.09.14 #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.09.17 #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.04&nbsp; anotate bak_node_3 function #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.07&nbsp; allow bak_node_3 function #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.11&nbsp; allow bak_node_4 function #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2017.11.12&nbsp; add code to start DELL&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":true,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/peloo.net\/index.php?rest_route=\/wp\/v2\/posts\/959"}],"collection":[{"href":"https:\/\/peloo.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/peloo.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/peloo.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/peloo.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=959"}],"version-history":[{"count":9,"href":"https:\/\/peloo.net\/index.php?rest_route=\/wp\/v2\/posts\/959\/revisions"}],"predecessor-version":[{"id":1345,"href":"https:\/\/peloo.net\/index.php?rest_route=\/wp\/v2\/posts\/959\/revisions\/1345"}],"wp:attachment":[{"href":"https:\/\/peloo.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/peloo.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/peloo.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}