{"id":225,"date":"2012-09-13T11:00:16","date_gmt":"2012-09-13T08:00:16","guid":{"rendered":"http:\/\/hgs.name\/?p=225"},"modified":"2013-01-23T12:51:30","modified_gmt":"2013-01-23T09:51:30","slug":"script-%d0%b7%d0%b0-%d0%b0%d1%80%d1%85%d0%b8%d0%b2%d0%b8%d1%80%d0%b0%d0%bd%d0%b5","status":"publish","type":"post","link":"https:\/\/hgs.name\/?p=225","title":{"rendered":"Script \u0437\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435"},"content":{"rendered":"<p>\u0422\u043e\u0432\u0430 \u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043d\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440. \u0421\u043a\u0440\u0438\u043f\u0442\u0430 \u0435 \u043f\u0438\u0441\u0430\u043d \u043d\u0430 bash \u0438 \u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0435\u043d \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u0438 \u0441 \u0446\u0435\u043b \u043f\u043e \u0433\u043e\u043b\u044f\u043c\u0430 \u0433\u044a\u0432\u043a\u0430\u0432\u043e\u0441\u0442.<\/p>\n<p>\u041f\u043e \u0434\u043e\u043b\u0443 \u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u043e\u0434 Linux, \u043e\u0441\u0432\u0435\u043d \u043d\u0435\u0433\u043e \u0438\u043c\u0430 \u0438 \u043c\u0430\u043b\u044a\u043a \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434 Windows.<\/p>\n<p>[code lang=&#8220;bash&#8220;]<\/p>\n<p>#!\/bin\/bash<br \/>\n####################################################################<br \/>\nfdrv=&#8220;\/mnt\/f_drive&#8220;<br \/>\n# Home folder on remote server to user ext_backup<br \/>\nbdd=&#8220;\/home\/ext_backup\/Backup_Dir_`date +%d%m%Y`\/&#8220;<br \/>\ncounter=0<br \/>\nusers_doc_file=&#8220;Users.rar&#8220;<br \/>\n#<br \/>\n# Path to failDB<br \/>\nsource_users_doc=&#8220;$fdrv\/$users_doc_file&#8220;<br \/>\n#####################################################################<br \/>\necho<br \/>\necho &#8222;Begin time is `date +%H:%M&#8220; &#8211; &#8222;%d.%m.%y`&#8220;<br \/>\necho<\/p>\n<p>check_server () {<br \/>\necho<br \/>\nif [ &#8222;$counter&#8220; -gt 5 ] ; then<br \/>\necho<br \/>\necho &#8222;Backup server is OFFLINE&#8220;<br \/>\necho<br \/>\necho &#8222;Edn time is `date +%H:%M&#8220; &#8211; &#8222;%d.%m.%y`&#8220;<br \/>\necho<br \/>\nexit 0<br \/>\nelse<br \/>\nopen_port=`nmap XXX.XXX.XXX.XXX -p 22 | grep &#8222;22&#8220; | awk &#8216;{print $2}&#8217;`<br \/>\nif [ &#8222;$open_port&#8220; = &#8222;open&#8220; ] ; then<br \/>\necho &#8222;Remote Server is ONLINE&#8220;<br \/>\necho<br \/>\nmountf<br \/>\nelse<br \/>\necho<br \/>\necho &#8222;No signal to the backup server, waiting 60 seconds&#8220;<br \/>\necho<br \/>\nsleep 10<br \/>\ncounter=$(( $counter + 1 ))<br \/>\ncheck_server<br \/>\nfi<br \/>\nfi<br \/>\n}<\/p>\n<p># mount \/shared_server drive F to $fdrv<br \/>\nmountf () {<br \/>\necho &#8222;Mount drive F on shared_server to $fdrv&#8220;<br \/>\nmount -t smbfs -o username=administrator or user admin access,password=password \/\/IP_win_serv\/f$\/ $fdrv<br \/>\nif [ $? -eq 0 ]; then<br \/>\necho &#8222;Drive F on shared_server mount to $fdrv&#8220;<br \/>\necho<br \/>\nelse<br \/>\necho &#8220; ! Drive F on shared_server NOT mount to $fdrv&#8220;<br \/>\nexit<br \/>\nfi<br \/>\n}<\/p>\n<p>check_user_doc_ok () {<br \/>\ncd $fdrv<br \/>\necho &#8222;Change Directory to $fdrv&#8220;<br \/>\nif [ &#8222;$counter&#8220; -gt 5 ] ; then<br \/>\necho &#8220; ! Number of attempts &#8211; $counter&#8220;<br \/>\necho &#8220; ! File USER_DOC.txt not found.&#8220;<br \/>\necho &#8220; ! File $users_doc_file is not copied.&#8220;<br \/>\ntouch $source_users_doc<br \/>\necho &#8220; ! Create zero $pmsdb_file&#8220;<br \/>\necho<br \/>\ncheck_size<br \/>\nelse<br \/>\nif [ -e &#8222;USER_DOC.txt&#8220; ]; then<br \/>\necho &#8222;File USER_DOC.txt exist and remove&#8220;<br \/>\nrm USER_DOC.txt<br \/>\nelse<br \/>\necho &#8222;File USER_DOC.txt does not exist, wait 10 minutes, time is `date +%H:%M:%S`&#8220;<br \/>\necho &#8222;Check the file number &#8211; $counter&#8220;<br \/>\necho<br \/>\nsleep 600<br \/>\ncounter=$(( $counter + 1 ))<br \/>\ncheck_user_doc_ok<br \/>\nfi<br \/>\nfi<br \/>\n}<\/p>\n<p>check_size () {<br \/>\necho<br \/>\necho &#8222;Chek free space on remote server&#8220;<br \/>\nsize_users_doc=`du &#8222;$source_users_doc&#8220; |awk &#8216;{print $1}&#8217;`<br \/>\nsize_files=$(($size_users_doc))<br \/>\nsize_disk=` ssh -p 22 ext_backup@XXX.XXX.XXX.XXX df -a | grep -n 2 -m 1 | awk &#8216;{ print $4 }&#8217;`<br \/>\necho<br \/>\necho &#8222;Size of backup disk is `ssh -p 22 ext_backup@XXX.XXX.XXX.XXX df -ah | grep -n 2 -m 1 | awk &#8216;{ print $2 }&#8217;`&#8220;<br \/>\necho &#8222;Used space of backup disk is `ssh -p 22 ext_backup@XXX.XXX.XXX.XXX df -ah | grep -n 2 -m 1 | awk &#8216;{ print $3 }&#8217;`&#8220;<br \/>\necho &#8222;Free space of backup disk is `ssh -p 22 ext_backup@XXX.XXX.XXX.XXX df -ah | grep -n 2 -m 1 | awk &#8216;{ print $4 }&#8217;`&#8220;<br \/>\necho<br \/>\necho &#8222;Size of backup files is $size_files &#8220;<br \/>\necho<br \/>\nif [ &#8222;$size_disk&#8220; -gt &#8222;$size_files&#8220; ] ; then<br \/>\ncopy_files<br \/>\numountf<br \/>\nelse<br \/>\nremove_files<br \/>\nfi<br \/>\n}<\/p>\n<p>copy_files() {<br \/>\necho &#8222;Create directory $bdd&#8220;<br \/>\nssh -p 22 ext_backup@XXX.XXX.XXX.XXX mkdir $bdd<br \/>\necho &#8222;Start copy $users_doc_file &#8220;<br \/>\nscp -P 22 $source_users_doc ext_backup@XXX.XXX.XXX.XXX:$bdd<br \/>\necho &#8222;Checking the copied file $users_doc_file&#8220;<br \/>\nremotMD5=`md5sum &#8222;$source_users_doc&#8220; |awk &#8216;{print $1}&#8217;`<br \/>\nlocalMD5=`ssh -p 22 ext_backup@XXX.XXX.XXX.XXX md5sum &#8222;$bdd\/$users_doc_file&#8220; |awk &#8216;{print $1}&#8217;`<br \/>\necho &#8222;$users_doc_file was copied&#8220;<br \/>\nif [ &#8222;$remotMD5&#8220; = &#8222;$localMD5&#8220; ] ; then<br \/>\necho &#8222;Checksum file $users_doc_file is successfully verified&#8220;<br \/>\nrm $source_users_doc<br \/>\nelse<br \/>\necho &#8220; ! Checksum file $users_doc_file is NOT successfully verified&#8220;<br \/>\nfi<br \/>\n}<\/p>\n<p>remove_files () {<br \/>\nDA7=`date &#8211;date=&#8217;7 days ago&#8217; +%d%m%Y`<br \/>\nbdd_minus_seven_dey=&#8220;Backup_Dir_$DA7&#8243;<br \/>\nremote_bdd=`ssh -p 22 ext_backup@XXX.XXX.XXX.XXX ls | grep &#8222;$DA7&#8243;`<br \/>\n#DA14=`date &#8211;date=&#8217;14 days ago&#8217; +%Y%m%d`<br \/>\n#DA21=`date &#8211;date=&#8217;21 days ago&#8217; +%Y%m%d`<br \/>\n#DA28=`date &#8211;date=&#8217;28 days ago&#8217; +%Y%m%d`<br \/>\nif [ &#8222;$bdd_minus_seven_dey&#8220; = &#8222;$remote_bdd&#8220; ]; then<br \/>\necho &#8222;Delete old backups of directory $bdd_minus_seven_dey &#8220;<br \/>\necho<br \/>\nssh -p 22 ext_backup@XXX.XXX.XXX.XXX rm -rf $bdd_minus_seven_dey<br \/>\ncheck_size<br \/>\nelse<br \/>\necho &#8222;$bdd_minus_seven_dey directory does not exist! &#8220;<br \/>\necho &#8220; Size of backup files is $size_files &#8220;<br \/>\necho &#8220; No exist disk space ! Free disk space is `ssh -p 22 ext_backup@XXX.XXX.XXX.XXX df -ah | grep -n 2 -m 1 | awk &#8216;{ print $4 }&#8217;`&#8220;<br \/>\necho<br \/>\numountf<br \/>\nfi<br \/>\n}<\/p>\n<p>umountf () {<br \/>\nsleep 60<br \/>\ncd \/<br \/>\numount $fdrv<br \/>\nfdrive=`df -a | grep &#8222;\/\/IP_win_serv\/f$\/&#8220; -m 1 | awk &#8216;{ print $6 }&#8217;`<br \/>\nif [ &#8222;$fdrive&#8220; = &#8222;\/mnt\/f_drive&#8220; ]; then<br \/>\necho &#8222;Unmount the filesystem $fdrv&#8220;<br \/>\numountf<br \/>\nelse<br \/>\necho &#8222;Filesystem $fdrv was unmounted&#8220;<br \/>\necho<br \/>\necho &#8222;End time is `date +%H:%M&#8220; &#8211; &#8222;%d.%m.%y`&#8220;<br \/>\necho<br \/>\nexit<br \/>\nfi<br \/>\n}<\/p>\n<p># Check the server is online<br \/>\ncheck_server<\/p>\n<p># Check the file Users_DOC.rar has been archived<br \/>\ncheck_user_doc_ok<\/p>\n<p># Check for free space and copy backups<br \/>\ncheck_size<\/p>\n<p># umount shared drive F<br \/>\numountf<\/p>\n<p>[\/code]<\/p>\n<p>\u0421\u043b\u0435\u0434\u0432\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u043e\u0434 Windows \u043f\u043e\u0434 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043d\u0430 .bat \u0444\u0430\u0439\u043b. \u0418\u0434\u0435\u044f\u0442\u0430 \u0435 \u0434\u0430 \u043d\u0435 \u043a\u0430\u0440\u0430 linux \u0434\u0430 \u0447\u0435\u0442\u0435 \u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043d\u0430 \u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u0435\u0437\u0438\u043a \u043f\u043e\u0434 Windows. \u0421\u043b\u0435\u0434 \u0440\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u0435 \u0433\u043e\u043b\u044f\u043c\u0430 \u0431\u043e\u0437\u0430.<\/p>\n<p>backup_USER_DOC.bat<\/p>\n<p>[code lang=&#8220;bash&#8220;]<\/p>\n<p>@echo on<br \/>\nc:<br \/>\ncd c:\\Program Files\\WinRAR\\<br \/>\nset year=%date:~6,4%<br \/>\nset yr=%date:~8,2%<br \/>\nset month=%date:~3,2%<br \/>\nset day=%date:~0,2%<br \/>\nrar.exe a -m1 -hp[%day%%month%%yr%] -ilog[Users_[%day%%month%%yr%].log] F:\\Users.rar F:\\Users<br \/>\necho &gt; F:\\USER_DOC.txt<\/p>\n<p>[\/code]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0422\u043e\u0432\u0430 \u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043d\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440. \u0421\u043a\u0440\u0438\u043f\u0442\u0430 \u0435 \u043f\u0438\u0441\u0430\u043d \u043d\u0430 bash \u0438 \u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0435\u043d \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u0438 \u0441 \u0446\u0435\u043b \u043f\u043e \u0433\u043e\u043b\u044f\u043c\u0430 \u0433\u044a\u0432\u043a\u0430\u0432\u043e\u0441\u0442. \u041f\u043e \u0434\u043e\u043b\u0443 \u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u043e\u0434 Linux, \u043e\u0441\u0432\u0435\u043d \u043d\u0435\u0433\u043e \u0438\u043c\u0430 \u0438 \u043c\u0430\u043b\u044a\u043a \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434 Windows. [code lang=&#8220;bash&#8220;] #!\/bin\/bash #################################################################### fdrv=&#8220;\/mnt\/f_drive&#8220; # Home folder on remote server to user ext_backup [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[11],"tags":[],"class_list":["post-225","post","type-post","status-publish","format-standard","hentry","category-11"],"_links":{"self":[{"href":"https:\/\/hgs.name\/index.php?rest_route=\/wp\/v2\/posts\/225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hgs.name\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hgs.name\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hgs.name\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hgs.name\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=225"}],"version-history":[{"count":16,"href":"https:\/\/hgs.name\/index.php?rest_route=\/wp\/v2\/posts\/225\/revisions"}],"predecessor-version":[{"id":241,"href":"https:\/\/hgs.name\/index.php?rest_route=\/wp\/v2\/posts\/225\/revisions\/241"}],"wp:attachment":[{"href":"https:\/\/hgs.name\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgs.name\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgs.name\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}