今天在看linux面试题的时候有几道题不会。现在将题目和相关联的内容写下来。
6.如何计算当前磁盘通道的IO带宽使。
10, 如何显示test 文件的第100行.
11, 用shell脚本写出检测/tmp/size.log文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。
12, 如何用iptables 将A 机器发送到B机器 80 端口的数据转发到 C 机器的 8080 端口 (A B C 都装有iptables 目前没有规则)
13, 写出命令:tcpdump命令截取bond0网卡上从210.97.32.0网络位23位发送到本机8088端口的包。
下面是我的理解:
对于第6题我了解了许多内容。
program:通常称为brinary program,放置在存储媒体中,是实体档案。
progress:当program被触发后,会被加载到内存中,系统给予这个内存内的单元一个PID。
nice值和priority值都是作为linux系统判定一个process的执行优先级的判定要素。
RPI(new)=PRI(old)+NI(nice)。
priority的值是系统权衡给出的。可以通过top等命令查看到。因此priority的值是不能做修改的。
nice值是可以修改的。root的修改范围在-19~20之间,普通用户为0~20(防止普通用户干扰正常process的运行)
添加新的nice值:#nice [-n] command.
若添加过后需要修改:#renice [n] PID.
priority的值越大优先级越低。
通过yum install -y sysstat 来安装sar ,mpstat,iostat工具。
#sar [option] [-A] [-o file] t [n]
-A:全部显示,-o:后面跟的file就是将sar的信息全部以二进制形式保存到file文件中,-f file:读取之前用-o保存下来的file文件。t :时间间隔,n:尝试次数。
其他的信息可以通过man来获取。
总结下来是CPU问题可以通过sar -u,sar -q;内存问题可以通过:sar -B,sar -r,sar -w;I/O:sar -b,sar -u,sar -d
sar 是一个非常好的分析linux系统信息的工具。
10, 如何显示test 文件的第100行.
对于这题我开始想到的是通过head读取前100行,在grep抓取第100行但非常繁琐。看了答案后恍然大悟。
#sed -n '100p' test
sed的使用可以通过man查询,这里解释一下语句,-n 只在屏幕输出修改过的内容,'100p' 第100行。
11, 用shell脚本写出检测/tmp/size.log文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。
这个一开始我是写的if [ ] ; then 语句,但是看了答案还是学到了。
#[ -f /tmp/size.log ] && cat /tmp/log || data > /tmp/size.log
主要运用的就是&&和||2个逻辑判断符.
12, 如何用iptables 将A 机器发送到B机器 80 端口的数据转发到 C 机器的 8080 端口 (A B C 都装有iptables 目前没有规则)
iptables -t NAT -I PREROUTING -s A --dport 80 -j DNAT --to C:8080.
13, 写出命令:tcpdump命令截取bond0网卡上从210.97.32.0网络位23位发送到本机8088端口的包。
tcpdump -i bond0 'src net 210.97.32.0/23'and'dst port 8088'