{"id":350,"date":"2013-07-02T05:17:52","date_gmt":"2013-07-02T05:17:52","guid":{"rendered":"http:\/\/www.selinuxplus.com\/?p=350"},"modified":"2013-07-02T05:23:51","modified_gmt":"2013-07-02T05:23:51","slug":"linux-%e7%b3%bb%e7%bb%9f%e5%b8%b8%e7%94%a8%e8%84%9a%e6%9c%ac","status":"publish","type":"post","link":"http:\/\/www.selinuxplus.com\/?p=350","title":{"rendered":"Linux \u7cfb\u7edf\u5e38\u7528\u811a\u672c"},"content":{"rendered":"<p>1 \u83b7\u5f97\u5185\u5b58\u786c\u4ef6\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\necho \"  Locator   Size     Speed        Form Factor   Type       Type Detail\"\r\necho \"  ========= ======== ============ ============= ========== ===========\"\r\ndmidecode \\\r\n|sed -e '\/.\/{H;$!d;}'\\\r\n \t-e 'x;\/Memory Device\\n\/!d;'\\\r\n \t-e 's\/: \/:\/g'\\\r\n \t-e 's\/&lt;\/{\/g' -e 's\/&gt;\/}\/g' \\\r\n\t-e 's\/[ \\t]*\\n\/\\n\/g'\\\r\n|awk -F: '\/Size|Type|Form.Factor|Type.Detail|[^ ]Locator\/{printf (\"|%s\",$2)}\/Speed\/{print \"|\" $2}'\\\r\n|sed -e 's\/No Module Installed\/{EMPTY}\/'\\\r\n|sort \\\r\n| awk -F'|' '{printf (\" %-10s %-8s %-12s %-13s %-10s %-8s\\n\", $4,$2,$7,$3,$5,$6);}'<\/pre>\n<p>2 \u83b7\u5f97\u8bbe\u5907\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com selinuxplus.com\r\ndf -kP |grep \/|awk -F' ' '{print $6\":\"$5}'|awk -F'%' '{print $1}'|tr -s '\\n' ';'<\/pre>\n<p>3 \u83b7\u5f97\u5206\u533a\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\nname_val() {\r\n   printf \"%12s | %s\\n\" \"$1\" \"$2\"\r\n}\r\n[ -f \/tmp\/diskinfo ] &amp;&amp; &gt;\/tmp\/diskinfo\r\nfor disk in $(ls \/sys\/block\/ | grep -v ram | grep -v loop); do\r\n      if [ -e \"\/sys\/block\/${disk}\/queue\/scheduler\" ]; then\r\n         name_val \"${disk}\" \"$(cat \/sys\/block\/${disk}\/queue\/scheduler | grep -o '\\[.*\\]') $(cat \/sys\/block\/${disk}\/queue\/nr_requests)\"\r\n         fdisk -l \"\/dev\/${disk}\" &gt;&gt; \/tmp\/diskinfo 2&gt;\/dev\/null\r\n      fi\r\n   done\r\nawk '\r\n      BEGIN {\r\n         format=\"%-12s %4s %10s %10s %18s\\n\";\r\n         printf(format, \"Device\", \"Type\", \"Start\", \"End\", \"Size\");\r\n         printf(format, \"============\", \"====\", \"==========\", \"==========\", \"==================\");\r\n      }\r\n      \/Disk.*bytes\/ {\r\n         disk = substr($2, 1, length($2) - 1);\r\n         size = $5;\r\n         printf(format, disk, \"Disk\", \"\", \"\", size);\r\n      }\r\n      \/Units\/ {\r\n         units = $9;\r\n      }\r\n      \/^\\\/dev\/ {\r\n         if ( $2 == \"*\" ) {\r\n            start = $3;\r\n            end   = $4;\r\n         }\r\n         else {\r\n            start = $2;\r\n            end   = $3;\r\n         }\r\n         printf(format, $1, \"Part\", start, end, (end - start) * units);\r\n      }\r\n   ' \/tmp\/diskinfo<\/pre>\n<p>4 \u83b7\u5f97cfq I\/O\u8c03\u5ea6\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com selinuxplus.com\r\nname_val() {\r\n   printf \"%12s | %s\\n\" \"$1\" \"$2\"\r\n}\r\nfor disk in $(ls \/sys\/block\/ | grep -v ram | grep -v loop); do\r\n   if [ -e \"\/sys\/block\/${disk}\/queue\/scheduler\" ]; then\r\n      \tname_val \" ${disk}\"   \"\t$(cat \/sys\/block\/${disk}\/queue\/scheduler | grep -o '\\[.*\\]') $(cat \/sys\/block\/${disk}\/queue\/nr_requests)\"\r\n\t fdisk -l \"\/dev\/${disk}\" &gt;&gt; \/tmp\/diskpartion 2&gt;\/dev\/null\r\n   fi\r\ndone<\/pre>\n<p>5 \u83b7\u5f97fstab\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\nawk '\r\n{printf \"%-26s %-12s %-8s %-16s %-1s %-1s \\n\",$1,$2,$3,$4,$5,$6}' \/etc\/fstab  |grep  -v ^# |grep  -v ^$\r\nprintf \"advice&gt;&gt;&gt;\"\r\necho \"fstab\" &gt;&gt;\/tmp\/NKevent\r\nawk '($2 ~ \/\\\/tmp|\\\/boot|\\\/dev\\\/shm|\\\/var\\\/log\\\/audit\/ )\\\r\n{ $4 = $4 \",nosuid,noexec,nodev\"} ($2 ~ \/\\\/home\/  )\\\r\n{ $4 = $4 \",nosuid,nodev\" }($2 ~ \/\\\/var\/ ){ $4 = $4 \",nosuid\"};\\\r\n{printf \"%-26s %-12s %-8s %-16s %-1s %-1s \\n\",$1,$2,$3,$4,$5,$6}' \/etc\/fstab  |grep  -v ^# |grep  -v ^$<\/pre>\n<p>6 \u83b7\u5f97inode\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com selinuxplus.com\r\nname_val() {\r\n   printf \"%12s | %s\\n\" \"$1\" \"$2\"\r\n}\r\n\r\nfor file in dentry-state file-nr inode-nr; do\r\n      name_val \"${file}\" \"$(cat \/proc\/sys\/fs\/${file} )\"\r\ndone<\/pre>\n<p>7 \u83b7\u5f97\u6302\u8f7d\u70b9\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\nsfile1=\/tmp\/sysmount1\r\nsfile2=\/tmp\/sysmount2\r\n    df -hP | sort &gt; ${sfile1}\r\n    mount | sort | join ${sfile1} - &gt; ${sfile2}\r\nspec=\"$(awk '\r\n      BEGIN {\r\n         f=10;\r\n         m=0;\r\n         t=0;\r\n      }\r\n      \/.\/ {\r\n         if ( length($1) &gt; f ) {\r\n            f=length($1);\r\n         }\r\n         if ( length($11) &gt; m ) {\r\n            m=length($11);\r\n         }\r\n         if ( length($10) &gt; t ) {\r\n            t=length($10);\r\n         }\r\n      }\r\n      END{ \r\n\t print \"%-\" f \"s %5s %4s %-\" t \"s  %s\";\r\n\r\n      }\r\n   ' ${sfile2})\";\r\n   awk \"\r\n      BEGIN {\r\n         spec=\\\"  ${spec}\\n\\\";\r\n       printf spec, \\\"Filesystem\\\", \\\"Size\\\", \\\"Used\\\", \\\"Type\\\", \\\"Mountpoint\\\";\r\n      }\r\n      {\r\n         printf spec, \\$1, \\$2, \\$3, \\$5, \\$6\r\n      }\" ${sfile2}\r\nrm ${sfile2} ${sfile1}<\/pre>\n<p>8 \u83b7\u5f97netstat\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com selinuxplus.com\r\nnetfile=\/tmp\/netstat\r\nnetstat -antp &gt;${netfile}\r\necho \"  Connections from remote IP addresses\"\r\nawk '$1 ~ \/^tcp\/ &amp;&amp; $5 ~ \/^[1-9]\/ {\r\n      print substr($5, 0, index($5, \":\") - 1);\r\n   }' ${netfile} | sort | uniq -c \\\r\n      | awk '{printf \"    %-15s %5d\\n\", $2, $1}' \\\r\n      | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4\r\n   echo \"  Connections to local IP addresses\"\r\n   awk '$1 ~ \/^tcp\/ &amp;&amp; $5 ~ \/^[1-9]\/ {\r\n      print substr($4, 0, index($4, \":\") - 1);\r\n   }' ${netfile} | sort | uniq -c \\\r\n      | awk '{printf \"    %-15s %5d\\n\", $2, $1}' \\\r\n      | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4\r\n   echo \"  Connections to top 10 local ports\"\r\n   awk '$1 ~ \/^tcp\/ &amp;&amp; $5 ~ \/^[1-9]\/ {\r\n      print substr($4, index($4, \":\") + 1);\r\n   }' ${netfile} | sort | uniq -c | sort -rn | head -n10 \\\r\n      | awk '{printf \"    %-15s %5d\\n\", $2, $1}' | sort\r\n   echo \"  States of connections\"\r\n   awk '$1 ~ \/^tcp\/ {\r\n      print $6;\r\n   }' ${netfile} | sort | uniq -c | sort -rn \\\r\n      | awk '{printf \"    %-15s %5d\\n\", $2, $1}' | sort\r\nrm ${netfile}<\/pre>\n<p>9 \u83b7\u5f97netstat \u94fe\u63a5\u72b6\u6001\u7684\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com selinuxplus.com\r\nnetstat -n |awk '\/^tcp\/{++S[$NF]}END {for (a in S) print a,S[a]}'\r\n<\/pre>\n<p>10\u83b7\u5f97selinux \u76f8\u5173\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com selinuxplus.com\r\nselogin=\/tmp\/semanage_login\r\nseuser=\/tmp\/semanage_user\r\nsemanage login -l &gt;${selogin}\r\nsemanage user -l &gt;${seuser}\r\nsed -i '1,3d' ${seuser}\r\nprintf \"***The Selinux Login List:&gt;&gt;&gt;\\n\"\r\ncat ${selogin}\r\n\r\nspec=\"$(awk '\r\n      BEGIN {\r\n         f=8;\r\n         m=10;\r\n         t=0;\r\n      }\r\n      \/.\/ {\r\n         if ( length($1) &gt; f ) {\r\n            f=length($1);\r\n         }\r\n         if ( length($4) &gt; m ) {\r\n            m=length($4);\r\n         }\r\n      }\r\n      END{ \r\n\t print \"%-\"f \"s %-8s %-8s %-\"m \"s %-s %s %s %s\";\r\n\r\n      }\r\n   ' ${seuser})\";\r\n   awk \"\r\n      BEGIN {\r\n         spec=\\\"  ${spec}\\n\\\";\r\n\tprintf \\\"***The Selinux User List:&gt;&gt;&gt;\\n\\n\\\"\r\n       printf spec, \\\"\\\", \\\"Labeling\\\", \\\"MLS\/\\\", \\\"MLS\/\\\", \\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\";\r\n       printf spec, \\\"SEL User\\\", \\\"Prefix\\\", \\\"MCSLevel\\\", \\\" MCSRange\\\", \\\"SEL Roles\\\",\\\"\\\",\\\"\\\",\\\"\\\";\r\n      }\r\n      {\r\n         printf spec, \\$1, \\$2, \\$3, \\$4, \\$5,\\$6,\\$7,\\$8\r\n      }\" ${seuser}\r\n\r\n\r\nrm ${seuser} ${selogin}<\/pre>\n<p>11 \u83b7\u5f97tcp-warpper\u9650\u5236<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\nHOSTSALLOW=\/etc\/hosts.allow\r\ncat \/etc\/hosts.allow|grep -v ^#\r\nif [ $? != 0 ];then\r\nprintf \"The Hosts.allow is Null\\n\"\r\nfi\r\nfor I in $(ifconfig |grep \"inet addr\"|cut -f2 -d: |cut -f1-3 -d\".\"|grep -v ^127|sort -n)\r\ndo\r\nif ! grep  -q ${I}  ${HOSTSALLOW} ;then\r\nprintf \"advice&gt;&gt;&gt;\\n\"\r\nprintf \"ALL:localhost,${I}.\\n\"\r\nfi\r\ndone\r\n\r\nHOSTSDENY=\/etc\/hosts.deny\r\n<\/pre>\n<p>12 \u83b7\u5f97linux snmp\u8bbe\u7f6e\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\ncat \/etc\/snmp\/snmpd.conf |grep mib-2\r\ncat \/etc\/snmp\/snmpd.conf |grep ^\"view mib2\"\r\nif [ $? != 0 ];then\r\nprintf \"advice&gt;&gt;&gt;\\n\"\r\necho \"snmpd mgmt\"&gt;&gt;\/tmp\/NKevent\r\nprintf \"view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc\\n\"\r\nfi\r\n#cat \/etc\/snmp\/snmpd.conf |grep \"systemview none\"\r\ncat \/etc\/snmp\/snmpd.conf |grep \"exact mib2\"\r\nif [ $? != 0 ];then\r\nprintf \"advice&gt;&gt;&gt;\\n\"\r\necho \"snmpd mib2\"&gt;&gt;\/tmp\/NKevent\r\nprintf \"access notConfigGroup \"\" any noauth exact mib2 none none\\n\"\r\nfi<\/pre>\n<p>12 \u83b7\u5f97\u7cfb\u7edf\u5e38\u7528\u65e5\u5fd7\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\ncd \/var\/log &gt;\/dev\/null\r\nfor LOGF in\t\\\r\n\tboot.log\t\\\r\n\tbtmp\t\t\\\r\n\tcron\t\t\\\r\n\tdmesg\t\t\\\r\n\tksyms\t\t\\\r\n\thttpd\t\t\\\r\n\tlastlog\t\t\\\r\n\tmaillog\t\t\\\r\n\tmailman\t\t\\\r\n\tmessages\t\\\r\n\tnews\t\t\\\r\n\tpgsql\t\t\\\r\n\trpmpkgs\t\t\\\r\n\tsa\t\t\\\r\n\tsamba\t\t\\\r\n\tscrollkeeper.log\\\r\n\tsecure\t\t\\\r\n\tspooler\t\t\\\r\n\tsquid\t\t\\\r\n\tvbox\t\t\\\r\n\twtmp\t\t\r\ndo\r\n\tif [ -e ${LOGF} ];then\r\n\tls -l  ${LOGF} |grep -v total\r\nfi \r\ndone\r\ncd -  &gt;\/dev\/null<\/pre>\n<p>13 \u83b7\u5f97\u7cfb\u7edf\u9650\u5236\u94fe\u63a5\u6570<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\nlimit=\/tmp\/limit\r\ncat \/etc\/security\/limits.conf | grep -v \"^#\" |grep -v ^$   &gt;${limit}\r\nspec=\"$(awk '\r\n      BEGIN {\r\n         f=8;\r\n         m=8;\r\n         t=10;\r\n      }\r\n      \/.\/ {\r\n         if ( length($2) &gt; f ) {\r\n            f=length($2);\r\n         }\r\n         if ( length($3) &gt; m ) {\r\n            m=length($3);\r\n         }\r\n         if ( length($4) &gt; t ) {\r\n            t=length($4);\r\n         }\r\n      }\r\n      END{ \r\n\t print \"%10s %\"f\"s %\" m \"s %\" t \"s\";\r\n\r\n      }\r\n   '  ${limit} )\";\r\n   awk   \"\r\n      BEGIN {\r\n         spec=\\\"  ${spec}\\n\\\";\r\n     \t  printf spec, \\\"&lt;domain&gt;\\\" ,\\\"&lt;type&gt;\\\", \\\"&lt;item&gt;\\\" ,\\\"&lt;value&gt;\\\";\r\n   }\r\n    {     printf spec, \\$1, \\$2, \\$3, \\$4\r\n      }\"   ${limit}<\/pre>\n<p>14 \u83b7\u5f97\u7f51\u5361\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\nname_val (){\r\nprintf \"%12s | %s\\n\" \"$1\" \"$2\"\r\n}\r\nlspci | grep -i ethernet |cut -d: -f3|sed 's\/(rev.*)\/\/g'|while read line;do\r\nname_val Controller \"${line}\"\r\ndone<\/pre>\n<p>15 \u83b7\u5f97\u7cfb\u7edfalias\u4fe1\u606f<\/p>\n<pre class=\"lang:default decode:true \" >#!\/bin\/bash\r\n# by qfong.com  selinuxplus.com\r\naliasfile=\/tmp\/aliasfile\r\ngrep \"alias\" \/root\/.*rc | awk -F: '{print $2}' |grep  ^alias|sed 's\/=\/ \/g' &gt; ${aliasfile}\r\ngrep \"alias\" \/root\/.*profile | awk -F: '{print $2}' |grep  ^alias|sed 's\/=\/ \/g'  &gt;&gt; ${aliasfile}\r\ngrep \"alias\" \/etc\/profile | awk -F: '{print $2}' |grep  ^alias|sed 's\/=\/ \/g' &gt;&gt; ${aliasfile}\r\ngrep \"alias\" \/etc\/profile.d\/colorls.sh &gt;&gt; ${aliasfile}\r\ngrep \"alias\" \/etc\/profile.d\/colorls.sh &gt;&gt; ${aliasfile}\r\ncat ${aliasfile} |sed 's\/^  \/\/g' |sort -r |sort -u \r\nrm $aliasfile<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1 \u83b7\u5f97\u5185\u5b58\u786c\u4ef6\u4fe1\u606f #!\/bin\/bash # &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[59,17,58],"_links":{"self":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/350"}],"collection":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=350"}],"version-history":[{"count":5,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/350\/revisions"}],"predecessor-version":[{"id":353,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/350\/revisions\/353"}],"wp:attachment":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=350"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}