作者归档:鸡鸡哥的聪明伶俐的儿子

关于鸡鸡哥的聪明伶俐的儿子

嗜抽烟,嗜吃肉,常睡觉晚起,熬夜,看新闻,喜体育栏目,会操作电脑,会操作服务器,能做些别人不屑于做的事情。厌做饭,恶洗碗,不洗澡,不刷牙,不剃胡须,不喜逛超市,重压之下偶去之,无上进心,无恒心,无毅力。 1988-1998年,虚度人生 2001-2013年,懵懵懂懂忽然就有孩子有老婆有,匆匆间父亲去世,匆匆半个人生没有了 2013- 知道自己需要什么,知道自己该做什么,知道自己的是个什么样的人,重新上路,明明白白活自己。 ------鸡鸡哥 2013.02.28 老了,以后得改称老鸡鸡哥了,继续努力吧 -----鸡鸡哥 20150517

今天搞网卡千兆,花费一天时间,不总结对不起自己,以下是ethtool的一些总结

ethtool -s speed 1000 duplex full autoneg off  ;强制千兆双工
ethtool eth0                                   ;查看eth0状态
ethtool -s eth0 advertise 0x020         ;设置为全双工1000M
可以设置的advertise参数:
advertise的值:
0x001    10 Half
0x002    10 Full
0x004    100 Half
0x008    100 Full
0x010    1000 Half(not supported by IEEE standards)
0x020    1000 Full
0x8000   2500 Full(not supported by IEEE standards)
0x800    10000 Full
0x03F    Auto
# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: d

                [ speed 10|100|1000|2500|10000 ]
                [ duplex half|full ]
                [ port tp|aui|bnc|mii|fibre ]
                [ autoneg on|off ]
                [ advertise %%x ]
                [ phyad %%d ]
                [ xcvr internal|external ]
                [ wol p|u|m|b|a|g|s|d… ]
                [ sopass %%x:%%x:%%x:%%x:%%x:%%x ]
                [ msglvl %%d ]

# ethtool –help
ethtool version 6
Usage:
ethtool DEVNAME Display standard information about device
         ethtool -s|–change DEVNAME    Change generic options
                [ speed 10|100|1000|2500|10000 ]
                [ duplex half|full ]
                [ port tp|aui|bnc|mii|fibre ]
                [ autoneg on|off ]
                [ advertise %%x ]
                [ phyad %%d ]
                [ xcvr internal|external ]
                [ wol p|u|m|b|a|g|s|d… ]
                [ sopass %%x:%%x:%%x:%%x:%%x:%%x ]
                [ msglvl %%d ]
         ethtool -a|–show-pause DEVNAME        Show pause options
         ethtool -A|–pause DEVNAME     Set pause options
                [ autoneg on|off ]
                [ rx on|off ]
                [ tx on|off ]
         ethtool -c|–show-coalesce DEVNAME     Show coalesce options
         ethtool -C|–coalesce DEVNAME  Set coalesce options
                [adaptive-rx on|off]
                [adaptive-tx on|off]
                [rx-usecs N]
                [rx-frames N]
                [rx-usecs-irq N]
                [rx-frames-irq N]
                [tx-usecs N]
                [tx-frames N]
                [tx-usecs-irq N]
                [tx-frames-irq N]
                [stats-block-usecs N]
                [pkt-rate-low N]
                [rx-usecs-low N]
                [rx-frames-low N]
                [tx-usecs-low N]
                [tx-frames-low N]
                [pkt-rate-high N]
                [rx-usecs-high N]
                [rx-frames-high N]
                [tx-usecs-high N]
                [tx-frames-high N]
                [sample-interval N]
         ethtool -g|–show-ring DEVNAME Query RX/TX ring parameters
         ethtool -G|–set-ring DEVNAME  Set RX/TX ring parameters
                [ rx N ]
                [ rx-mini N ]
                [ rx-jumbo N ]
                [ tx N ]
         ethtool -k|–show-offload DEVNAME      Get protocol offload information
         ethtool -K|–offload DEVNAME   Set protocol offload
                [ rx on|off ]
                [ tx on|off ]
                [ sg on|off ]
                [ tso on|off ]
                [ ufo on|off ]
                [ gso on|off ]
                [ gro on|off ]
         ethtool -i|–driver DEVNAME    Show driver information
         ethtool -d|–register-dump DEVNAME     Do a register dump
                [ raw on|off ]
                [ file FILENAME ]
         ethtool -e|–eeprom-dump DEVNAME       Do a EEPROM dump
                [ raw on|off ]
                [ offset N ]
                [ length N ]
         ethtool -E|–change-eeprom DEVNAME     Change bytes in device EEPROM
                [ magic N ]
                [ offset N ]
                [ value N ]
         ethtool -r|–negotiate DEVNAME Restart N-WAY negotation
         ethtool -p|–identify DEVNAME  Show visible port identification (e.g. blinking)
               [ TIME-IN-SECONDS ]
         ethtool -t|–test DEVNAME      Execute adapter self test
               [ online | offline ]
         ethtool -S|–statistics DEVNAME        Show adapter statistics
         ethtool -h|–help

一些思路,好文章,网上找的,标题是“关闭rpc.statd服务 ”,我自己也加了一些自己的东西

关闭rpc.statd服务
为了让linux主机少一些隐患,我们要尽可能把一些不需要的服务取消或者删掉。
我们可以先来看看目前有哪些端口是开着的

[root@localhost linsc]# nmap 127.0.0.1
Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2007-12-05 21:28 CST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1652 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
766/tcp  open  unknown
3306/tcp open  mysql
8009/tcp open  ajp13
8080/tcp open  http-proxy

Nmap run completed — 1 IP address (1 host up) scanned in 0.194 seconds
可以看到 766 端口是打开着的,一个 unknown 的服务正在运行,这是什么服务?这个时候我也不知道。

[root@localhost linsc]# netstat -lp
可以看到有下面一条内容,

tcp        0      0 *:766                       *:*                         LISTEN      3128/rpc.statd
说明是 rpc.statd 正在运行。
就看766是什么命令执行的监听端口的另外一个办法

[root@localhost linsc]# lsof -i:766
COMMAND    PID    USER   FD   TYPE DEVICE SIZE NODE NAME
rpc.statd 3128 rpcuser    8u  IPv4   6467       TCP *:766 (LISTEN)
#netstat -a -p -n | grep 766
tcp        0      0 0.0.0.0:766                 0.0.0.0:*                   LISTEN      2649/rpc.statd 

查看rpc.statd这个命令是那个安装包的文档

[root@localhost linsc]# rpm -qf /sbin/rpc.statd
nfs-utils-1.0.6-80.EL4
查看nfs开头有那些东东

[root@localhost linsc]# ls /etc/init.d/nfs*
/etc/init.d/nfs  /etc/init.d/nfslock
查看nfslock状态
[root@localhost linsc]# /etc/init.d/nfslock status
rpc.statd (pid 3128) 正在运行…
[root@localhost linsc]# vi /etc/services
找到里面的 nfs ,在前面加 # 注释掉,重启,

[root@localhost linsc]# nmap 127.0.0.1
Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2007-12-05 21:55 CST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1653 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
3306/tcp open  mysql
8009/tcp open  ajp13
8080/tcp open  http-proxy

Nmap run completed — 1 IP address (1 host up) scanned in 0.194 seconds

check_ping用法 nagios

nagios check_ping命令使用方法
 
nagios的一些辅助工具很有用处,如check_ping,check_tcp等等,这里介绍一下check_ping的用法:

nagios的check_ping命令:
用法:
./check_ping
Usage: check_ping -H <host_address> -w <wrta>,<wpl>% -c <crta>,<cpl>%
                      [-p packets] [-t timeout] [-L] [-4|-6]
具体如下:
-H    主机地址
-w     WARNING 状态:   响应时间(毫秒),丢包率 (%)   阀值
-c     CRITICAL状态:    响应时间(毫秒),丢包率 (%)   阀值
-p     发送的包数           默认5个包
-t      超时时间             默认10秒
-4|-6                        使用ipv4|ipv6 地址     默认ipv4
如:
1、正常:
./check_ping -H www.google.com -w 100.0,20% -c 200.0,50% -p 3 -t 2
PING OK – Packet loss = 0%, RTA = 1.49 ms
命令执行结果返回: echo $?   为 0
2、WARNING :
./check_ping -H www.google.com -w 0.1,20% -c 200.0,50% -p 3 -t 2
PING WARNING – Packet loss = 0%, RTA = 1.71 ms
命令执行结果返回: echo $?   为 1
3、CRITICAL
./check_ping -H www.google.com -w 0.1,20% -c 0.9,50% -p 3 -t 2
PING CRITICAL – Packet loss = 0%, RTA = 1.60 ms
命令执行结果返回: echo $?   为 2
返回结果为:状态 丢包率 ping响应时间
因为check_ping的返回值非常清晰,
可以在其他程序中调用check_ping命令,作为辅助的网络检测工具。

df -i ,inode,删除小文件

df -i

-i, –inodes          list inode information instead of block usage

看到这个错误,第一个反应是磁盘空间满了;但df一看,每个分区的空间都还富余的很。从munin 的监控图表上看 Filesystem usage 也很平稳,但下面的 Inode usage 就有问题了,其中一个分区的 usage 已经到了100%。赶紧跑到服务器上df -i检查,果然是 Inode 耗尽。原来这个分区是用来扔各种日志和临时文件的,其中有某个程序产生的临时文件又小又多,又没有进行定时回滚,造成在磁盘空间耗尽之前文件系统的 Inode 就被用光了。
  Linux/Unix like OS 的文件系统中每个目录树中的节点并不是像 Windows 那样直接包含文件的具体信息,而只包含了文件名和 Inode number 。通过 Inode number 所找到对应于文件名的 Inode 节点中才真正记录了文件的大小/物理地址/所有者/访问权限/时间戳/被硬链接的次数等实际的metadata。因此你可以在 Linux 系统中通过硬链接( hard link ) 的方式给某个文件创建无数个位于不同目录下的文件名,而实际的文件数据只需要一份拷贝。
但也正因为这种文件系统的结构,当你在 Linux 中进行 IO 操作的时候,需要的资源除了磁盘空间以外,还要有剩余的 Inode 才行。缺省情况下, Linux 在系统安装过程中按照1个 Inode 对应 2k 磁盘空间来计算每个分区的最大 Inode 数。一旦文件系统创建之后,每个分区可用 Inode 数就无法进行动态调整。

  正常来说,一般不太会出现某个分区的 Inode 耗尽而磁盘空间尚余的情况,除非像我碰到的这样垃圾小文件疯长而又没进行有效的清理。但如果确实需要的话,可以在创建文件系统(比如用mke2fs)的时候根据实际需要来调整这个参数(比如分区如果用于存放超大视频文件的话 Inode 的数量可以少一些;如果打算存放的文件是大量小于 2k 的迷你文件的话就要考虑多创建一些 Inode)。

删除大量小文件的方法:

男性健身

性爱,妙不可言。和谐的性爱让压力释放烦恼凋落情感升华。但随着生活方式的变化、工作压力的加大,越来越多的人年纪轻轻便陷入到“性爱尴尬”当中:他们失去了能力、失去了欲望、失去了快感,同时也失去了重享生活的信心。新浪健康频道特邀请著名性学专家,为大家的难言之隐排忧解难。本期专家指导专家:北京体育大学教师,资深私人健身教练汪黎明

  新浪健康:如何利用体育锻炼来改善性能力,或者延缓性能力方面的衰退呢?

  汪黎明:很多中年男性都面临着性健康方面的隐患,过度肥胖、缺乏锻炼,造成了肌肉力量的严重不足,也会影响内分泌,从而影响着男性的性能力。改善性能力是一个综合性的过程,从体育锻炼方面来说可通过三个方面训练来达到改善性健康、增强性能力的目的。第一方面是通过锻炼盆地核心肌肉,增强对肌肉的控制能力,以达到改善性健康状况的目的;第二方面则是通过有氧运动,增强血液循环,改善性能力。这一点同“伟哥”所起到的作用是异曲同工的;第三方面主要是通过下肢和腰肢的锻炼刺激激素的整体分泌。

  新浪健康:有什么简单易行的方法可以锻炼盆底肌吗?

  汪黎明:提肛肌是盆底肌肉的核心,可以重点锻炼。有一个简单的锻炼方法:平躺在床上,收腹感觉下背部紧压床面,这时候做提肛动作。可以收到非常好的锻炼效果。建议每隔一天做一回练习,每天3-5组,每组8-12个。持之以恒就能见到成效。如果在健身房就可以选择夹腿机来进行练习。

  新浪健康:如何通过下肢练习来刺激性激素分泌呢?

  汪黎明:这方面主要可以通过下蹲、弓步这些简单的动作来实现。比如自身蹲——双腿与肩同宽,双手抱于胸前,下蹲直到大腿与地面平行,一次做4组,每组20次。坚持下去可以有效刺激睾酮素分泌,保护性健康。

  新浪健康:你推荐什么样的有氧运动给男士们?

  汪黎明:游泳。这是一种能够锻炼到全身各个部位的有氧运动。同时,对于末梢循环有很好的增进作用;此外,踏板机、慢跑也是不错的选择。但是关键的是有氧运动要注意保证运动量,最好每次在30分钟以上,以便达到增强血液循环和心肺功能的作用。

给nagios监控服务器添加图标

nagios图标

今天看了学校总部的Nagios 2.0 statusmap,感觉其中的图标配置很不错,于是开始研究把自己配置的3.0版本也加上。默认安装完成后的Nagios并没有对Statusmap做较好的美化,图标显示都是疑问符号。由于3.0.1相对于2.0做了较大改动,早期版本中定义hostextinfo已经不可用。通过阅读官方文档,得知在host定义中有四个变量可选,用于指定每一个host的图标文件名,默认的存储位置是/usr/local/nagios/share/images/logos
icon_image: 可以使用GIF, PNG,或者是JPG文件,推荐图像尺寸为40×40
icon_image_alt: 即为HTML语法中关于image元素的ALT属性值
vrml_image: Nagios提供使用VRML语言绘制三维图像功能,这里不要使用透明图片(PNG, GIF),最好使用JPG
statusmap_image: 提供给statusmap CGI脚本使用的图片,服务器要支持GD,这个文件的类型为gd2

Nagios 3安装包中没有提供足够的图片文件,但是NagiosExchange为我们提供了很多用于Nagios的图标以及界面模板,可以从中选取下载。

总部的Nagios statusmap
nagios图标2

nagios自定义变量问题,用户自定制对象变量

6.3. 用户自定制对象变量

6.3.1. 介绍

用户通常想在主机、服务或联系人的对象里加入自已定制的变量,这些变量象SNMP共同体名、MAC地址、AIM用户名、Skype帐号和街道名称等等,可能有各种各样的东西无法列完。这样会使Nagios不具备通用性并且无法保持一个特定的架构。Nagios试图更为柔性化,这就意味着需要处理这种情况,例如在Nagios的主机对象定义中,”address”是一个IP地址也可以是任何东西,只要对使用者而言是个可读可操作的,无论用户怎么设置都行。

但还是有必要在Nagios配置文件中提供一种可供管理和保存的处理方法而不是与现有变量域混用的方法。Nagios试图在对象的定义中引用用户自定制变量来解决这个问题。用户自定制变量的方法可以让用户在主机、服务和联系人对象定义里加入属性,在通知、事件处理和对主机与服务的检测中使用这些变量。

6.3.2. 用户自定制变量的基本规则

使用用户自定制变量需要注意如下几个要点:

  1. 必须以下划线(_)开头来定义变量名称以防止与标准域名称混淆;
  2. 自定制变量名是大小写敏感的;
  3. 自定制变量是可以象一般的变量那样被继承传递的;
  4. 自定制变量名是可以被脚本里引用的,在宏和环境变量中有说明。

6.3.3. 例子

这有一个如何在对象中定义不同类型的用户自定制变量的例子:

define host{
		host_name	linuxserver
		_mac_address	00:06:5B:A6:AD:AA	; <-- Custom MAC_ADDRESS variable
		_rack_number	R32			; <-- Custom RACK_NUMBER variable
		...
		}
define service{
		host_name	linuxserver
		description	Memory Usage
		_SNMP_community	public			; <-- Custom SNMP_COMMUNITY variable
		_TechContact	Jane Doe		; <-- Custom TECHCONTACT variable
		...
		}
define contact{
		contact_name	john
		_AIM_username	john16			; <-- Custom AIM_USERNAME variable
		_YahooID	john32			; <-- Custom YAHOOID variable
		...
		}

6.3.4. 在宏里使用用户自定制变量

在Nagios的检测、通知等的脚本和执行程序里可以引用用户自定制变量,通过使用或是环境变量来实现。

为防止混淆不同对象类型中的用户定制变量,Nagios在宏和环境变量的名字里,对用户定义的主机、服务或是联系人的变量名之前分别加上了”_HOST”、”_SERVICE”或”_CONTACT”以示区分。下面的表格中给出前面例子中的用户自定制变量在宏和环境变量这中的可引用的命名。

表 6.1. 

对象类型 变量名 宏名 环境变量
主机 MAC_ADDRESS $_HOSTMAC_ADDRESS$ NAGIOS__HOSTMAC_ADDRESS
主机 RACK_NUMBER $_HOSTRACK_NUMBER$ NAGIOS__HOSTRACK_NUMBER
服务 SNMP_COMMUNITY $_SERVICESNMP_COMMUNITY$ NAGIOS__SERVICESNMP_COMMUNITY
服务 TECHCONTACT $_SERVICETECHCONTACT$ NAGIOS__SERVICETECHCONTACT
联系人 AIM_USERNAME $_CONTACTAIM_USERNAME$ NAGIOS__CONTACTAIM_USERNAME
联系人 YAHOOID $_CONTACTYAHOOID$ NAGIOS__CONTACTYAHOOID

 

6.3.5. 用户自定制变量与继承

象标准的主机、服务或联系人对象里的变量一样,用户自定制变量同样可以继承

配置apache虚拟主机的下载—-手记

apache已经配置了两个虚拟主机,现在要求使用ip来访问呢,把根目录下的文件列表出来

apache虚拟主机配置完毕后,当通过ip访问时,因为不能匹配任何一个基于域名的虚拟主机,apache会把第一个虚拟主机会提供给访问者,所以通过ip访问只用配置第一个虚拟主机就可以了。

当访问apache的DocumentRoot目录外面的文件时,需要Alias关键字,例如“Alias / /home/zhaozheng/software/”
同时定义web根的权限,使用Directory关键字来定义,如果需要目录浏览,则在Options关键字中需要使用indexes属性
访问顺序是allow,deny,最后是Allow from all
如下:
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /
    Alias / /home/zhaozheng/software/
    ServerName software.kejet.com
    ServerAlias www.dummy-host.example.com
<Directory />
            Options indexes FollowSymLinks
            AllowOverride None
            Order allow,deny
            Allow from all
</Directory>

shell脚本从文件中按行读取数据,并且赋值到数组中的几种方法。

从ip.txt里读取IP.然后把IP地址赋值到一个数组里.
IP文件如下:
Address:  220.181.26.163
Address:  220.181.26.174
Address:  220.181.26.175
Address:  220.181.26.176
Address:  220.181.19.228
Address:  220.181.19.229
Address:  220.181.26.161
Address:  220.181.26.162

方法一:
for x in ` awk ‘{print $2}’ ip.txt `
{
echo $x
}
方法二:
ARRAY=($(awk ‘{print $2}’ ip.txt))
方法三:
n=0;while read a b;do array[$n]=$b;((n++));done<ip.txt

方法四:
n=1
while ((n<=$(cat ip.txt|wc -l)))
do
    ipaddr[$n]=$(cat ip.txt|sed -n “${n}p”|awk ‘{print $2}’)
    ((n+=1))
done
n=`expr $n – 1`