{"id":371,"date":"2013-02-08T12:46:02","date_gmt":"2013-02-08T09:46:02","guid":{"rendered":"http:\/\/hgs.name\/?p=371"},"modified":"2013-06-21T11:53:17","modified_gmt":"2013-06-21T08:53:17","slug":"swatch","status":"publish","type":"post","link":"https:\/\/hgs.name\/?p=371","title":{"rendered":"Swatch \u0438 \u0434\u0440\u0443\u0433\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f"},"content":{"rendered":"<p style=\"text-align: justify;\">Swatch e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 Perl, \u043a\u043e\u044f\u0442\u043e \u0438\u043c\u0430 \u0437\u0430 \u0446\u0435\u043b \u0434\u0430 \u0441\u043b\u0435\u0434\u0438 \u0437\u0430\u043f\u0438\u0441\u0438\u0442\u0435 \u0432 .log \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0438 \u0434\u0430 \u0440\u0435\u0430\u0433\u0438\u0440\u0430 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438 \u0437\u0430\u043f\u0438\u0441\u0438.<\/p>\n<p style=\"text-align: justify;\">\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e swatch \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u043f\u043e \u0441\u043b\u0435\u0434\u043d\u0438\u044f \u043d\u0430\u0447\u0438\u043d:<\/p>\n<p style=\"text-align: justify;\"><strong>\/usr\/bin\/swatch &#8211;config-file=\/etc\/swatch\/swatch.conf &#8211;tail-file=\/var\/log\/syslog &#8211;background<\/strong> \u0438 \u043e\u0449\u0435 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0438. \u041e\u0442\u0434\u0435\u043b\u043d\u043e \u0438\u043c\u0430 \u0438 \u0434\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 <strong>swatch.conf<\/strong>. \u041a\u043e\u0435\u0442\u043e \u043f\u0440\u0435\u0434\u0438\u0437\u0432\u0438\u043a\u0430 \u0432 \u043c\u0435\u043d \u043e\u0433\u0440\u043e\u043c\u043d\u043e \u0447\u0443\u0432\u0441\u0442\u0432\u043e \u0437\u0430 \u043c\u044a\u0440\u0437\u0435\u043b \u0438 \u0432\u044a\u0432 \u0432\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u043d\u0430 \u043a\u043e\u0435\u0442\u043e \u043f\u0440\u043e\u043c\u0435\u043d\u0438\u0445 \u043c\u0430\u043b\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430.<\/p>\n<p style=\"text-align: justify;\">\u0418\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f \u043d\u0430 swatch \u043f\u043e\u0434 Debian:<\/p>\n<p>[code lang=&#8220;bash&#8220;]<br \/>\n$ aptitude install swatch<br \/>\n[\/code]<\/p>\n<p>\u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0438 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043c\u043e\u0434\u0443\u043b\u0438:<\/p>\n<p>[code lang=&#8220;bash&#8220;]<br \/>\nTime::HiRes<br \/>\nDate::Calc<br \/>\nDate::Format<br \/>\nFile::Tail<br \/>\n[\/code]<\/p>\n<p>\u0421 \u043c\u043e\u0434\u0443\u043b\u0438\u0442\u0435 \u043d\u0430 Perl \u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u043c\u0430\u0442\u0435 \u043c\u0430\u043b\u043a\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438, \u043d\u043e \u0438\u043c\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438\u0437 \u043d\u0435\u0442\u0430, \u0447\u0435 \u0438 \u0430\u0437 \u0434\u0430 \u043f\u0438\u0448\u0430 \ud83d\ude42<\/p>\n<p style=\"text-align: justify;\">\u041e\u0442 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0441\u0433\u043b\u043e\u0431\u0438\u0445 \u0438 \u0434\u043e\u043f\u044a\u043b\u043d\u0438\u0445 \u0435\u0434\u0438\u043d init.d \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430 swatch, \u043a\u043e\u0439\u0442\u043e \u0445\u0435\u043c \u0434\u0430 \u0432\u044a\u0440\u0448\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430, \u0445\u0435\u043c \u0434\u0430 \u0435 \u043f\u0440\u043e\u0441\u0442 \u0437\u0430 \u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u0438 \u0447\u0435\u0442\u0435\u043d\u0435. \u0421\u043a\u0440\u0438\u043f\u0442\u0430 \u0435 <strong>\/etc\/init.d\/swatch<\/strong>, \u0435\u0442\u043e \u0433\u043e \u0438 \u0441\u0430\u043c\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442:<\/p>\n<p>[code lang=&#8220;bash&#8220;]<br \/>\n#!\/bin\/bash<br \/>\n#\/etc\/init.d\/swatch<br \/>\n#<br \/>\n### BEGIN INIT INFO<br \/>\n# Provides: swatch<br \/>\n# Required-Start: $syslog<br \/>\n# Required-Stop:<br \/>\n# Default-Start: 2 3 5<br \/>\n# Default-Stop: 0 1 6<br \/>\n# Description: Start or stop the SWATCH daemon<br \/>\n### END INIT INFO<\/p>\n<p># Check for missing binaries (stale symlinks should not happen)<br \/>\nSWATCH_BIN=\/usr\/bin\/swatch<br \/>\ntest -x $SWATCH_BIN || exit 5<\/p>\n<p># Check for existence of needed config file<br \/>\nSWATCH_CONFIG=\/etc\/swatch\/swatch.conf<br \/>\ntest -r $SWATCH_CONFIG || exit 6<\/p>\n<p># Watch syslog or *log<br \/>\nFILE=\/var\/log\/*log<\/p>\n<p># Miscellaneous parameters<br \/>\nRETVAL=0<br \/>\nprog=&#8220;swatch&#8220;<\/p>\n<p>start() {<br \/>\necho $&#8220;Starting $prog daemon&#8220;<br \/>\n$SWATCH_BIN -c $SWATCH_CONFIG &#8211;tail-file=$FILE &#8211;daemon<br \/>\nRETVAL=$?<br \/>\necho<br \/>\nreturn $RETVAL<br \/>\n}<\/p>\n<p>stop() {<br \/>\necho $&#8220;Shutting down $prog&#8220;<br \/>\nid=`ps aux | grep \/usr\/bin\/tail | grep \/var\/log | awk &#8216;{print $2}&#8217;`<br \/>\nif [ -z &#8222;$id&#8220; ]; then<br \/>\necho &#8222;No running process $prog&#8220;<br \/>\nelse<br \/>\necho &#8222;$prog (pid $id) is stop&#8220;<br \/>\nkill -9 $id<br \/>\nfi<br \/>\nRETVAL=$?<br \/>\necho<br \/>\nreturn $RETVAL<br \/>\n}<\/p>\n<p>rhstatus() {<br \/>\npid=`ps aux | grep swatch | grep daemon | awk &#8216;{print $2}&#8217;`<br \/>\nif [ -z &#8222;$pid&#8220; ]; then<br \/>\necho &#8222;$prog is stopped&#8220;<br \/>\nRETVAL=1<br \/>\nelse<br \/>\necho &#8222;$prog (pid $pid) is running&#8220;<br \/>\nRETVAL=0<br \/>\nfi<br \/>\n}<\/p>\n<p>restart() {<br \/>\necho<br \/>\necho &#8222;Please wait for the process to complete&#8220;<br \/>\nstop<br \/>\nsleep 5<br \/>\nstart<br \/>\n}<\/p>\n<p>case &#8222;$1&#8243; in<br \/>\nstart)<br \/>\nstart<br \/>\n;;<br \/>\nstop)<br \/>\nstop<br \/>\n;;<br \/>\nstatus)<br \/>\nrhstatus<br \/>\n;;<br \/>\nrestart)<br \/>\nrestart<br \/>\n;;<br \/>\nreload)<br \/>\nreload<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8220;Usage: $0 {start|stop|status|restart}&#8220;<br \/>\nexit 1<br \/>\nesac<\/p>\n<p>exit $?<\/p>\n<p>[\/code]<\/p>\n<p>\u0421\u043b\u0435\u0434 \u043a\u0430\u0442\u043e \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u0444\u0430\u0439\u043b\u0430 \u0438 \u043a\u043e\u043f\u0438\u0440\u0430\u0442\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 \u043d\u0435\u0433\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u0442\u0435 \u0442\u043e\u0432\u0430:<\/p>\n<p>[code lang=&#8220;bash&#8220;]<\/p>\n<p>$ chmod 755 \/etc\/init.d\/swatch<br \/>\n$ update-rc.d swatch defaults<\/p>\n<p>[\/code]<\/p>\n<p>\u0412\u044a\u0432 \u0444\u0430\u0439\u043b\u0430 \u0438\u043c\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0430 <strong>FILE=\/var\/log\/syslog<\/strong> \u0432 \u0441\u043b\u0443\u0447\u0430\u044f swatch \u0449\u0435 \u0441\u043b\u0435\u0434\u0438 \u0441\u0430\u043c\u043e \u0437\u0430\u043f\u0438\u0441\u0438\u0442\u0435 \u0432 \/var\/log\/syslog, \u0430\u043a\u043e \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0441\u043b\u0435\u0434\u0438\u0442\u0435 \u043f\u043e\u0432\u0435\u0447\u0435 .log \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043f\u043e\u0434\u043c\u0435\u043d\u0435\u0442\u0435 syslog \u0441 <strong>*log<\/strong>. \u0422\u0430\u043a\u0430 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0449\u0435 \u0441\u0435 \u0441\u043b\u0435\u0434\u044f\u0442 \u0432\u0441\u0438\u0447\u043a\u043e log \u0444\u0430\u0439\u043b\u043e\u0432\u0435.<\/p>\n<p style=\"text-align: justify;\">\u041b\u043e\u0448\u043e\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u044f \u0435, \u0447\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u043b\u0435\u0434 \u0441\u0430\u043c\u043e \u0435\u0434\u0438\u043d \u0438\u043b\u0438 \u0432\u0441\u0438\u0447\u043a\u0438 .log \u0444\u0430\u0439\u043b\u043e\u0432\u0435. \u041f\u043e\u043d\u0435 \u0442\u043e\u0432\u0430 \u0430\u0437 \u0443\u0441\u043f\u044f\u0445 \u0434\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u044f. \u041a\u043e\u0435\u0442\u043e \u043c\u0430\u043b\u043a\u043e \u0438\u043b\u0438 \u043c\u043d\u043e\u0433\u043e \u0441\u0438 \u0435 \u0440\u0435\u0441\u0443\u0440\u0441 \u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430. \u041d\u043e \u043d\u0435 \u043d\u044f\u043c\u0430 \u043a\u0430\u043a \u0438 \u0432\u044a\u043b\u043a\u0430 \u0441\u0438\u0442 \u0438 \u0430\u0433\u043d\u0435\u0442\u043e \u0446\u044f\u043b\u043e. \u0418 \u0442\u0430\u043a\u0430, \u0441\u043b\u0435\u0434 \u0442\u043e\u0432\u0430 \u0432\u0435\u0447\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435 watch.conf. \u0412 \u0441\u043b\u0443\u0447\u0430\u044f \u0430\u0437 \u0449\u0435 \u0433\u043e \u043f\u043e\u043b\u0437\u0432\u0430\u043c \u0434\u0430 \u0441\u043b\u0435\u0434\u0438 \u043b\u043e\u043a\u0430\u043b\u043d\u0438\u044f UPS \u0438 \u0441\u043b\u0435\u0434 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0432\u0440\u0435\u043c\u0435 \u0434\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438\u0442\u0435 \u043a\u043e\u0439\u0442\u043e \u0441\u0430 \u0432 \u043c\u0440\u0435\u0436\u0430\u0442\u0430 \u043d\u0430 UPS-\u0438.<\/p>\n<p>[code lang=&#8220;bash&#8220;]<\/p>\n<p>watchfor \/UPS ups\\@localhost on battery\/<br \/>\nmail addresses=35988xxxxxxx\\@sms.mtel.net,subject=&#8220;Power\\ is\\ DOWN&#8220;<br \/>\nexec &#8222;\/etc\/swatch\/shutdown_remote_servers.sh&#8220;<\/p>\n<p>watchfor \/UPS ups\\@localhost on line power\/<br \/>\nmail addrrees=35988xxxxxxx\\@sms.mtel.net,subject=&#8220;Power\\ is\\ UP&#8220;<br \/>\nexec &#8222;\/etc\/swatch\/kill_service_shutdows.sh&#8220;<\/p>\n<p>[\/code]<\/p>\n<p>\u041a\u0430\u0442\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u043c\u043d\u043e\u0433\u043e \u0434\u0430 \u0441\u0435 \u0432\u043d\u0438\u043c\u0430\u0432\u0430 \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u201c@\u201d, \u0434\u0430 \u0438\u043c\u0430 \u043f\u0440\u0435\u0434 \u043d\u0435\u0433\u043e \u043b\u044f\u0432\u043e \u043d\u0430\u043a\u043b\u043e\u043d\u0435\u043d\u0430 \u0447\u0435\u0440\u0442\u0430 \u201c\\\u201d, \u0447\u0435 \u043f\u043e\u0447\u0432\u0430\u0442 \u0435\u0434\u043d\u043e \u0433\u0440\u0435\u0448\u043a\u0438 \u0438 \u0441\u0435 \u0447\u0443\u0434\u0438\u0448 \u0437\u0430\u0449\u043e \ud83d\ude42<\/p>\n<p>\u041f\u0440\u0438 \u043c\u0435\u043d \u0432\u0441\u0438\u0447\u043a\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u0441 \u0430\u0434\u043c\u0438\u043d \u043f\u0440\u0430\u0432\u0430 \u0441\u0430 \u0441 \u0435\u0434\u043d\u0430 \u0438 \u0441\u044a\u0449\u0430 \u043f\u0430\u0440\u043e\u043b\u0430, \u043a\u043e\u0435\u0442\u043e \u043c\u0438 \u043f\u043e\u0437\u0432\u0430\u043b\u044f \u0434\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u044f \u0441\u043b\u0435\u0434\u043d\u043e\u0442\u043e \u0432\u044a\u0432 \u0444\u0430\u0439\u043b\u0430\u00a0shutdown_remote_servers.sh:<\/p>\n<p>[code lang=&#8220;bash&#8220;]<br \/>\n#!\/bin\/bash<br \/>\n###############################################################<br \/>\nIP=`cat \/etc\/swatch\/ip_address`<br \/>\nuser=&#8220;administrator&#8220;<br \/>\npass=&#8220;password&#8220;<br \/>\n###############################################################<br \/>\nsleep 600<br \/>\nfor server in $IP ;<br \/>\ndo net rpc shutdown -I $server -U $user%$pass &amp;<br \/>\ndone<br \/>\n[\/code]<\/p>\n<p>\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0430 \u0435 \u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430:<br \/>\n[code lang=&#8220;bash&#8220;]<br \/>\nnet rpc shutdown -I IPADDRESS -U USERNAME%PASSWORD<br \/>\n[\/code]<\/p>\n<p>\u0422\u044f \u0438\u043c\u0430 \u0437\u0430 \u0446\u0435\u043b \u0434\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u043e windows \u043c\u0430\u0448\u0438\u043d\u0430\u0442\u0430.<\/p>\n<p>\u0415\u0442\u043e \u043a\u0430\u043a\u0432\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0432\u0430 \u0438 \u0441\u0430\u043c\u0438\u044f \u0444\u0430\u0439\u043b ip_address:<br \/>\n[code lang=&#8220;bash&#8220;]<br \/>\n192.168.xx.yy<br \/>\n192.168.xx.yy<br \/>\n192.168.xx.yy<br \/>\n192.168.xx.yy<br \/>\n192.168.xx.yy<br \/>\n192.168.xx.yy<br \/>\n192.168.xx.yy<br \/>\n[\/code]<\/p>\n<p>\u0418 \u043d\u0430 \u043a\u0440\u0430\u044f \u043e\u0441\u0442\u0430\u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442 \u043a\u043e\u0439\u0442\u043e \u0438\u043c\u0430 \u0437\u0430 \u0446\u0435\u043b, \u0430\u043a\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0434\u043e\u0439\u0434\u0435 \u0442\u043e\u043a\u044a\u0442 \u0430 \u0432\u0440\u0435\u043c\u0435\u0442\u043e 600 (5 \u043c\u0438\u043d) \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043e \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430\u00a0<strong>sleep <\/strong>\u043d\u0435 \u0435 \u0438\u0437\u0442\u0435\u043a\u043e\u043b\u043e. \u00a0\u0415\u0442\u043e \u0433\u043e \u0438 \u0441\u0430\u043c\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442,\u00a0kill_service_shutdows.sh:<\/p>\n<p>[code lang=&#8220;bash&#8220;]<br \/>\n#!\/bin\/bash<br \/>\nprocess=shutdown_remote_servers.sh<br \/>\npid=`ps auNx | grep &#8222;$process&#8220; | grep \/bin\/bash | awk &#8216;{print $2}&#8217;`<br \/>\nif [ -z &#8222;$pid&#8220; ]; then<br \/>\necho &#8222;No running process $process&#8220;<br \/>\nelse<br \/>\necho &#8222;$process (pid $pid) is stop&#8220;<br \/>\nkill -9 $pid<br \/>\nfi<br \/>\n[\/code]<\/p>\n<p>\u0421\u043b\u0435\u0434 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0432\u0440\u0435\u043c\u0435 \u043e\u0441\u044a\u0437\u043d\u0430\u0445 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043d\u0435\u0449\u0430, \u0432\u044a\u0437 \u043e\u0441\u043d\u043e\u0432\u0430 \u043d\u0430 \u043a\u043e\u0438\u0442\u043e \u0441\u0435 \u043d\u0430\u043b\u043e\u0436\u0438 \u0434\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u044f \u043d\u0430\u0447\u0438\u043d\u0430 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435.<\/p>\n<p>\u041d\u0435\u0449\u0430\u0442\u0430 \u043a\u043e\u0438\u0442\u043e \u043e\u0441\u044a\u0437\u043d\u0430\u0445 \u0441\u0430 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435:<\/p>\n<ul>\n<li>\u0410\u043a\u043e \u043c\u0440\u0435\u0436\u0430\u0442\u0430 \u0432\u0438 \u0435 \u043d\u0430 UPS \u0438 \u0442\u043e\u0439 \u0441\u0435 \u0441\u0430\u043c\u043e\u0438\u0437\u043a\u043b\u044e\u0447\u0438 \u0441\u043b\u0435\u0434 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0432\u0440\u0435\u043c\u0435 (\u043f\u043e \u043c\u0430\u043b\u043a\u043e \u043e\u0442 \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043e\u0442\u043e \u0432 sleep), \u0437\u0430\u0449\u043e\u0442\u043e \u043d\u044f\u043c\u0430 \u0431\u0430\u0442\u0435\u0440\u0438\u044f\u00a0 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0440\u0430\u0431\u043e\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430. \u0418 \u0432\u0441\u0438\u0447\u043a\u0438 \u043c\u0430\u0448\u0438\u043d\u0438 \u0441\u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0430\u0442 \u043d\u0435\u043a\u043e\u0440\u0435\u043a\u0442\u043d\u043e.<\/li>\n<li>\u0410\u043a\u043e \u0438\u043c\u0430\u0442\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438, \u0441 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u043d\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438\u0442\u0435 \u0449\u0435 \u0437\u043d\u0430\u044f\u0442 \u043a\u043e\u043b\u043a\u043e \u0432\u0440\u0435\u043c\u0435 \u0438\u043c\u0430\u0442 \u043f\u0440\u0435\u0434\u0438 \u0434\u0430 \u0438\u043c \u0441\u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0430\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438\u0442\u0435.<\/li>\n<li>\u0418\u043c\u0430 \u043d\u0430\u0447\u0438\u043d \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0435 \u0431\u0440\u043e\u044f\u0447\u0430 \u0437\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435.<\/li>\n<\/ul>\n<p>\u0417\u0430 \u0442\u0430\u0437\u0438 \u0446\u0435\u043b \u0441\u044a\u0437\u0434\u0430\u0434\u043e\u0445 2 \u0441\u043a\u0440\u0438\u043f\u0442\u0430:<\/p>\n<p>shutdown_remotely_servers.sh<\/p>\n<p>[code lang=&#8220;bash&#8220;]<br \/>\n#!\/bin\/bash<br \/>\n###############################################################<br \/>\nIP=`cat \/etc\/swatch\/ip_address`<br \/>\nuser=&#8220;administrator&#8220;<br \/>\npass=&#8220;password&#8220;<br \/>\n###############################################################<br \/>\n# shutdown other PC after 60 sec or 1 min<br \/>\nnet rpc shutdown -C &#8222;Power DOWN, PC is shutting down&#8220; -I XXX.XXX.XXX.XXX -U $user%$pass -t 60 &amp;<\/p>\n<p># shutdown the Servers after 300 sec or 5 min<br \/>\nfor server in $IP ;<br \/>\ndo net rpc shutdown -C &#8222;Power DOWN, PC is shutting down&#8220; -I $server -U $user%$pass -t 300 &amp;<br \/>\ndone<\/p>\n<p># shutdown Linux Server after 600 sec o 10 min<br \/>\nshutdown -t 900 -h<br \/>\n[\/code]<\/p>\n<p>abortshutdown_remotely_servers.sh<\/p>\n<p>[code lang=&#8220;bash&#8220;]<br \/>\n#!\/bin\/bash<br \/>\n###############################################################<br \/>\nIP=`cat \/etc\/swatch\/ip_address`<br \/>\nuser=&#8220;administrator&#8220;<br \/>\npass=&#8220;password&#8220;<br \/>\n###############################################################<br \/>\n#Abort shutdown other PC<br \/>\nnet rpc abortshutdown -I XXX.XXX.XXX.XXX -U $user%$pass &amp;<\/p>\n<p>#Abort shutdown the Servers<br \/>\nfor server in $IP ;<br \/>\ndo net rpc abortshutdown -I $server -U $user%$pass &amp;<br \/>\ndone<\/p>\n<p>#Abort shutdown Linux Server<br \/>\nshutdown -c<\/p>\n<p>[\/code]<\/p>\n<p>\u0417\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438\u0442\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043c \u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430:<\/p>\n<p>net rpc shutdown -C &#8222;Power DOWN, PC is shutting down&#8220; -I XXX.XXX.XXX.XXX -U $user%$pass -t xxx<\/p>\n<p>\u0417\u0430 \u043f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u0440\u043e\u044f\u0447\u0430 \u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430:<\/p>\n<p>net rpc abortshutdown -I XXX.XXX.XXX.XXX -U $user%$pass<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Swatch e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 Perl, \u043a\u043e\u044f\u0442\u043e \u0438\u043c\u0430 \u0437\u0430 \u0446\u0435\u043b \u0434\u0430 \u0441\u043b\u0435\u0434\u0438 \u0437\u0430\u043f\u0438\u0441\u0438\u0442\u0435 \u0432 .log \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0438 \u0434\u0430 \u0440\u0435\u0430\u0433\u0438\u0440\u0430 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438 \u0437\u0430\u043f\u0438\u0441\u0438. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e swatch \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u043f\u043e \u0441\u043b\u0435\u0434\u043d\u0438\u044f \u043d\u0430\u0447\u0438\u043d: \/usr\/bin\/swatch &#8211;config-file=\/etc\/swatch\/swatch.conf &#8211;tail-file=\/var\/log\/syslog &#8211;background \u0438 \u043e\u0449\u0435 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0438. \u041e\u0442\u0434\u0435\u043b\u043d\u043e \u0438\u043c\u0430 \u0438 \u0434\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 swatch.conf. \u041a\u043e\u0435\u0442\u043e \u043f\u0440\u0435\u0434\u0438\u0437\u0432\u0438\u043a\u0430 \u0432 \u043c\u0435\u043d \u043e\u0433\u0440\u043e\u043c\u043d\u043e \u0447\u0443\u0432\u0441\u0442\u0432\u043e \u0437\u0430 \u043c\u044a\u0440\u0437\u0435\u043b \u0438 \u0432\u044a\u0432 \u0432\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[11],"tags":[],"class_list":["post-371","post","type-post","status-publish","format-standard","hentry","category-11"],"_links":{"self":[{"href":"https:\/\/hgs.name\/index.php?rest_route=\/wp\/v2\/posts\/371","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=371"}],"version-history":[{"count":33,"href":"https:\/\/hgs.name\/index.php?rest_route=\/wp\/v2\/posts\/371\/revisions"}],"predecessor-version":[{"id":390,"href":"https:\/\/hgs.name\/index.php?rest_route=\/wp\/v2\/posts\/371\/revisions\/390"}],"wp:attachment":[{"href":"https:\/\/hgs.name\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgs.name\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgs.name\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}