{"id":262,"date":"2026-04-06T14:28:26","date_gmt":"2026-04-06T05:28:26","guid":{"rendered":"https:\/\/falcon21.space\/kazuya\/work\/?page_id=262"},"modified":"2026-04-06T14:28:26","modified_gmt":"2026-04-06T05:28:26","slug":"almalinux10-%e3%81%ab-%e4%b8%8d%e6%ad%a3%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e6%a4%9c%e7%9f%a5%e3%80%80swatchdog%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%83%bb%e8%a8%ad","status":"publish","type":"page","link":"https:\/\/falcon21.space\/kazuya\/work\/?page_id=262","title":{"rendered":"AlmaLinux10 \u306b \u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u691c\u77e5\u3000swatchdog\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30fb\u8a2d\u5b9a"},"content":{"rendered":"\n<p><strong>watch\u3000yum \/dnf\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u51fa\u6765\u306a\u3044<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><br>\u3000\u3000<strong>Swatch\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u5fc5\u8981\u306aperl-File-Tail \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>dnf install perl-File-Tail -y<\/strong><br>\u30e1\u30bf\u30c7\u30fc\u30bf\u306e\u671f\u9650\u5207\u308c\u306e\u6700\u7d42\u78ba\u8a8d: 11:18:55 \u524d\u306e 2025\u5e7411\u670822\u65e5 00\u664207\u520630\u79d2 \u306b\u5b9f\u65bd\u3057\u307e\u3057\u305f\u3002<br>\u5f15\u6570\u306b\u4e00\u81f4\u3059\u308b\u7d50\u679c\u304c\u3042\u308a\u307e\u305b\u3093: perl-File-Tail<br>\u30a8\u30e9\u30fc: \u4e00\u81f4\u3059\u308b\u3082\u306e\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: perl-File-Tail<br><br><br>[root@falcon21 ~]#&nbsp;<strong>cpan install File::Tail<\/strong><br>bash: cpan: \u30b3\u30de\u30f3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f&#8230;<br>\u30b3\u30de\u30f3\u30c9 cpan&#8217; \u3092\u63d0\u4f9b\u3059\u308b\u305f\u3081\u306b\u30d1\u30c3\u30b1\u30fc\u30b8 &#8216;<strong>perl-CPAN&#8217; \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u304b? [N\/y] y<\/strong><br><br>\u3000\u3000\u3000\uff1a<br>\u3000\u3000\u3000\uff1a<br>All tests successful.<br>Files=3, Tests=15, 63 wallclock secs ( 0.02 usr 0.01 sys + 0.07 cusr 0.02 csys = 0.12 CPU)<br>Result: PASS<br>MGRABNAR\/File-Tail-1.3.tar.gz<br>\/usr\/bin\/make test &#8212; OK<br>Running make install for MGRABNAR\/File-Tail-1.3.tar.gz<br>Manifying 1 pod document<br>Installing \/usr\/local\/share\/perl5\/5.40<strong>\/File\/Tail.pm<\/strong><br>Installing \/usr\/local\/share\/man\/man3<strong>\/File::Tail.3pm<\/strong><br>Appending installation info to \/usr\/lib64\/perl5\/perllocal.pod<br><strong>MGRABNAR\/File-Tail-1.3.tar.gz<br>\/usr\/bin\/make install &#8212; OK<\/strong><br><br>\u3000\u3000\u3000&#8212;&#8211; \u2018perl-File-Tail \u304c\u898b\u3064\u304b\u3089\u306a\u3044&#8212;&#8211;<br><br>\u3000<strong>cpanm\u3067\u3001\u8a66\u884c\u3000\u3000cpanm\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>yum install perl-App-cpanminus<\/strong><br>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f:<br>perl-App-cpanminus-1.7047-6.el10.noarch perl-CPAN-Meta-Check-0.018-6.el10.noarch<br>perl-File-pushd-1.016-23.el10.noarch perl-Module-CPANfile-1.1004-22.el10.noarch<br>perl-Parse-PMFile-0.45-3.el10.noarch perl-String-ShellQuote-1.04-45.el10.noarch<br>perl-YAML-1.31-7.el10.noarch<br><br>\u5b8c\u4e86\u3057\u307e\u3057\u305f!<br><br><strong>File-Tail\u3000\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>cpanm File::Tail<\/strong><br>! Finding File::Tail on cpanmetadb failed.<br>LWP will support https URLs if the LWP::Protocol::https module<br>is installed.<br><br>[root@falcon21 ~]#&nbsp;<strong>cpan install File::Tail<\/strong><br>Loading internal logger. Log::Log4perl recommended for better logging<br>Reading &#8216;\/root\/.local\/share\/.cpan\/Metadata&#8217;<br>Database was generated on Sat, 22 Nov 2025 01:17:01 GMT<br>CPAN: Module::CoreList loaded ok (v5.20250120)<br><strong>File::Tail is up to date (1.3).<\/strong><br><br><br><strong>Date::Calc\u3000\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><br>root@falcon21:~#<strong>&nbsp;cpan install Date::Calc<\/strong><br>\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\uff1a<br>Result: PASS<br>STBEY\/Date-Calc-XS-6.4.tar.gz<br>\/usr\/bin\/make test &#8212; OK<br>Running make install for STBEY\/Date-Calc-XS-6.4.tar.gz<br>&#8220;\/usr\/bin\/perl&#8221; -MExtUtils::Command::MM -e &#8216;cp_nonempty&#8217; &#8212; XS.bs blib\/arch\/auto\/Date\/Calc\/XS\/XS.bs 644<br>Manifying 1 pod document<br>Files found in blib\/arch: installing files in blib\/lib into architecture dependent library tree<br>Installing \/usr\/local\/lib64\/perl5\/5.40\/auto\/Date\/Calc\/XS\/XS.so<br>Installing \/usr\/local\/lib64\/perl5\/5.40\/Date\/Calc\/XS.pod<br>Installing \/usr\/local\/lib64\/perl5\/5.40\/Date\/Calc\/XS.pm<br>Installing \/usr\/local\/share\/man\/man3\/Date::Calc::XS.3pm<br>Appending installation info to \/usr\/lib64\/perl5\/perllocal.pod<br>STBEY\/Date-Calc-XS-6.4.tar.gz<br>\/usr\/bin\/make install &#8212; OK<br><br><br><strong>Date::Manip\u3000\u306e\u3000\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><br>root@falcon21:~#&nbsp;<strong>cpan install Date::Manip<\/strong><br>Appending installation info to \/usr\/lib64\/perl5\/perllocal.pod<br>SBECK\/Date-Manip-6.98.tar.gz<br>\/usr\/bin\/make install &#8212; OK<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><br>\u3000\u3000\u3000\u3000\u3000\u3000\u3000<strong>swatchdog \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\uff1a\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><br>\u3000\u3000\u3000\u3000&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u3000\u3000<br>\u3000\u3000\u3000\u3000<a href=\"https:\/\/sourceforge.net\/projects\/swatch\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/sourceforge.net\/projects\/swatch\/<\/a><br>https:\/\/sourceforge.net\/projects\/swatch\/files\/latest\/download<br><br>Windows\u3067\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3001cockpit \u3067\u3001\/root \u3078\u3001\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3000<br>\u3000\u3000\u3000\u3000\u3000\u3000\u3000<strong>swatchdog-3.2.4.tar.gz<\/strong><br><strong>\u89e3\u51cd<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>tar xvfz swatchdog-3.2.4.tar.gz<\/strong><br><br><strong>\u89e3\u51cd\u3057\u3066\u3067\u304d\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>cd swatchdog-3.2.4<\/strong><br><br>[root@falcon21 swatchdog-3.2.4]#&nbsp;<strong>perl Makefile.PL<\/strong><br>Generating a Unix-style Makefile<br>Writing Makefile for swatchdog<br>Writing MYMETA.yml and MYMETA.json<br><br><br>[root@falcon21 swatchdog-3.2.4]#<strong>&nbsp;make<\/strong><br>cp lib\/Swatchdog\/Threshold.pm blib\/lib\/Swatchdog\/Threshold.pm<br>cp lib\/Swatchdog\/Throttle.pm blib\/lib\/Swatchdog\/Throttle.pm<br>cp lib\/Swatchdog\/Actions.pm blib\/lib\/Swatchdog\/Actions.pm<br>AutoSplitting blib\/lib\/Swatchdog\/Actions.pm (blib\/lib\/auto\/Swatchdog\/Actions)<br>cp swatchdog blib\/script\/swatchdog<br>&#8220;\/usr\/bin\/perl&#8221; -MExtUtils::MY -e &#8216;MY-&gt;fixin(shift)&#8217; &#8212; blib\/script\/swatchdog<br>Manifying 1 pod document<br>Manifying 3 pod documents<br><br><br>[root@falcon21 swatchdog-3.2.4]#&nbsp;<strong>make test<\/strong><br>PERL_DL_NONLAZY=1 &#8220;\/usr\/bin\/perl&#8221; &#8220;-MExtUtils::Command::MM&#8221; &#8220;-MTest::Harness&#8221; &#8220;-e&#8221; &#8220;undef *Test::Harness::Switches; test_harness(0, &#8216;blib\/lib&#8217;, &#8216;blib\/arch&#8217;)&#8221; t\/*.t<br>t\/01cpan_modules.t .. ok<br>All tests successful.<br>Files=1, Tests=1, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.02 cusr 0.00 csys = 0.04 CPU)<br><strong>Result: PASS<\/strong><br><br><br>[root@falcon21 swatchdog-3.2.4]#<strong>&nbsp;make install<\/strong><br>Manifying 1 pod document<br>Manifying 3 pod documents<br><strong>Installing \/usr\/local\/share\/perl5\/5.40\/auto\/Swatchdog\/Actions\/autosplit.ix<\/strong><br>Installing \/usr\/local\/share\/perl5\/5.40\/Swatchdog\/Threshold.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Swatchdog\/Throttle.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Swatchdog\/Actions.pm<br>Installing \/usr\/local\/share\/man\/man1\/swatchdog.1<br>Installing \/usr\/local\/share\/man\/man3\/Swatchdog::Actions.3pm<br>Installing \/usr\/local\/share\/man\/man3\/Swatchdog::Threshold.3pm<br>Installing \/usr\/local\/share\/man\/man3\/Swatchdog::Throttle.3pm<br><strong>Installing \/usr\/local\/bin\/swatchdog<\/strong><br>Appending installation info to \/usr\/lib64\/perl5\/perllocal.pod<br><br>[root@falcon21 swatchdog-3.2.4]#&nbsp;<strong>cd<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><br>&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><br><strong>swatchdog \u3092\u8d77\u52d5<\/strong><br><br>[root@falcon21 ~]#&nbsp;<strong>swatchdog &amp;<\/strong><br>[1] 5429<br><strong>[root@falcon21 ~]# swatchdog: cannot find \/root\/.swatchdogrc. Please create it or specify an alternate configuration file. Exiting.<\/strong><br><strong>swatchdog: \/root\/.swatchdogrc \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093<\/strong>\u3002\u4f5c\u6210\u3059\u308b\u304b\u3001\u5225\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u7d42\u4e86\u3057\u307e\u3059\u3002<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><br><strong>swatchdogrc \u540d\u3067\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210<\/strong><br><br>[root@falcon21 ~]#&nbsp;<strong>vi .swatchdogrc<\/strong><br># \u30ed\u30b0\u30d5\u30a1\u30a4\u30eb \/var\/log\/syslog \u3092\u76e3\u8996<br>#watchfor \/WARN\/<br>#exec echo &#8220;Warning detected: &#8221; $0<br>#exec mail -s &#8220;Warning in syslog&#8221; root@falcon21.space &lt; \/dev\/null<br><br># \u30ed\u30b0\u30d5\u30a1\u30a4\u30eb \/var\/log\/auth.log \u3092\u76e3\u8996<br>#watchfor \/FAILED\/<br>#exec echo &#8220;Authentication failed: &#8221; $0<br>#exec mail -s &#8220;Authentication failure&#8221; root@falcon21.space &lt; \/dev\/null<br><br># \u30ed\u30b0\u30d5\u30a1\u30a4\u30eb \/var\/log\/<strong>httpd<\/strong>\/error.log \u3092\u76e3\u8996<br>watchfor \/error\/<br>exec echo &#8220;<strong>httpd<\/strong>&nbsp;error: &#8221; $0<br>exec mail -s &#8220;<strong>httpd<\/strong>&nbsp;error&#8221; root@falcon21.space &lt; \/dev\/null<br>watchfor = \/checksum\/,\/sendmail\/,\/biff\/,\/afpd\/<br>ignore<br>watchfor = \/(panic|halt)\/<br>mail=root@falcon21.space<br>bell=4<br><br>watchfor = \/INVALID|REPEATED|INCOMPLETE\/i<br>mail=root@falcon21.space<br><br>watchfor = \/err\/i<br>mail=root@falcon21.space<br><br>watchfor = \/warning\/i<br>mail=root@falcon21.space<br><br>watchfor = \/denied\/i<br>mail=root@falcon21.space<br><br>watchfor = \/fail\/i<br>mail=root@falcon21.space<br><br>watchfor = \/Warn\/i<br>mail=root@falcon21.space<br><br>watchfor = \/refuse\/i<br>mail=root@falcon21.space<br><br>watchfor = \/LOGIN\/i<br>mail=root@falcon21.space<br><br>watchfor = \/passwd\/i<br>mail=root@falcon21.space<br><br>watchfor = \/telnetd\/i<br>mail=root@falcon21.space<br><br>watchfor = \/-root\/i<br>mail=root@falcon21.space<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\">----------------<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;pre>\/var\/log\/secure \u3067\u3001\u540c\u4e00IP\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u306e\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u898f\u5236\u30b9\u30af\u30ea\u30d7\u30c8\u4f5c\u6210\u3000\u3000\n\nroot@falcon21:~# vi swatchdogatrm\n#!\/bin\/bash\n\n# \u30a2\u30af\u30bb\u30b9\u898f\u5236\u89e3\u9664\u4e88\u7d04\u524a\u9664\u51e6\u7406\n#\n# \u5f15\u6570\u3067\u6307\u5b9a\u3057\u305f\u56de\u6570\u4ee5\u4e0a\u306e\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3092\u8a18\u9332\u3057\u305fIP\u30a2\u30c9\u30ec\u30b9\u306e\u30a2\u30af\u30bb\u30b9\u898f\u5236\u89e3\u9664\u4e88\u7d04\u3092\u524a\u9664\u3057\u3066\n# \u8a72\u5f53IP\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u306e\u30a2\u30af\u30bb\u30b9\u3092\u6c38\u4e45\u306b\u898f\u5236\u3059\u308b\n# \u5f15\u6570\u306b0\u3092\u6307\u5b9a\u3057\u305f\u5834\u5408\u306f\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u8a18\u9332\u56de\u6570\u306e\u307f\u8868\u793a\u3057\u3066\u898f\u5236\u89e3\u9664\u4e88\u7d04\u306e\u524a\u9664\u306f\u884c\u308f\u306a\u3044\n\n&#91; $# -ne 1 ] &amp;&amp; echo \"usage is ${0} cnt\" &amp;&amp; exit 1\nfor atq in `atq|awk '{print $1}'`\ndo\n    at -c ${atq}|grep \"iptables -D INPUT -s \" > \/dev\/null 2>&amp;1 || continue\n    ip=`at -c ${atq}|grep \"iptables -D INPUT -s \"|sed -e 's\/.*iptables -D INPUT -s \\(&#91;^ ]*\\) -j DROP.*\/\\1\/p' -e d`\n    if &#91; ${1} -eq 0 ];then\n        echo -e \"${ip}\\t`cat \/var\/log\/secure\/${ip}|wc -l`\"\n    else\n        cnt=`cat \/var\/log\/swatchdog\/${ip}|wc -l`\n        &#91; ${cnt} -ge ${1} ] &amp;&amp; \\\n        atrm ${atq} &amp;&amp; echo -e \"${ip}\\\\t`cat \/var\/log\/secure\/${ip}|wc -l`\"\n    fi\ndone&lt;\/pre><\/code><\/pre>\n\n\n\n<p>[root@falcon21 ~]#&nbsp;<strong>chmod 700 swatchdogatrm<\/strong><\/p>\n\n\n\n<p>***********************************************************************<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong><br>swatchdog \u3092\u8d77\u52d5<\/strong><br><br>[root@falcon21 ~]#&nbsp;<strong>swatchdog &amp;<\/strong><br>[1] 6271<br>[root@falcon21 ~]#<br>***&nbsp;<strong>swatchdog version 3.2.4 (pid:177716) started<\/strong>&nbsp;at 2026\u5e74 1\u6708 29\u65e5 \u6728\u66dc\u65e5 10:59:31 JST<br><br>httpd error: \/root\/.swatchdog_script.177716<br>s-nail: Null message body; hope that&#8217;s ok<br>\u30e1\u30c3\u30bb\u30fc\u30b8\u672c\u6587\u304c\u7a7a\u3067\u3059\u3002\u554f\u984c\u306a\u3044\u3067\u3057\u3087\u3046\u304b<br><br><strong>Ctl\u3000+\u3000\uff23\u3000\u3067\u629c\u3051\u308b<\/strong><br><br><br><strong>\u30a8\u30e9\u30fc\u3000\u30ed\u30b0\u304c\uff11\u3065\u3064\u30e1\u30fc\u30eb\u9001\u4fe1\u3055\u308c\u308b\u30fb\u30fb\u30fb\u78ba\u8a8d<\/strong><br><br><br>[root@falcon21 ~]#&nbsp;<strong>swatchdog &amp;<\/strong><br>[1] 6042<br>[root@falcon21 ~]#<strong>&nbsp;Can&#8217;t locate Date\/Parse.pm<\/strong>&nbsp;in @INC<br><br>(you may need to install the Date::Pa rse module) (@INC entries checked: \/usr\/local\/lib64\/perl5\/5.40 \/usr\/local\/share\/perl5\/5.40 \/usr\/lib64\/perl5\/vendor_perl \/usr\/share\/perl5\/vendor_perl \/usr\/lib64\/perl5 \/usr\/share\/perl5 ) at \/usr\/local\/bin\/swatchdog line 30.<br>BEGIN failed&#8211;compilation aborted at \/usr\/local\/bin\/swatchdog line 30.<br><br>\/usr\/local\/bin\/swatchdog \u306e 30 \u884c\u76ee\u3067\u3001@INC \u306b Date\/Parse.pm \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093<br><br>(<strong>Date::Parse \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<\/strong>\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059)<br><br>(@INC \u30a8\u30f3\u30c8\u30ea\u306f\u30c1\u30a7\u30c3\u30af\u6e08\u307f:<br>\/usr\/local\/lib64\/perl5\/5.40 \/usr\/local\/share\/perl5\/5.40 \/usr\/lib64\/perl5\/vendor_perl<br><br>\/usr\/share\/perl5\/vendor_perl \/usr\/lib64\/perl5 \/usr\/share\/perl5)\u3002<br><br>BEGIN \u304c\u5931\u6557\u3057\u307e\u3057\u305f &#8211; \/usr\/local\/bin\/swatchdog \u306e 30 \u884c\u76ee\u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u304c\u4e2d\u6b62\u3055\u308c\u307e\u3057\u305f\u3002<br><br>&#8212;&#8212;&#8212;&#8212;<br><br><strong>\u3000\u3000\u3000\u3000\u3000\u3000Date::Parse \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><br><br>[root@falcon21 ~]#&nbsp;<strong>perl -MCPAN -e shell<\/strong><br>Terminal does not support AddHistory.<br><br>To fix that, maybe try&gt; install Term::ReadLine::Perl<br><br><br>cpan shell &#8212; CPAN exploration and modules installation (v2.36)<br>Enter &#8216;h&#8217; for help.<br><br>cpan[1]&gt; i<strong>nstall Date::Parse<\/strong><br>Reading &#8216;\/root\/.local\/share\/.cpan\/Metadata&#8217;<br>Database was generated on Sun, 11 Jan 2026 22:29:01 GMT<br>Running install for module &#8216;Date::Parse&#8217;<br>Fetching with HTTP::Tiny:<br>https:\/\/cpan.org\/authors\/id\/A\/AT\/ATOOMIC\/TimeDate-2.33.tar.gz<br>Checksum for \/root\/.local\/share\/.cpan\/sources\/authors\/id\/A\/AT\/ATOOMIC\/TimeDate-2.33.tar.gz ok<br>Scanning cache \/root\/.local\/share\/.cpan\/build for sizes<br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.DONE<br>Configuring A\/AT\/ATOOMIC\/TimeDate-2.33.tar.gz with Makefile.PL<br>Checking if your kit is complete&#8230;<br>Looks good<br>Generating a Unix-style Makefile<br>Writing Makefile for Date::Parse<br>Writing MYMETA.yml and MYMETA.json<br>ATOOMIC\/TimeDate-2.33.tar.gz<br>\/usr\/bin\/perl Makefile.PL &#8212; OK<br>Running make for A\/AT\/ATOOMIC\/TimeDate-2.33.tar.gz<br>cp lib\/Date\/Language\/Turkish.pm blib\/lib\/Date\/Language\/Turkish.pm<br>cp lib\/Date\/Language\/Brazilian.pm blib\/lib\/Date\/Language\/Brazilian.pm<br>cp lib\/Date\/Language\/Sidama.pm blib\/lib\/Date\/Language\/Sidama.pm<br>cp lib\/Date\/Language\/Romanian.pm blib\/lib\/Date\/Language\/Romanian.pm<br>cp lib\/Date\/Language\/Amharic.pm blib\/lib\/Date\/Language\/Amharic.pm<br>cp lib\/Date\/Language\/Russian.pm blib\/lib\/Date\/Language\/Russian.pm<br>cp lib\/Date\/Language\/Oromo.pm blib\/lib\/Date\/Language\/Oromo.pm<br>cp lib\/Date\/Language\/Spanish.pm blib\/lib\/Date\/Language\/Spanish.pm<br>cp lib\/Date\/Language\/Greek.pm blib\/lib\/Date\/Language\/Greek.pm<br>cp lib\/Date\/Language\/TigrinyaEthiopian.pm blib\/lib\/Date\/Language\/TigrinyaEthiopian.pm<br>cp lib\/Date\/Language\/Gedeo.pm blib\/lib\/Date\/Language\/Gedeo.pm<br>cp lib\/Date\/Language\/English.pm blib\/lib\/Date\/Language\/English.pm<br>cp lib\/Date\/Language\/Swedish.pm blib\/lib\/Date\/Language\/Swedish.pm<br>cp lib\/Date\/Language\/Danish.pm blib\/lib\/Date\/Language\/Danish.pm<br>cp lib\/Date\/Language\/Chinese.pm blib\/lib\/Date\/Language\/Chinese.pm<br>cp lib\/Date\/Language\/Austrian.pm blib\/lib\/Date\/Language\/Austrian.pm<br>cp lib\/Date\/Language\/Somali.pm blib\/lib\/Date\/Language\/Somali.pm<br>cp lib\/Date\/Language\/French.pm blib\/lib\/Date\/Language\/French.pm<br>cp lib\/Date\/Format.pm blib\/lib\/Date\/Format.pm<br>cp lib\/Date\/Language\/Icelandic.pm blib\/lib\/Date\/Language\/Icelandic.pm<br>cp lib\/Date\/Language\/Bulgarian.pm blib\/lib\/Date\/Language\/Bulgarian.pm<br>cp lib\/Date\/Language\/Czech.pm blib\/lib\/Date\/Language\/Czech.pm<br>cp lib\/Date\/Language\/TigrinyaEritrean.pm blib\/lib\/Date\/Language\/TigrinyaEritrean.pm<br>cp lib\/Date\/Language\/Tigrinya.pm blib\/lib\/Date\/Language\/Tigrinya.pm<br>cp lib\/Date\/Language\/Russian_cp1251.pm blib\/lib\/Date\/Language\/Russian_cp1251.pm<br>cp lib\/Date\/Language\/Occitan.pm blib\/lib\/Date\/Language\/Occitan.pm<br>cp lib\/Date\/Language\/Chinese_GB.pm blib\/lib\/Date\/Language\/Chinese_GB.pm<br>cp lib\/Date\/Language\/Hungarian.pm blib\/lib\/Date\/Language\/Hungarian.pm<br>cp lib\/TimeDate.pm blib\/lib\/TimeDate.pm<br>cp lib\/Date\/Language\/Norwegian.pm blib\/lib\/Date\/Language\/Norwegian.pm<br>cp lib\/Date\/Language\/Finnish.pm blib\/lib\/Date\/Language\/Finnish.pm<br>cp lib\/Date\/Parse.pm blib\/lib\/Date\/Parse.pm<br>cp lib\/Time\/Zone.pm blib\/lib\/Time\/Zone.pm<br>cp lib\/Date\/Language\/Dutch.pm blib\/lib\/Date\/Language\/Dutch.pm<br>cp lib\/Date\/Language\/Afar.pm blib\/lib\/Date\/Language\/Afar.pm<br>cp lib\/Date\/Language\/Russian_koi8r.pm blib\/lib\/Date\/Language\/Russian_koi8r.pm<br>cp lib\/Date\/Language.pm blib\/lib\/Date\/Language.pm<br>cp lib\/Date\/Language\/Italian.pm blib\/lib\/Date\/Language\/Italian.pm<br>cp lib\/Date\/Language\/German.pm blib\/lib\/Date\/Language\/German.pm<br>Manifying 7 pod documents<br>ATOOMIC\/TimeDate-2.33.tar.gz<br>\/usr\/bin\/make &#8212; OK<br>Running make test for ATOOMIC\/TimeDate-2.33.tar.gz<br>PERL_DL_NONLAZY=1 &#8220;\/usr\/bin\/perl&#8221; &#8220;-MExtUtils::Command::MM&#8221; &#8220;-MTest::Harness&#8221; &#8220;-e&#8221; &#8220;undef *Test::Harness::Switches; test_harness(0, &#8216;blib\/lib&#8217;, &#8216;blib\/arch&#8217;)&#8221; t\/*.t<br>t\/cpanrt.t &#8230; ok<br>t\/date.t &#8230;.. ok<br>t\/format.t &#8230; ok<br>t\/getdate.t .. ok<br>t\/lang.t &#8230;.. ok<br>All tests successful.<br>Files=5, Tests=509, 0 wallclock secs ( 0.04 usr 0.01 sys + 0.19 cusr 0.02 csys = 0.26 CPU)<br>Result: PASS<br>Terminal does not support GetHistory.<br>Lockfile removed.<br>ATOOMIC\/TimeDate-2.33.tar.gz<br>\/usr\/bin\/make test &#8212; OK<br>Running make install for ATOOMIC\/TimeDate-2.33.tar.gz<br>Manifying 7 pod documents<br>Installing \/usr\/local\/share\/perl5\/5.40\/TimeDate.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Format.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Parse.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Turkish.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Brazilian.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Sidama.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Romanian.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Amharic.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Russian.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Oromo.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Spanish.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Greek.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/TigrinyaEthiopian.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Gedeo.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/English.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Swedish.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Danish.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Chinese.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Austrian.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Somali.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/French.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Icelandic.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Bulgarian.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Czech.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/TigrinyaEritrean.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Tigrinya.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Russian_cp1251.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Occitan.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Chinese_GB.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Hungarian.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Norwegian.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Finnish.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Dutch.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Afar.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Russian_koi8r.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/Italian.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Date\/Language\/German.pm<br>Installing \/usr\/local\/share\/perl5\/5.40\/Time\/Zone.pm<br>Installing \/usr\/local\/share\/man\/man3\/Date::Format.3pm<br>Installing \/usr\/local\/share\/man\/man3\/Date::Language.3pm<br>Installing \/usr\/local\/share\/man\/man3\/Date::Language::Bulgarian.3pm<br>Installing \/usr\/local\/share\/man\/man3\/Date::Language::Hungarian.3pm<br>Installing \/usr\/local\/share\/man\/man3\/Date::Parse.3pm<br>Installing \/usr\/local\/share\/man\/man3\/Time::Zone.3pm<br>Installing \/usr\/local\/share\/man\/man3\/TimeDate.3pm<br>Appending installation info to \/usr\/lib64\/perl5\/perllocal.pod<br>ATOOMIC\/TimeDate-2.33.tar.gz<br>\/usr\/bin\/make install &#8212; OK<br><br>cpan[2]&gt;<br><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><br>\u3000\u3000\u3000<strong>SWATCHDOG \u8a2d\u5b9a \u3000\u3000<\/strong><br><strong>SWATCHDOG&nbsp;\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u683c\u7d0d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f5c\u6210<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>mkdir \/etc\/swatchdog<\/strong><br><strong>SWATCHDOG \u30ed\u30b0\u5207\u66ff\u3048\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210<\/strong> [root@falcon21 ~]# <strong>vi \/etc\/logrotate.d\/swatchdog<\/strong> \/var\/log\/swatchdog\/swatchdog.log { missingok notifempty sharedscripts postrotate \/etc\/rc.d\/init.d\/swatchdog restart &gt; \/dev\/null || true endscript }<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><br>\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;pre>SWATCH\u30a2\u30af\u30b7\u30e7\u30f3\u30b9\u30af\u30ea\u30d7\u30c8\u4f5c\u6210\n\n&#91;root@falcon21 ~]# vi \/usr\/local\/bin\/swatchdog_action.sh\n#!\/bin\/bash\n\n# SWATCH\u30a2\u30af\u30b7\u30e7\u30f3\u30b9\u30af\u30ea\u30d7\u30c8\n#\n# \u5f15\u65701:\u30ed\u30b0\u533a\u5207\u308a\u6587\u5b57\u3092\u6307\u5b9a\n# \u5f15\u65702:\u30ed\u30b0\u5185IP\u30a2\u30c9\u30ec\u30b9\u4f4d\u7f6e\u3092\u6307\u5b9a\n# \u5f15\u65703:\u8a72\u5f53IP\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u306e\u30a2\u30af\u30bb\u30b9\u3092\u898f\u5236\u3059\u308b\u5834\u5408block\u3092\u6307\u5b9a\n\nPATH=\/bin:\/sbin:\/usr\/bin\n\n# \u898f\u5236IP\u30a2\u30c9\u30ec\u30b9\u60c5\u5831\u30e1\u30fc\u30eb\u901a\u77e5\u5148\u8a2d\u5b9a\n# \u203b\u30e1\u30fc\u30eb\u901a\u77e5\u3057\u306a\u3044\u5834\u5408\u306f\u4e0b\u8a18\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\nmail=root\n\n# \u7570\u5e38\u7d42\u4e86\u51e6\u7406\u95a2\u6570\u5b9a\u7fa9\nerror_exit () {\n    (echo From: root@`hostname -d`\n     echo \"Subject: `basename ${0}` aborted.\"\n     echo\n     echo ${LOG}) | \\\n    `which sendmail` -t root\n    exit 1\n}\n\n# \u30ed\u30b0\u3092\u6a19\u6e96\u5165\u529b\u304b\u3089\u53d6\u5f97\nread LOG\n\n# \u30ed\u30b0\u304b\u3089IP\u30a2\u30c9\u30ec\u30b9\u3092\u62bd\u51fa\nIPADDR=`echo $LOG|awk -F \"$1\" \"{print $\"$2\"}\"`\n\n# IP\u30a2\u30c9\u30ec\u30b9\u304c\u30eb\u30fc\u30d7\u30d0\u30c3\u30af\u30a2\u30c9\u30ec\u30b9(IPv6)\u306e\u5834\u5408\u306f\u7d42\u4e86\n&#91; \"$IPADDR\" = \"::1\" ] &amp;&amp; exit\n\necho \"$IPADDR\"|grep \"^&#91;0-9]*\\.\" > \/dev\/null 2>&amp;1\nif &#91; $? -eq 0 ]; then\n    # IP\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u59cb\u307e\u308b\u5834\u5408\n    IPADDR=`echo \"$IPADDR\"|sed -e 's\/\\(&#91;0-9]*\\.&#91;0-9]*\\.&#91;0-9]*\\.&#91;0-9]*\\).*\/\\1\/p' -e d`\nelse\n    # IP\u30a2\u30c9\u30ec\u30b9\u4ee5\u5916\u304b\u3089\u59cb\u307e\u308b\u5834\u5408\n    IPADDR=`echo \"$IPADDR\"|sed -e 's\/.*&#91;^0-9]\\(&#91;0-9]*\\.&#91;0-9]*\\.&#91;0-9]*\\.&#91;0-9]*\\).*\/\\1\/p' -e d`\nfi\n\n# IP\u30a2\u30c9\u30ec\u30b9\u3092\u30d4\u30ea\u30aa\u30c9\u3067\u5206\u5272\naddr1=`echo $IPADDR|cut -d . -f 1`\naddr2=`echo $IPADDR|cut -d . -f 2`\naddr3=`echo $IPADDR|cut -d . -f 3`\naddr4=`echo $IPADDR|cut -d . -f 4`\n\n# IP\u30a2\u30c9\u30ec\u30b9\u30c1\u30a7\u30c3\u30af\u203b\u53d6\u5f97\u5931\u6557\u6642\u306froot\u5b9b\u306b\u30e1\u30fc\u30eb\u901a\u77e5\u3057\u3066\u7d42\u4e86\nexpr \"${addr1}\" + 1 > \/dev\/null 2>&amp;1 ; &#91; $? -ge 2 ] &amp;&amp; error_exit\nexpr \"${addr2}\" + 1 > \/dev\/null 2>&amp;1 ; &#91; $? -ge 2 ] &amp;&amp; error_exit\nexpr \"${addr3}\" + 1 > \/dev\/null 2>&amp;1 ; &#91; $? -ge 2 ] &amp;&amp; error_exit\nexpr \"${addr4}\" + 1 > \/dev\/null 2>&amp;1 ; &#91; $? -ge 2 ] &amp;&amp; error_exit\n\n# IP\u30a2\u30c9\u30ec\u30b9\u304c\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8IP\u30a2\u30c9\u30ec\u30b9\u306e\u5834\u5408\u306f\u7d42\u4e86\nif &#91; \"$IPADDR\" = \"127.0.0.1\" ]; then\n    exit\nelif &#91; $addr1 -eq 10 ]; then\n    exit\nelif &#91; $addr1 -eq 172 ] &amp;&amp; &#91; $addr2 -ge 16 ] &amp;&amp; &#91; $addr2 -le 31 ]; then\n    exit\nelif &#91; $addr1 -eq 192 ] &amp;&amp; &#91; $addr2 -eq 168 ]; then\n    exit\nfi\n\n# \u30db\u30b9\u30c8\u540d\u53d6\u5f97\ndig -x $IPADDR | grep \"ANSWER SECTION:\" > \/dev\/null 2>&amp;1\nif &#91; $? -eq 0 ]; then\n    HOST=`dig -x $IPADDR | grep -A 1 \"ANSWER SECTION:\" | tail -n 1 | awk '{print $5}'`\nelse\n    HOST=\"unknown\"\nfi\n\n# \u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u30e1\u30c3\u30bb\u30fc\u30b8\u3092IP\u30a2\u30c9\u30ec\u30b9\u5225\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u306b\u8a18\u9332\necho $LOG >> \/var\/log\/swatchdog\/$IPADDR\n\n# IP\u30a2\u30c9\u30ec\u30b9\u5225\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u7d2f\u7a4d\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u6570\u53d6\u5f97\ncnt=`cat \/var\/log\/swatchdog\/$IPADDR | wc -l`\n\n# \u8a72\u5f53IP\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u306e\u7d2f\u7a4d\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u6570\u304c3\u56de\u3054\u3068\u307e\u305f\u306f\n# \u5f15\u6570\u3067block\u3068\u6307\u5b9a\u3055\u308c\u305f\u5834\u5408\u30a2\u30af\u30bb\u30b9\u898f\u5236\nif &#91; $(( $cnt % 3 )) -eq 0 ] || &#91; $# -eq 3 -a  \"$3\" = \"block\" ]; then\n    # \u8a72\u5f53IP\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u306e\u30a2\u30af\u30bb\u30b9\u3092\u62d2\u5426\u3059\u308b\u30eb\u30fc\u30eb\u3092\u633f\u5165\n    iptables -I INPUT -s $IPADDR -j DROP\n    &#91; -f \/root\/deny_ip ] &amp;&amp; echo $IPADDR >> \/root\/deny_ip\n\n    # \u4e0a\u8a18\u30eb\u30fc\u30eb\u309224\u6642\u9593\u5f8c\u306b\u524a\u9664\u3059\u308b\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092\u767b\u9332\n    echo \"iptables -D INPUT -s $IPADDR -j DROP > \/dev\/null 2>&amp;1\" | \\\n    at now+24hour > \/dev\/null 2>&amp;1\n    &#91; -f \/root\/deny_ip ] &amp;&amp; \\\n    echo \"sed -i '\/^$IPADDR$\/d' \/root\/deny_ip > \/dev\/null 2>&amp;1 ; \\\n    sed -i '\/ $IPADDR \/d' \/etc\/sysconfig\/iptables > \/dev\/null 2>&amp;1\" | \\\n    at now+24hour > \/dev\/null 2>&amp;1\n\n    # \u30a2\u30af\u30bb\u30b9\u898f\u5236IP\u30a2\u30c9\u30ec\u30b9\u60c5\u5831\u3092\u30e1\u30fc\u30eb\u901a\u77e5\n    &#91; \"$mail\" != \"\" ] &amp;&amp; \\\n        (echo From: root@`hostname -d`\n         echo \"Subject: Blocked access from $IPADDR($HOST)\"\n         echo\n         cat \/var\/log\/swatchdog\/$IPADDR\n         echo\n         whois $IPADDR) | \\\n        `which sendmail` -t $mail\n\n    echo \"`date` $IPADDR($HOST) $cnt Blocked!\"\nelse\n    echo \"`date` $IPADDR($HOST) $cnt\"\nfi\n\n----------------\n\nswatchdog\u30a2\u30af\u30b7\u30e7\u30f3\u30b9\u30af\u30ea\u30d7\u30c8\u3078\u5b9f\u884c\u6a29\u9650\u4ed8\u52a0\n\n&#91;root@falcon21 ~]# chmod 700 \/usr\/local\/bin\/swatchdog_action.sh &lt;\/pre><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;pre>\/var\/log\/secure\u76e3\u8996\u7528\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210\n&#91;root@falcon21 ~]# vi \/etc\/swatchdog\/secure.conf\n\n# logfile \/var\/log\/secure\n\n# \u30a2\u30af\u30bb\u30b9\u7121\u8a31\u53ef\u30db\u30b9\u30c8\u304b\u3089\u306eSSH\u30ed\u30b0\u30a4\u30f3\u5931\u6557\u3092\u691c\u77e5\u3057\u305f\u3089\u8a72\u5f53\u30db\u30b9\u30c8\u304b\u3089\u306e\u30a2\u30af\u30bb\u30b9\u309224\u6642\u9593\u898f\u5236\n# \u203b\/etc\/hosts.deny\u3001\/etc\/hosts.allow\u3067\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u30db\u30b9\u30c8\u3092\u5236\u9650\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u524d\u63d0\nwatchfor \/sshd.*refused\/\n    pipe \"\/usr\/local\/bin\/swatchdog_action.sh '\\\\\\\\(|\\\\\\\\)' 2 block\"\n    threshold track_by=\/sshd.*refused\/,type=limit,count=1,seconds=10\n\n# \u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u30db\u30b9\u30c8\u304b\u3089\u306e\u30e6\u30fc\u30b6\u30fc\u540d\u8aa4\u308a\u306b\u3088\u308bSSH\u30ed\u30b0\u30a4\u30f3\u5931\u6557\u30923\u56de\u691c\u77e5\u3059\u308b\u3054\u3068\u306b\u8a72\u5f53\u30db\u30b9\u30c8\u304b\u3089\u306e\u30a2\u30af\u30bb\u30b9\u309224\u6642\u9593\u898f\u5236\nwatchfor \/sshd.*Failed password for invalid user\/\n    pipe \"\/usr\/local\/bin\/swatchdog_action.sh ' ' 13\"\n    threshold track_by=\/sshd.*Failed password for invalid user\/,type=limit,count=3,seconds=10\n\n# \u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u30db\u30b9\u30c8\u304b\u3089\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u8aa4\u308a\u306b\u3088\u308bSSH\u30ed\u30b0\u30a4\u30f3\u5931\u6557\u30923\u56de\u691c\u77e5\u3059\u308b\u3054\u3068\u306b\u8a72\u5f53\u30db\u30b9\u30c8\u304b\u3089\u306e\u30a2\u30af\u30bb\u30b9\u309224\u6642\u9593\u898f\u5236\nwatchfor \/sshd.*Failed password for\/\n    pipe \"\/usr\/local\/bin\/swatchdog_action.sh ' ' 11\"\n    threshold track_by=\/sshd.*Failed password for\/,type=limit,count=3,seconds=10\n\n# \u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u30db\u30b9\u30c8\u304b\u3089\u306eDovecot\u30ed\u30b0\u30a4\u30f3\u5931\u6557\u30923\u56de\u691c\u77e5\u3059\u308b\u3054\u3068\u306b\u8a72\u5f53\u30db\u30b9\u30c8\u304b\u3089\u306e\u30a2\u30af\u30bb\u30b9\u309224\u6642\u9593\u898f\u5236\n# \u203b\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u69cb\u7bc9\u6e08\u3067\u3042\u308b\u3053\u3068\nwatchfor \/auth: pam_unix\\(dovecot:auth\\): authentication failure\/\n    pipe \"\/usr\/local\/bin\/swatchdog_action.sh '=' 7\"\n    threshold track_by=\/auth: pam_unix\\(dovecot:auth\\): authentication failure\/,type=limit,count=3,seconds=10&lt;\/pre><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;pre>\u3000\u3000\u3000\u3000\u3000\u3000\n\u3000\u3000\u3000\u3000\u3000\u3000\/var\/log\/maillog\u76e3\u8996\u8a2d\u5b9a\n\n\n\/var\/log\/maillog\u76e3\u8996\u7528\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210\n&#91;root@falcon21 ~]# vi \/etc\/swatchdog\/maillog.conf\n# logfile \/var\/log\/maillog\n\n# \u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u3078\u306e\u4e0d\u6b63\u4e2d\u7d99\u30a2\u30af\u30bb\u30b9\u3092\u691c\u77e5\u3057\u305f\u3089\u8a72\u5f53\u30db\u30b9\u30c8\u304b\u3089\u306e\u30a2\u30af\u30bb\n\u30b9\u309224\u6642\u9593\u898f\u5236\n# \u203b\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u69cb\u7bc9\u6e08\u3067\u3042\u308b\u3053\u3068\nwatchfor \/postfix\\\/smtpd.*Relay access denied;\/\n    pipe \"\/usr\/local\/bin\/swatchdog_action.sh '\\\\\\\\&#91;|\\\\\\\\]' 4 block\"\n    threshold track_by=\/postfix\\\/smtpd.*Relay access denied;\/,type=limit,count=1,seconds=10\n\n# \u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u306eSASL\u8a8d\u8a3c\u5931\u6557\u30923\u56de\u691c\u77e5\u3059\u308b\u3054\u3068\u306b\u8a72\u5f53\u30db\u30b9\u30c8\u304b\u3089\u306e\u30a2\u30af>\u30bb\u30b9\u309224\u6642\u9593\u898f\u5236\n# \u203b\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u69cb\u7bc9\u6e08\u3067\u3042\u308b\u3053\u3068\nwatchfor \/postfix\\\/smtpd.*SASL .* authentication failed:\/\n    pipe \"\/usr\/local\/bin\/swatchdog_action.sh '\\\\\\\\&#91;|\\\\\\\\]' 4\"\n    threshold track_by=\/postfix\\\/smtpd.*SASL .* authentication failed:\/,type=limit,count=3,seconds=10\n\n&lt;\/pre><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;pre>SWATCH\u8d77\u52d5\u30b9\u30af\u30ea\u30d7\u30c8\u4f5c\u6210\n\n&#91;root@falcon21 ~]# vi \/etc\/rc.d\/init.d\/swatchdog\n#!\/bin\/bash\n#\n# swatchdog\n#\n# chkconfig: 2345 90 35\n# description: swatchdog start\/stop script\n\n# Source function library.\n#. \/etc\/rc.d\/init.d\/functions\n\nPATH=\/sbin:\/usr\/local\/bin:\/bin:\/usr\/bin\n\nmkdir -p \/var\/log\/swatchdog\n\nstart() {\n    # Start daemons.\n    ls \/var\/run\/swatchdog_*.pid > \/dev\/null 2>&amp;1\n    if &#91; $? -ne 0 ]; then\n        echo -n \"Starting swatchdog\"\n        pno=0\n        for conf in \/etc\/swatchdog\/*.conf\n        do\n            pno=`expr $pno + 1`\n            WATCHLOG=`grep \"^# logfile\" $conf | awk '{ print $3 }'`\n            swatchdog --config-file $conf --tail-file $WATCHLOG \\\n            --script-dir=\/tmp --awk-field-syntax --use-cpan-file-tail --daemon \\\n            --pid-file \/var\/run\/swatchdog_$pno.pid \\\n            >> \/var\/log\/swatchdog\/swatchdog.log 2>&amp;1\n            RETVAL=$?\n            &#91; $RETVAL != 0 ] &amp;&amp; return $RETVAL\n        done\n        echo\n        &#91; $RETVAL = 0 ] &amp;&amp; touch \/var\/lock\/subsys\/swatchdog\n        return $RETVAL\n    else\n        echo \"swatchdog is already started\"\n    fi\n}\n\nstop() {\n    # Stop daemons.\n    ls \/var\/run\/swatchdog_*.pid > \/dev\/null 2>&amp;1\n    if &#91; $? -eq 0 ]; then\n        echo -n \"Shutting down swatchdog\"\n        for pid in \/var\/run\/swatchdog_*.pid\n        do\n           kill $(cat $pid)\n           rm -f $pid\n        done\n        echo\n        rm -f \/var\/lock\/subsys\/swatchdog \/tmp\/.swatchdog_script.*\n    else\n        echo \"swatchdog is not running\"\n    fi\n}\n\nstatus() {\n    ls \/var\/run\/swatchdog_*.pid > \/dev\/null 2>&amp;1\n    if &#91; $? -eq 0 ]; then\n        echo -n \"swatchdog (pid\"\n        for pid in \/var\/run\/swatchdog_*.pid\n        do\n           echo -n \" `cat $pid`\"\n        done\n        echo \") is running...\"\n    else\n        echo \"swatchdog is stopped\"\n    fi\n}\n\ncase \"$1\" in\n  start)\n        start\n        ;;\n  stop)\n        stop\n        ;;\n  restart)\n        stop\n        start\n        ;;\n  status)\n        status\n        ;;\n   *)\n        echo \"Usage: swatchdog {start|stop|restart|status}\"\n        exit 1\nesac\n\nexit $RETVAL\n\n----------------\n\nSWATCH\u8d77\u52d5\u30b9\u30af\u30ea\u30d7\u30c8\u3078\u5b9f\u884c\u6a29\u9650\u4ed8\u52a0\n&#91;root@falcon21 ~]# chmod +x \/etc\/rc.d\/init.d\/swatchdog&lt;\/pre><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><br><strong>SWATCH\u8d77\u52d5<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>systemctl enable &#8211;now swatchdog<\/strong><br>swatchdog.service is not a native service, redirecting to systemd-sysv-install.<br>Executing: \/usr\/lib\/systemd\/systemd-sysv-install enable swatchdog<br>swatchdog.service \u306f\u30cd\u30a4\u30c6\u30a3\u30d6\u30b5\u30fc\u30d3\u30b9\u3067\u306f\u306a\u3044\u305f\u3081\u3001systemd-sysv-install \u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3055\u308c\u307e\u3059\u3002<br>\u5b9f\u884c\u4e2d: \/usr\/lib\/systemd\/systemd-sysv-install enable swatchdog<br>Failed to execute&nbsp;<strong>\/usr\/lib\/systemd\/systemd-sysv-install: \u305d\u306e\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3042\u308a\u307e\u305b\u3093<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>\/etc\/rc.d\/init.d\/swatchdog start<\/strong><br>\/etc\/rc.d\/init.d\/swatchdog: \u884c 9: \/etc\/rc.d\/init.d\/functions: \u305d\u306e\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3042\u308a\u307e\u305b\u3093<br><strong>Starting swatchdog<\/strong><br><br>root@falcon21:~#&nbsp;<strong>vi \/etc\/rc.d\/init.d\/swatchdog<\/strong><br>9 #. \/etc\/rc.d\/init.d\/functions\u3000\u3000\u3000\u3000\u30b3\u30e1\u30f3\u30c8\u5316<br><br>[root@falcon21 ~]# \/etc\/rc.d\/init.d\/swatchdog start<br>Starting swatchdog\/etc\/rc.d\/init.d\/swatchdog: \u884c 25: \/var\/log\/swatch\/swatchdog.log: \u305d\u306e\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u3084 \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3042\u308a\u307e\u305b\u3093<br>\u3000\u3000\u3000\uff0a\uff0a\uff0a\u3000\/var\/log\/swatch\/swatchdog.log:\u3092\u4fee\u6b63\u3000\/var\/log\/<strong>swatchdog<\/strong>\/swatchdog.log:<br><br><br>[root@falcon21 ~]#&nbsp;<strong>\/etc\/rc.d\/init.d\/swatchdog start<\/strong><br>Starting swatchdog<br>\u3000\u3000\u6b63\u5e38\u30b9\u30bf\u30fc\u30c8<br><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>SWATCHDOG\u8d77\u52d5\u30b9\u30af\u30ea\u30d7\u30c8\u3092checonfig\u3078\u767b\u9332<\/strong><br>[root@falcon21 ~]#\u00a0<strong>chkconfig &#8211;add swatchdog<\/strong><br>bash: chkconfig: \u30b3\u30de\u30f3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f&#8230;<br>\u30b3\u30de\u30f3\u30c9 chkconfig&#8217; \u3092\u63d0\u4f9b\u3059\u308b\u305f\u3081\u306b\u30d1\u30c3\u30b1\u30fc\u30b8 &#8216;chkconfig&#8217; \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u304b? [N\/y] y<br><br>chkconfig-1.30-2.el10.x86_64 A system tool for maintaining the \/etc\/rc*.d hierarchy<br>\u5909\u66f4\u3057\u305f\u307e\u307e\u7d99\u7d9a\u3057\u307e\u3059\u304b\uff1f [N\/y] y<br><br><br>* \u30ad\u30e5\u30fc\u3067\u5f85\u6a5f\u4e2d&#8230;<br>* \u8a8d\u8a3c\u3092\u5f85\u3061\u53d7\u3051\u4e2d&#8230;<br>* \u30ad\u30e5\u30fc\u3067\u5f85\u6a5f\u4e2d&#8230;<br>* \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u4e2d&#8230;<br>* \u30c7\u30fc\u30bf\u3092\u8981\u6c42\u4e2d&#8230;<br>* \u5909\u66f4\u3092\u30c6\u30b9\u30c8\u4e2d&#8230;<br>* \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u4e2d&#8230;<br><br>[root@falcon21 ~]#\u00a0<strong>chkconfig &#8211;add swatchdog<\/strong>\u00a0\u3000\u3000\u3000<br>\u3000\u30a8\u30e9\u30fc\u7121\u3057<br><br><br><strong>SWATCHDOG\u81ea\u52d5\u8d77\u52d5\u8a2d\u5b9a<\/strong><br>[root@falcon21 ~]#\u00a0<strong>chkconfig swatchdog on<\/strong><br><br><br><strong>SWATCHDOG\u81ea\u52d5\u8d77\u52d5\u8a2d\u5b9a\u78ba\u8a8d<\/strong><br>[root@falcon21 ~]#\u00a0<strong>chkconfig &#8211;list swatchdog<\/strong><br><br>\u6ce8\u8a18: \u3053\u306e\u51fa\u529b\u306b\u542b\u307e\u308c\u308b\u306e\u306f SysV \u30b5\u30fc\u30d3\u30b9\u306e\u307f\u3067\u3059\u3002\u30cd\u30a4\u30c6\u30a3\u30d6\u306a<br>\u3000\u3000systemd \u30b5\u30fc\u30d3\u30b9\u306f\u542b\u307e\u308c\u307e\u305b\u3093\u3002SysV \u306e\u8a2d\u5b9a\u30c7\u30fc\u30bf\u306f\u30cd\u30a4\u30c6\u30a3\u30d6\u306a<br>\u3000\u3000\u3000systemd \u8a2d\u5b9a\u3067\u4e0a\u66f8\u304d\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<br><br>\u3000\u3000<strong>systemd \u30b5\u30fc\u30d3\u30b9\u3092\u4e00\u89a7\u8868\u793a<\/strong>\u3059\u308b\u5834\u5408\u306f<br>\u3000\u3000#\u00a0<strong>systemctl list-unit-files<\/strong><br>\u3000<br>\u3000\u3000<strong>\u7279\u5b9a\u306e\u30bf\u30fc\u30b2\u30c3\u30c8<\/strong>\u3067\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u308b\u30b5\u30fc\u30d3\u30b9\u3092\u78ba\u8a8d\u3059\u308b\u5834\u5408\u306f<br>\u3000\u3000<strong>systemctl list-dependencies\u00a0target<\/strong>\u00a0\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<br><br>swatchdog \u30000:off \u3000\u30001:off \u3000\u30002:on \u3000\u30003:on \u3000\u30004:on \u3000\u30005:on \u3000\u30006:off<br><br>&#8212;&#8212;&#8212;&#8212;&#8212;-<br><br><strong>systemd \u30b5\u30fc\u30d3\u30b9\u3092\u4e00\u89a7\u8868\u793a<\/strong>\u3000\u3000\u3000<br>[root@falcon21 ~]# <strong>systemctl list-dependencies swatchdog<\/strong> <br>swatchdog.service <br>\u25cf \u251c\u2500system.slice <br>\u25cf \u2514\u2500sysinit.target <br>\u25cf \u251c\u2500dev-hugepages.mount <br>\u25cf \u251c\u2500dev-mqueue.mount <br>\u25cf\u251c\u2500dracut-shutdown.service<br> \u25cb \u251c\u2500fips-crypto-policy-overlay.service<br> \u25cb \u251c\u2500iscsi-onboot.service<br> \u25cb \u251c\u2500iscsi-starter.service<br> \u25cf \u251c\u2500kmod-static-nodes.service<br> \u25cb \u251c\u2500ldconfig.service<br> \u25cf \u251c\u2500lvm2-lvmpolld.socket<br> \u25cf \u251c\u2500lvm2-monitor.service<br> \u25cb \u251c\u2500multipathd.service<br> \u25cf \u251c\u2500plymouth-read-write.service<br> \u25cf \u251c\u2500plymouth-start.service<br> \u25cf \u251c\u2500proc-sys-fs-binfmt_misc.automount<br> \u25cb \u251c\u2500selinux-autorelabel-mark.service<br> \u25cf \u251c\u2500sys-fs-fuse-connections.mount<br> \u25cf \u251c\u2500sys-kernel-config.mount <br>\u25cf \u251c\u2500sys-kernel-debug.mount<br> \u25cf \u251c\u2500sys-kernel-tracing.mount<br> \u25cb \u251c\u2500systemd-ask-password-console.path<br> \u25cb \u251c\u2500systemd-binfmt.service<br> \u25cb \u251c\u2500systemd-boot-random-seed.service<br> \u25cb \u251c\u2500systemd-confext.service<br> \u25cb \u251c\u2500systemd-firstboot.service<br> \u25cb \u251c\u2500systemd-hibernate-clear.service<br> \u25cb \u251c\u2500systemd-hwdb-update.service<br> \u25cb \u251c\u2500systemd-journal-catalog-update.service<br> \u25cf \u251c\u2500systemd-journal-flush.service<br> \u25cf \u251c\u2500systemd-journald.service<br> \u25cb \u251c\u2500systemd-machine-id-commit.service<br> \u25cf \u251c\u2500systemd-modules-load.service<br> \u25cf \u251c\u2500systemd-network-generator.service<br> \u25cb \u251c\u2500systemd-pcrmachine.service<br> \u25cb \u251c\u2500systemd-pcrphase-sysinit.service<br> \u25cb \u251c\u2500systemd-pcrphase.service<br> \u25cb \u251c\u2500systemd-pstore.service<br> \u25cf \u251c\u2500systemd-random-seed.service<br> \u25cb \u251c\u2500systemd-repart.service<br> \u25cf \u251c\u2500systemd-sysctl.service<br> \u25cb \u251c\u2500systemd-sysext.service<br> \u25cb \u251c\u2500systemd-sysusers.service<br> \u25cf \u251c\u2500systemd-tmpfiles-setup-dev-early.service<br> \u25cf \u251c\u2500systemd-tmpfiles-setup-dev.service<br> \u25cf \u251c\u2500systemd-tmpfiles-setup.service<br> \u25cb \u251c\u2500systemd-tpm2-setup-early.service<br> \u25cb \u251c\u2500systemd-tpm2-setup.service<br> \u25cf \u251c\u2500systemd-udev-trigger.service<br> \u25cf \u251c\u2500systemd-udevd.service<br> \u25cb \u251c\u2500systemd-update-done.service<br> \u25cf \u251c\u2500systemd-update-utmp.service<br> \u25cf \u251c\u2500cryptsetup.target<br> \u25cf \u251c\u2500integritysetup.target <br> \u25cf \u251c\u2500local-fs.target <br> \u25cf \u2502 \u251c\u2500-.mount<br> \u25cf \u2502 \u251c\u2500boot-efi.mount<br> \u25cf \u2502 \u251c\u2500boot.mount <br> \u25cf \u2502 \u251c\u2500home.mount<br> \u25cf \u2502 \u251c\u2500systemd-remount-fs.service<br> \u25cf \u2502 \u2514\u2500tmp.mount<br> \u25cf \u251c\u2500swap.target<br> \u25cf \u2502 \u2514\u2500dev-disk-by\\x2duuid-5325b837\\x2db6a6\\x2d4277\\x2d8143\\x2dce48286cc194.swap<br> \u25cf \u2514\u2500veritysetup.target<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>\u30a2\u30af\u30bb\u30b9\u898f\u5236\u89e3\u9664\u4e88\u7d04\u524a\u9664\u51e6\u7406\u30b9\u30af\u30ea\u30d7\u30c8\u4f5c\u6210<\/strong><br>[root@falcon21 ~]# <strong>vi swatchdogatrm<\/strong> <br>#!\/bin\/bash <br><br># \u30a2\u30af\u30bb\u30b9\u898f\u5236\u89e3\u9664\u4e88\u7d04\u524a\u9664\u51e6\u7406 <br><br># # \u5f15\u6570\u3067\u6307\u5b9a\u3057\u305f\u56de\u6570\u4ee5\u4e0a\u306e\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3092\u8a18\u9332\u3057\u305fIP\u30a2\u30c9\u30ec\u30b9\u306e\u30a2\u30af\u30bb\u30b9\u898f\u5236\u89e3\u9664\u4e88\u7d04\u3092\u524a\u9664\u3057\u3066<br> # \u8a72\u5f53IP\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u306e\u30a2\u30af\u30bb\u30b9\u3092\u6c38\u4e45\u306b\u898f\u5236\u3059\u308b<br> # \u5f15\u6570\u306b0\u3092\u6307\u5b9a\u3057\u305f\u5834\u5408\u306f\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u8a18\u9332\u56de\u6570\u306e\u307f\u8868\u793a\u3057\u3066\u898f\u5236\u89e3\u9664\u4e88\u7d04\u306e\u524a\u9664\u306f\u884c\u308f\u306a\u3044 <br><br>[ $# -ne 1 ] &amp;&amp; echo &#8220;usage is ${0} cnt&#8221; &amp;&amp; exit 1<br> for atq in `atq|awk &#8216;{print $1}&#8217;` <br>do <br>         at -c ${atq}|grep &#8220;iptables -D INPUT -s &#8221; > \/dev\/null 2>&amp;1 || continue<br>         ip=`at -c ${atq}|grep &#8220;iptables -D INPUT -s &#8220;|sed -e &#8216;s\/.*iptables -D INPUT -s \\([^ ]*\\) -j DROP.*\/\\1\/p&#8217; -e d`<br>         if [ ${1} -eq 0 ];then echo -e &#8220;${ip}\\t`cat \/var\/log\/swatchdog\/${ip}|wc -l`&#8221;<br>         else<br>                 cnt=`cat \/var\/log\/swatchdog\/${ip}|wc -l`<br>                 [ ${cnt} -ge ${1} ] &amp;&amp; \\ <br>                 atrm ${atq} &amp;&amp; echo -e &#8220;${ip}\\\\t`cat \/var\/log\/swatchdog\/${ip}|wc -l`&#8221;<br>           fi <br>done<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><br><br>\u4e00\u65e6\u518d\u8d77\u52d5\u3057\u3066<br>[root@falcon21 ~]#&nbsp;<strong>reboot<\/strong><br><br><br><strong>\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u8a18\u9332\u56de\u6570\u306e\u591a\u3044\u9806\u306b\u30a2\u30af\u30bb\u30b9\u898f\u5236\u89e3\u9664\u5f85\u3061IP\u30a2\u30c9\u30ec\u30b9\u3092\u8868\u793a<\/strong>&nbsp;<br>[root@falcon21 ~]#&nbsp;<strong>sh swatchdogatrm 0|sort -n -k 2 -r<\/strong><br>80.94.92.166 4<br>207.154.233.29 4<br>161.35.94.112 4<br>60.211.241.242 3<br>45.153.34.87 3<br>193.46.255.99 3<br>193.46.255.217 3<br>193.32.162.157 3<br>185.156.73.233 3<br><br><br><strong>\uff13\u56de\u4ee5\u4e0a\u306e\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3092\u8a18\u9332\u3057\u305fIP\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u306e\u30a2\u30af\u30bb\u30b9\u3092\u6c38\u4e45\u306b\u898f\u5236<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>sh swatchdogatrm 3<\/strong><br>45.153.34.87 3<br>193.32.162.157 3<br>193.46.255.99 3<br>193.46.255.217 3<br>185.156.73.233 3<br>80.94.92.166 4<br>161.35.94.112 4<br>207.154.233.29 4<br>60.211.241.242 3<br><br><br><strong>\u524a\u9664\u3092\u78ba\u8a8d<\/strong><br>[root@falcon21 ~]#&nbsp;<strong>sh swatchdogatrm 0|sort -n -k 2 -r<\/strong><br>80.94.93.233 3<br><br>\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong><br>\u30b9\u30af\u30ea\u30d7\u30c8\u30b3\u30de\u30f3\u30c9sh swatchdogatrm 3\u3000\u3092\u3000etc\/crontab \u306b\u66f8\u304d\u8fbc\u307f\u6bce\u65e5\u5b9a\u6642\u5b9f\u884c\u3059\u308b\u3002<\/strong><br>[root@falcon21 ~]#<strong>&nbsp;crontab -e<\/strong><br><br>00 01 * * * perl \/usr\/sbin\/pflogsumm -e -d yesterday \/var\/log\/maillog | mail -s &#8216;Logwatch for Postfix&#8217; root<br>00 02 * * * perl \/usr\/local\/awstats\/wwwroot\/cgi-bin\/awstats.pl -update -config=falcon21.space<br>05 02 * * * perl \/usr\/local\/awstats\/wwwroot\/cgi-bin\/awstats.pl -output=pagetype -config=falcon21.space<br><strong>00 05 * * * sh swatchdogatrm 3 -e -d yesterday \/var\/log\/swatchdog | mail -s &#8216;swatchdog log&#8217; root<\/strong><br>~<br>crontab: installing new crontab<br>Backup of root&#8217;s previous crontab saved to \/root\/.cache\/crontab\/crontab.bak<br><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>swatchdog \u306e\u30de\u30cb\u30e5\u30a2\u30eb \u30da\u30fc\u30b8<\/strong><br>$&nbsp;<strong>man swatchdog<\/strong><br><\/p>\n\n\n\n<p><strong>\u3084\u3063\u3068\u3001\u6210\u529f\u30002025\u5e7412\u670829\u65e5 19:32:51<\/strong><br><br>\u30b5\u30fc\u30d0\u30fc\u518d\u69cb\u7bc9\u5f8c\u3000\u78ba\u8a8d\u306f\u3000<strong>2026\u5e741\u670829\u65e5 17:01:09<\/strong><br><br>***********************************************************************<br><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><br><strong>\u30d7\u30ed\u30bb\u30b9ID\u3092\u7279\u5b9a\u3057\u3066\u505c\u6b62\u3059\u308b<\/strong> [root@falcon21 ~]# <strong>ps -ef | grep swatchdog<\/strong><br>root\u3000\u3000\u3000 <strong>6271<\/strong> \u3000\u3000\u30006232 \u30000 \u300010:31 pts\/0 \u3000\u300000:00:00 <strong>\/usr\/bin\/perl \/usr\/local\/bin\/swatchdog<\/strong><br>root \u3000\u3000\u30006272 \u3000\u3000\u30006271 \u30000 \u300010:31 pts\/0 \u3000\u300000:00:00 \/usr\/bin\/perl \/root\/.swatchdog_script.6271<br>root \u3000\u3000\u30007769 \u3000\u3000\u30006232 \u30000 \u300012:59 pts\/0 \u3000\u300000:00:00 grep &#8211;color=auto swatchdog<br><br>[root@falcon21 ~]# <strong>kill 6271<\/strong><br>Caught a SIGTERM &#8212; sending a TERM signal to 6272<br>[root@falcon21 ~]# <strong>kill 6272<\/strong><br>-bash: kill: (6272) &#8211; \u305d\u306e\u3088\u3046\u306a\u30d7\u30ed\u30bb\u30b9\u306f\u3042\u308a\u307e\u305b\u3093<br>[1]+ \u7d42\u4e86 swatchdog<br><br>&#8212;&#8212;&#8212;&#8212;&#8212;-<br><br><strong>\u540d\u524d\u3092\u6307\u5b9a\u3057\u3066\u4e00\u62ec\u505c\u6b62\u3059\u308b<\/strong> [root@falcon21 ~]# <strong>pkill swatchdog<\/strong><br><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><br><br>***********************************************************************<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>watch\u3000yum \/dnf\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u51fa\u6765\u306a\u3044 \u3000\u3000Swatch\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u5fc5\u8981\u306aperl-File-Tail \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb[root@falcon21 ~]#&nbsp;dnf install perl-File [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-262","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/falcon21.space\/kazuya\/work\/index.php?rest_route=\/wp\/v2\/pages\/262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/falcon21.space\/kazuya\/work\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/falcon21.space\/kazuya\/work\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/falcon21.space\/kazuya\/work\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/falcon21.space\/kazuya\/work\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=262"}],"version-history":[{"count":1,"href":"https:\/\/falcon21.space\/kazuya\/work\/index.php?rest_route=\/wp\/v2\/pages\/262\/revisions"}],"predecessor-version":[{"id":263,"href":"https:\/\/falcon21.space\/kazuya\/work\/index.php?rest_route=\/wp\/v2\/pages\/262\/revisions\/263"}],"wp:attachment":[{"href":"https:\/\/falcon21.space\/kazuya\/work\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}