28个运维经典面试题
属龙的今年多大-
1
、
Linux
如何挂
载
windows
下的共享目录?
//IP
地址
/server /mnt/server -o
user=administrator,password=123456
linux
下的
server
需要自己手动建一个
后面的
user
与
pass
是
p>
windows
主机的账号和密码
注意空格
和逗号
2
、如何查看
http
的并发请求数与其
TCP
连接状态?
< br>
netstat -
n |
awk ‘/^tcp/ {++b[$$NF]}’ END {for(a in b) print
a,b[a]}’
还有
ulimit
-n
查看
linux
系统打开最大的文件描述符,这里默认
1024
,不修
改这里
web
服务器修改再大也没用。
若要用就修改很几个办法,这里说其中一个:
修改
/etc/security/
soft nofile 10240
hard
nofile 10240
重启后生效
3
、如何用
tcpdump
嗅探
80
端口的访问看
看谁最高?
tcpdump -i
eth0 -tnn dst port 80 -c 1000 | awk
-
F”.” ‘{print $$1″.”$$2″.”$$3″.”$$4″.”}’ |
sort |uniq
-c | sort -nr | head-5
4
、如何查看
/var/log
< br>目录下的文件数?
ls
/var/log/ -
1R | grep
“
-
” | wc
-l
5
、如何查看
Linux
系统每个
ip
的连接数?
netstat -
n | awk
‘/^tcp/ {print $$5}’ | awk
-
F: ‘{print $$1}’ | sort |
uniq
-c | sort -rn
< br>6
、
shell
下生成
32
位随机密码
cat /dev/urandom | head -1 | md5sum |
head -c 32 >> /pass
7
、统计出
apache
的
<
/p>
中访问量最多的
5
个
ip
cat | awk ‘{print
$$1}’ | sort | uniq
-c | sort -n -r |
head -5
8
、如何查看二进制文件的内容?
我们一般通过
hexdump
命令
来查看二进制文件的内容。
hexdump -C
XXX(
文件名
)
-C
是参数
不同的参数有不同的意义
-C
是比较规范的
十六进制和
ASCII
码显示
-c
是单字节字符显示
-b
单字节八进制显示
-o
是双字节八进制显示
-d
是双字节十进制显示
-x
是双字节十六进制显示
9
、
ps aux
< br>中的
VSZ
代表什么意思,
RS
S
代表什么意思?
VSZ:
虚拟内存集
,
进程占
用的虚拟内存空间
RSS:
物理内存
集
,
进程战用实际物理内存空间
10
、如何检测并修复
/dev/hda5
?
fsck
用来检查和维护不一致的文件系统。若系统掉电或磁盘
发生问题,可利用
fsck
命令对文件系统进行检查
11
、介绍下
Linux
系统的开机启动顺序
加载
BIOS
–
>
读取
MBR
–
>Boot Loader
–
>
加载内核–
>
用户层
< br>init
一句
inittab
文
件来设定系统运行的等级
(
一般
3
p>
或者
5
,
3
是多用户命令行,
5
是界面
)
–
>init
进程执行
t
–
>
启动内核模块–
>
执行不同级别运行的脚本程序–
>
执行
/etc/rc.d/(
本地运行服务
)
–
>
执行
/bin/login,
就可以登
录了。
12
、符号链接与硬链接的区别
我们可以把符号链接,也就是软连接
当做是
windows
系统里的
快捷方式。
硬链接
就好像是
又复制了一份,举例说明:
ln
这是硬链接,相当于复制,不可以跨分区,但修改
3,4
会跟着变,若删除
3,4
不受任何影响。
p>
ln -s
这是软连接,相当于快
捷方式。修改
4,3
也会跟着变,若删除
3,4
就坏掉了。不可以用了。
13
、保存当前磁盘分区的分区表
dd
命令是以个强大的命令,在复制的同时进行转换
dd if=/dev/sda of=./ bs=1
count=512
14
、如何在文本里面进行复制、粘贴,
删除行,删除全部,按行查找和按字母查找?
以下操作全部在命令行状态操作,不要在编辑状态操作。
在文本里
移动到想要复制的行
按
yy
想复制到哪就移动到哪,然后按
P
就黏贴了
删除行
移动到改行
按
dd
删除全部
dG
这里注意
G
一定要大写
按行查找
:90
< br>这样就是找到第
90
行
按字母查找
/path
这样就是
找到
path
这个单词所在的位置,
文本里可能存在多个
,
多次查找会显示在不同的位置。
15
、手动安装
grub
grub-install /dev/sda
16
、修改内核参数
vi /etc/
这里修改参数
sysctl -p
刷新后可用
17
、在
1-39
内取随机数
expr $$[RANDOM%39] +1
RANDOM
随机数
%39
取余数范围
0-38
18
、限制
apache
每秒新建连接数为
1
,峰
值为
3
每秒新建连接数
一般都是由防火墙来
做,
apache
本身好像无法设置每秒新建连接数,只能设置
最大连接:
iptables
-A INPUT -d 172.16.100.1 -p tcp
–
dport 80 -m limit
–
limit 1/second -j ACCEPT
p>
19
、
FTP
的主
动模式和被动模式
FTP
协议有两种工作方式:
PORT
方式和
PASV
方式,中文意思为主动式和被动式。
PORT
(主动)方式的连接过程是
:客户端向服务器的
FTP
端口(默认是
21
)发送连接请
求,服务器接受
连接,
建立一条命令链路。当需要传送数据时,客户端在命令链路上用
< br>PORT
命令告诉服务器:“我打开了
XX
端口,你
过来连接我”。于是服务器从
20
端口向客户端的
XX
端口发送连接请求,建立一条数据链路来传送数据。
p>
PASV
(被动)方式的连接过程是:客户端向服务器的
FTP
端口(默认是
21
)发送连接请
求,服务器接受连接,
建立一条命令链路。当需要传送数据时,服务器在命令链路上用
PASV
命令告诉客户端:“我打开了
XX
端口,你
过来连接我”。于是客户端向服务器的
XX
端口
发送连接请求,建立一条数据链路来传送数据。
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完
全不同。
20
、显示
/etc/inittab
中以
#
开头,且后面跟了一个或者多个空白字符,而
后又跟了任意非空白字符的行
grep “^#
{1,
}[^]”
/etc/inittab
21
、显
示
/etc/inittab
中包含了
:
一个数字
:(
即两个冒号中间一个数
字
)
的行
grep “
:[0-9]{1
}:”
/etc/inittab
22
、怎
么把脚本添加到系统服务里,即用
service
来调用?
p>
在脚本里加入
#!/bin/bash
#
chkconfig: 345 85 15
# description:
httpd
然后保存
chkconfig httpd
–
add
创建系统服务
现在就可以使用
service
来
start or
restart
23
、写一个脚本
,实现批量添加
20
个用户,用户名为
user01-20
,密码为
user
后面跟
5
个随机字符
#!/bin/bash
#description: useradd
for i
in `seq -
f”%02g” 1 20`;do
useradd user$$i
echo
“user$$i
-`echo $$RANDOM|md5sum|cut -c
1-
5`”|passwd –
stdinuser$$i
>/dev/null 2>&1
done
24
、写一个脚本,实现判断
192.168.1.0/24
< br>网络里,当前在线的
IP
有哪些,能
ping
通则认为在线
#!/bin/bash
for ip in `seq 1
255`
do
ping -c 1
192.168.1.$$ip > /dev/null 2>&1