1.解释top命令和vmstat命令
top 动态 vmstat静态
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参考模型的七个层次
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