apachectl

Apache服务器前端控制工具

apachectl命令 是Apache的Web服务器前端控制工具,用以启动、关闭和重新启动Web服务器进程。

语法

1
apachectl(参数)

参数

  • configtest:检查设置文件中的语法是否正确;
  • fullstatus:显示服务器完整的状态信息;
  • graceful:重新启动Apache服务器,但不会中断原有的连接;
  • help:显示帮助信息;
  • restart:重新启动Apache服务器;
  • start:启动Apache服务器;
  • status:显示服务器摘要的状态信息;
  • stop:停止Apache服务器。

arpd

收集免费ARP信息

arpd命令 是用来收集免费arp信息的一个守护进程,它将收集到的信息保存在磁盘上或者在需要时,提供给内核用户用于避免多余广播。

语法

1
arpd(选项)(参数)

选项

1
2
3
4
5
6
-l:将arp数据库输出到标准输出设备显示并退出;
-f:指定读取和加载arpd数据库的文本文件,文件的格式与“-l”输出信息类似;
-b:指定arpd数据库文件,默认的位置为“/var/lib/arpd.db”;
-a:指定目标被认为死掉前查询的次数;
-k:禁止通过内核发送广播查询;
-n:设定缓冲失效时间。

参数

网络接口:指定网络接口。

实例

启动arpd进程:

1
arpd -b /var/tmp/arpd.db

运行一段时间后,查看结果:

1
arpd -l -b /var/tmp/arpd.db

arping

通过发送ARP协议报文测试网络

arping命令 是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包,通过ping命令检查设备上的硬件地址。能够测试一个ip地址是否是在网络上已经被使用,并能够获取更多设备信息。功能类似于ping。

语法

1
arping(选项)(参数)

选项

1
2
3
4
5
6
7
-b:用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast地址。
-q:quiet output不显示任何信息;
-f:表示在收到第一个响应报文后就退出;
-w timeout:设定一个超时时间,单位是秒。如果到了指定时间,arping还没到完全收到响应则退出;
-c count:表示发送指定数量的ARP请求数据包后就停止。如果指定了deadline选项,则arping会等待相同数量的arp响应包,直到超时为止;
-s source:设定arping发送的arp数据包中的SPA字段的值。如果为空,则按下面处理,如果是DAD模式(冲突地址探测),则设置为0.0.0.0,如果是Unsolicited ARP模式(Gratutious ARP)则设置为目标地址,否则从路由表得出;
-I interface:设置ping使用的网络接口。

参数

目的主机:指定发送ARP报文的目的主机。

实例

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~]# arping www.baidu.com 
ARPING 220.181.111.147 from 173.231.43.132 eth0
Unicast reply from 220.181.111.147 00:D0:03:[bc:48:00] 1.666ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.677ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.691ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.728ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.626ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.292ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.429ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 2.042ms
Sent 8 probes (1 broadcast(s))
Received 8 response(s)

arptables

管理ARP包过滤规则表

arptables命令 用来设置、维护和检查Linux内核中的arp包过滤规则表。

语法

1
arptables(选项)

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
-A:向规则链中追加规则;
-D:从指定的链中删除规则;
-l:向规则链中插入一条新的规则;
-R:替换指定规则;
-P:设置规则链的默认策略;
-F:刷新指定规则链,将其中的所有规则链删除,但是不改变规则链的默认策略;
-Z:将规则链计数器清零;
-L:显示规则链中的规则列表;
-X:删除指定的空用户自定义规则链;
-h:显示指令帮助信息;
-j:指定满足规则的添加时的目标;
-s:指定要匹配ARP包的源ip地址;
-d:指定要匹配ARP包的目的IP地址。

arpwatch

监听网络上ARP的记录

arpwatch命令 用来监听网络上arp的记录。

语法

1
arpwatch(选项)

选项

1
2
3
4
-d:启动排错模式;
-f<记录文件>:设置存储ARP记录的文件,预设为/var/arpwatch/arp.dat;
-i<接口>:指定监听ARP的接口,预设的接口为eth0;
-r<记录文件>:从指定的文件中读取ARP记录,而不是从网络上监听。

badblocks

查找磁盘中损坏的区块

badblock命令 用于查找磁盘中损坏的区块。 硬盘是一个损耗设备,当使用一段时间后可能会出现坏道等物理故障。电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏道就会越来越多,并会造成频繁死机和数据丢失。最好的处理方式是更换磁盘,但在临时的情况下,应及时屏蔽坏道部分的扇区,不要触动它们。badblocks就是一个很好的检查坏道位置的工具。

语法

1
badblock(选项)(参数)

选项

1
2
3
4
5
-b<区块大小>:指定磁盘的区块大小,单位为字节;
-o<输出文件>:将检查的结果写入指定的输出文件;
-s:在检查时显示进度;
-v:执行时显示详细的信息;
-w:在检查时,执行写入测试。

参数

  • 磁盘装置:指定要检查的磁盘装置;
  • 磁盘区块数:指定磁盘装置的区块总数;
  • 启始区块:指定要从哪个区块开始检查。

实例

badblocks以 4096 的一个block,每一个block检查16次,将结果输出到“hda-badblocks-list”文件里。

1
badblocks -b 4096 -c 16 /dev/hda1 -o hda-badblocks-list

hda-badblocks-list是个文本文件,内容如下:

1
2
3
4
5
6
7
8
9
cat hda-badblocks-list
51249
51250
51251
51253
51254
……
61245
……

可以针对可疑的区块多做几次操作。下面,badblocks以4096字节为一个“block”,每一个“block”检查1次, 将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束。

1
badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000

这次花费的时间比较短,硬盘在指定的情况下在很短的时间就产生“嘎嘎嘎嘎”的响声。由于检查条件的不同,其输出的结果也不完全是相同的。重复几次同样的操作,因条件多少都有些不同,所以结果也有所不同。进行多次操作后,直到产生最后的hda-badblock-list.final文件。

其他

1、fsck使用badblocks的信息

badblocks只会在日志文件中标记出坏道的信息,但若希望在检测磁盘时也能跳过这些坏块不检测,可以使用fsck的-l参数:

1
fsck.ext3 -l /tmp/hda-badblock-list.final /dev/hda1

2、在创建文件系统前检测坏道

badblocks可以随e2fsck和mke2fs的-c删除一起运行(对ext3文件系统也一样),在创建文件系统前就先检测坏道信息:

1
mkfs.ext3 -c /dev/hda1

代码表示使用-c在创建文件系统前检查坏道的硬盘。

这个操作已经很清楚地告知我们可以采用mkfs.ext3 -c选项用read-only方式检查硬盘。这个命令会在格式化硬盘时检查硬盘,并标出错误的硬盘“block”。用这个方法格式化硬盘,需要有相当大的耐心,因为命令运行后,会一个个用读的方式检查硬盘。

blkid

查看块设备的文件系统类型、LABEL、UUID等信息

在Linux下可以使用 blkid命令 对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。

语法

1
2
3
4
blkid -L | -U
blkid [-c ] [-ghlLv] [-o] [-s ][-t ] -[w ] [ ...]
blkid -p [-s ] [-O ] [-S ][-o] ...
blkid -i [-s ] [-o] ...

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-c <file>   # 指定cache文件(default: /etc/blkid.tab, /dev/null = none)
-d # don't encode non-printing characters
-h # 显示帮助信息
-g # garbage collect the blkid cache
-o <format> # 指定输出格式
-k # list all known filesystems/RAIDs and exit
-s <tag> # 显示指定信息,默认显示所有信息
-t <token> # find device with a specific token (NAME=value pair)
-l # look up only first device with token specified by -t
-L <label> # convert LABEL to device name
-U <uuid> # convert UUID to device name
-v # 显示版本信息
-w <file> # write cache to different file (/dev/null = no write)
<dev> # specify device(s) to probe (default: all devices)
Low-level probing options:
-p # low-level superblocks probing (bypass cache)
-i # gather information about I/O limits
-S <size> # overwrite device size
-O <offset> # probe at the given offset
-u <list> # filter by "usage" (e.g. -u filesystem,raid)
-n <list> # filter by filesystem type (e.g. -n vfat,ext3)

实例

1、列出当前系统中所有已挂载文件系统的类型:

1
sudo blkid

2、显示指定设备 UUID:

1
sudo blkid -s UUID /dev/sda5

3、显示所有设备 UUID:

1
sudo blkid -s UUID

4、显示指定设备 LABEL:

1
sudo blkid -s LABEL /dev/sda5

5、显示所有设备 LABEL:

1
sudo blkid -s LABEL

6、显示所有设备文件系统:

1
sudo blkid -s TYPE

7、显示所有设备:

1
sudo blkid -o device

8、以列表方式查看详细信息:

1
sudo blkid -o list

blockdev

从命令行调用区块设备控制程序

blockdev命令 在命令调用“ioxtls”函数,以实现对设备的控制。

语法

1
blockdev(选项)(参数)

选项

1
2
3
4
5
6
7
8
9
-V:打印版本号并退出;
-q:安静模式;
-v:详细信息模式;
--setro:只读;
--setrw:只写;
--getro:打印只读状态,“1”表示只读,“0”表示非只读;
--getss:打印扇区大小。通常为521;
--flushbufs:刷新缓冲区;
--rereadpt:重新读取分区表。

参数

设备文件名:指定要操作的磁盘的设备文件名。

实例

设置设备为只读:

1
blockdev --setro /dev/hda4

读取设备是否为只读:

1
blockdev --getro /dev/hda4

设置设别为可读写:

1
blockdev --setrw /dev/hda4