Linux运维工程师中级面试题

1.解释top命令和vmstat命令

top 动态  vmstat静态

linux面试题 <wbr> <wbr> <wbr> <wbr>慢慢求解

linux面试题 <wbr> <wbr> <wbr> <wbr>慢慢求解

 

2.请写出iptables语句  iptables [-t 表名] -命令 -匹配 -j 动作/目标

    1)本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1

iptables -t nat -A PREROUTING -d 192.168.2.1 -p tcp -dport 80 -j DNAT -to 192.168.2.1:8080 

    2)允许本机对外连接80端口(本机能连外界服务器为80)

iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT

    3)开放本机的3306端口

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

    4)禁止外界ping本服务器

iptables -A INPUT -p icmp -j DROP

    5)防止SYN攻击(轻量级预防)

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

 iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT 

3.mysql高可用方案有哪些?mysql备份方案有哪些?有什么优缺点?

4.写出apache 2.x的两种工作模式,以及各自的工作原理。如何查看apache当前支持的模块。并查看在哪种模式下工作。

prefork和worker

#apachectl -l

5.linux基础问题

   1)linux怎么查看用户登陆日志

   who /var/log/wtmp

cat /var/log/secure

   2)linux中utmp,wtmp,lastlog,messages各文件的作用

   有关当前登录用户的信息记录在文件utmp中;======who命令

   登录进入和退出纪录在文件wtmp中;========w命令

   最后一次登录文件可以用lastlog命令察看;

   messages======从syslog中记录信息

   3)列举你熟悉的服务器性能查看命令

   查看磁盘 df -h

   查看内存大小 free   vmstat

   查看cpu  cat /proc/cpuinfo

   只看cpu数量grep "model name" /proc/cpuinfo | wc -l

   查看系统内存  cat /proc/meminfo

   查看每个进程的情况 cat /proc/5346/status 5347是pid

   查看负载  w

   查看系统整体状态  top

   4)linux服务器间怎么实现无密码登陆。列举操作步骤

   有机器A[192.168.1.1],B[192.168.1.2]。现想A通过ssh免密码登录到B

   第一步,在A机下生成公钥/私钥对

   ssh-keygen

   直接三次回车,它将在~/下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub

   第二步,把A机下的id_rsa.pub复制到B机下

   完成后还需要将id_rsa.pub内容追加到B机的.ssh/authorized_keys文件里

   scp ~/.ssh/id_rsa.pub root@192.168.1.2:~/id_rsa.pub 

   第三步、B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里

   cat id_rsa.pub >> .ssh/authorized_keys

   chmod 600 .ssh/authorized_keys

   authorized_keys的权限必须是600。

   第四步、验证A机无密码登录B机。

   ssh root@192.168.1.2

6.软件类问题

   1)keepalived和heartbeat的优缺点,适用哪些场合

   Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP);

   Heartbeat是基于主机或网络的服务的高可用方式;

   keepalived的目的是模拟路由器的双机

   heartbeat的目的是用户service的双机

   lvs的高可用建议用keepavlived

   业务的高可用用heartbeat

   2)LVS haproxy nginx各优缺点,适用哪些场合

   3)apache nginx lighttpd 各优缺点,使用哪些场合

   4)squid vamish各优缺点,适用哪些场合

   5)memcache dredis各优缺点,适用哪些场合

   6)介绍下LVS负载模式和调度算法,nginx负载均衡模式有哪几种算法

   VS/NAT VS/TUN VS/DR

   轮叫调度,加权轮叫,最少连接,加权最少连接,基于局部性的最少连接,带复制的基于局部性最少连接,    目标地址散列,源地址散列

   nginx算法:

   加权轮询(weighted round robin)

   ip hash

   fair

   通用hash、一致性hash

7.设计一个PV为2千万的网站架构

8.网络知识部分

   1)简述OSI参考模型的七个层次

linux面试题 <wbr> <wbr> <wbr> <wbr>慢慢求解
 

   2)简述tcp协议的三次握手过程

   TCP(Transmission Control Protocol) 传输控制协议

   TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

   位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送)       FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认    号码)

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A             要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生               seq=7654321的包

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正             确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建             立成功。

完成三次握手,主机A与主机B开始传送数据。

   3)一个主机IP 202.110.14.137,掩码 255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址 http://zhidao.baidu.com/question/112562843.html

网络地址:

202.112.14.128

广播地址:

202.112.14.159

9.信息安全部分

   1)IDC机房里发生ARP攻击,在服务器上抓包,通过分析数据包内容会看到什么现象?如何防止此类攻击

   1.不断弹出“本机的XXX段硬件地址与网络中的XXX段地址冲突”的对话框。

   2.计算机不能正常上网,出现网络中断的症状。

·在客户端使用arp命令绑定网关的真实MAC地址命令

·在交换机上做端口与MAC地址的静态绑定。

·在路由器上做IP地址与MAC地址的静态绑定

·使用“ARP SERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC映射表。

   2)IDC机房里一台服务器上运行游戏服务,现在连接不上,从安全角度分析原因

   3)如何保证充值,计费数据库的安全

10.脚本部分

   1)从a.log文件中提取包含“warning”或者“fatal”,同时不包含“IGNOR”的行,然后提取“:”分割的第五个字段

   egrep 'WARNING|FATAL' a.log | egrep -v 'IGNOR' | awk -F ":" '{print $5}'

   2)添加新组为class01,然后添加输入这个组的30个用户,用户名的形式为std01到std30

   #!/bin/bash

   groupadd class01

   for ((i=1;i<=30;i++))

   do

   if [$i -lt 10];then

   username="$std0"$i

   else

   username="$std"$i

   fi

   useradd -G class01 $username

   done

   3)在每个月的第一天备份并压缩/etc目录下的所有内容,存放在/root/backup目录下,文件名为yymmdd_etc,shell程序filebach存放在/usr/bin目录下

   #!/bin/bash

   filename=`date +%y%m%d`_etc.tar.gz    ###``符号 

   cd /etc

   tar -zcvf $filename *

   mv $filename /root/backup/

#echo * * 1 * * root ./fileback.sh & >>/etc/crontab

11.用shell编程,判断文件是不是字符设备文件,如果是,将其拷贝到/dev目录下

#!/bin/bash

#1.sh

#判断一文件是不是字符或块设备文件,如果是将其拷贝到 /dev 目录下

#file executable: chmod 755 1.sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

echo -e "The program will Judge a file is or not a character device file.\n\n"

read -p "Input a filename : " filename

if [ -c "$filename" ]  

then

       echo "$filename is a device file" && cp $filename /dev/ &

else

       echo "$filename is not a device file" && exit 1

fi

12.请用shell查询文件file1里面空格开始的所在行号

grep -n "^ " file1 | awk -F ":" '{print $1}'

13.用正则表达式匹配邮件地址和网站

 

14.awk sed 问题

   1)在每一行后面增加一空行 

   sed G

   2)在匹配式样“regex”的行之后插入一空行 

   sed '/regex/G'

   3)计算行数(模拟“wc-1”) 

   wc-1

   4)在每一行开头处插入5个空格(使全文向右移动5个空格)

   sed 's/^/     /' 

   5)将“foo”替换成“bar”,并只在航中未出现字串“baz”的情况下替换 

   sed '/baz/!s/foo/bar/g'

   6)将每两行连接成一行(类似“paste”) 

   sed '$!N;s/\n/ /'

   7)显示包含“AAA”“BBB”“CCC”的行(固定次序) 

   sed '/AAA.*BBB.*CCC/!d'

   8)为数字字串增加都好分隔符号,将“1234567”改为“1,234,567” 

   gsed ':a;s/\B[0-9]\{3\}\>/,&/;ta'                     # GNU sed

   sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'  # 其他sed

   9)值保留重复行中的第一行,其他行删除 

   sed '$!N; /^\(.*\)\n\1$/!P; D'

   10)删除8的倍数行

   gsed '0~8d'                           # 只对GNU sed有效

   sed 'n;n;n;n;n;n;n;d;'                # 其他sed 

15.linux如何在shell环境得知远程计算机的运行时间

16.sed将文件test中第50行中的“haiwao”改为“haiwai”

   sed -ie '50s/haiwao/haiwai/g' test

17.如何查看当前linux系统状态,如cpu,内存,负载,版本

18.编写shell,解决以下两个问题

   1)将当前目录中大于50k的文件移动到/tmp目录下

#!/bin/bash

for FILES in `ls -l | sed -e '1d' | awk '$5 > 50000 {print$NF}'` ;

do 

mv ${FILES:?"undefined"} /tmp ;

done

   2)假设eth1的IP为192.168.10.20/255.255.255.0得到eth1的网络地址

   

19.有文件file1

   1)查询file1里面空行所在的行号

   2)打印file1的第2~5行

   3)查询file1以hai结尾的行

20.在11月份内,每天早晨6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh怎么实现

* 6-12/2 * 11 * /usr/bin/httpd.sh

22.dmesg命令中看到ip_conntrack:table full,dropping packet,如何解决

 

23.在每周6凌晨3:15执行/home/shell/collect.pl,并将标准输出和标准错误输出到/dev/null设备,请写出crontab中的语句

15 3 * * 6 /home/shell/collect.pl>>/dev/null 2>&1

24.用一条命令查看目前系统已启动服务所监听的端口

[root@nagios ~]# netstat -antl |grep "LISTEN"  

25.请适用linux系统命令统计出establish状态的连接数有多少

netstat -an |grep 80 |grep ESTABLISHED |wc -l

26.一个EXT3的文件分区,当用touch新建文件时报错,错误信息是磁盘已满,但适用df-H查看分区信息时只使用了50%,请分析具体原因

加大ip_conntrack_max 的值;
降低ip_conntrack_timeout的时间;

27.列出常见打包工具并写出相应解压缩参数

tar 包       tar -cvf icewarp.tar icewarp      tar -xvf icewarp.tar     只打包不压缩
tar.gz 包    tar -czvf icewarp.tar.gz icewarp  tar -zxvf icewarp.tar.gz 中高
tar.bz2 包   tar -cjvf icewarp.tar.bz2 icewarp tar -jxvf icewarp.tar.bz2 高

28.解释

     Nginx,RIP,MEMCACHE,SYSTEMV,NC,MTR,NGINXMONGO,EC2,VPS

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值