百道面试题

1请写出ip 10.0.14.70 mask255.255.255.192 的网络地址和广播地址,并写下命令,在linux系统上配置10.0.14.65座位默认网关

网络位25位,借1位,ip数为128 ,子网掩码255.255.255.128

网络位26位,借2位,ip数为64,子网掩码255.255.255.192

网络位27位,借3位,ip数为32,子网掩码255.255.255.240

网络位28位,借4位,ip数为16,子网掩码255.255.255.240

网络位29位,借5位,ip数为8,子网掩码255.255.255.248

网络位30位,借6位,ip数为4,子网掩码255.255.255.252

网络地址为10.0.14.64,广播地址为10.0.14.127

vi /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY=10.0.14.65

2请写下linux系统中cron定时任务,每天的07点到23点,每半小时执行apache重启,并禁用系统邮件通知

*/30 07-23 * * * /etc/init.d/apache restart &>/dev/null

3请写下命令检查Nginx的当前配置文件,然后平滑重启

nginx -t    kill -HUP nginx 主进程号

4请简述一下nginx与php-fpm的两种连接方式及其优缺点

在linux中,nginx服务器和php-fpm可以通过tcp socket和unix socket两种方式实现。unix socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。这种方式需要再nginx配置文件中填写php-fpm的pid文件位置,效率要比tcp socket高。tcp socket的优点是可以跨服务器,当nginx和php-fpm不在同一台机器上时,只能使用这种方式。

5用mysql嘛?都有什么依赖包

ncurses-devel ncurses

16mysql怎么更改用户密码

Mysqladmin -u用户名 -p旧密码 password 新密码

6请写下命令在mysql数据库中检查当前从库的同步状态,然后将同步修改为binlog,“mysql-bin.0000001”,偏移量为“4”。

在从上用show slaves status 查看同步状态,然后在从中开启中继日志文件

relay-log=relay-log-bin ##中继日志文件名

relay-log-index=slave-relay-bin.index ##中继日志索引文件

change master to master_host= ip, master_user=用户名, master_password=密码, master_log_file=mysql-bin.0000001,master_log_pos=4;

7 请在mysql数据库中的sql查询,查找customer表中uid列大于100的记录并以uid排序,出前10条记录

select uid from customer where uid >100 and uid <=110;

8请注释说明以下iptables规则中划线部分中的实现的功能

拒绝源地址192.168.0.0/16的出站路由 拒绝目的地址192.168.0.0/16 的出站路由

允许为目的地址192.168.3.150做路由转发 ,放在第一条规则-m comment做注释的意思

拒绝转发目的地址192.168.0.0/16这个网段做路由转发并返回错误报告的性质为不可达,只针对REJEPT这个动作使用

给10.0.1.0/24位通过eth0网卡做路由转发

8写下之前工作中在生产环境配置使用过的监控系统?针对网络或服务配置过那些监控项?使用什么方法进行报警通知

通过zabbix软件来监控cpu,内存,网卡出入站流量 mysql主从状态,redis主从状态,nginx状态

9写下之前工作中在生产环境中对何种角色的服务器上的那些内容配置过备份,使用了什么备份方法及备份策略,使用了什么方法检查备份的可用性

Mysql数据库服务器 物理备份和逻辑备份,每天一次增量备份,每周一次全量备份,最简单的  找个备份服务器,备份服务器上安装一个mysql,然后进行测试每天的备份数据是否能够正常导入

10查找小于400kb的文件并删除

find / -size -400k |xargs rm -rf

11export和source的区别

Export定义全局变量,source是执行刚初始化的文档

12用什么操作系统,怎么查版本号

Centos6.5 cat /etc/reahat-release

13centos7怎么关闭开启服务

Systemctl start 服务

Systemctl stop 服务

14查找文件位置

Find /-name

15apache的三种工作模式

Mpm-prefox,每一个进程处理一个线程

Mpm-worker,每一个进程处理多个线程

Mpm-event,worker升级版

17iptables和zabbix用的什么版本

1.4.7 3.4.2

18 DNS怎么本地解析

本地dns缓存— hosts文件—localDNS(主备)—根服务器—顶级域服务器—1级域服务器—权威服务器—缓存本地—缓存到localDNS中

20写出常用的服务器状态查看命令,比如cpu,内存,io利用率,网络状况

Top  ps-aux  free -m  iotop  netstat

21请写出一条命令,将当前目录中创建时间超过7天的文件压缩gz格式

find ./ -mtime +7 |xargs tar zcvf a_$(data “+%F”) .tar.gz

22请写出使用iptables做nat转发的步骤及命令

Iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j DNAT --desitination-dport 192.168.3.10/24

23客户端发起请求,需要web代理服务器根据请求(GET和post)的参数代理到不同的后缀服务器,请选择web代理软件并简述实现的过程

Nginx代理服务器,在主配置文件http区域中加入upstream配置项,实现反向代理和负载均衡

24每天中午12点使用tcpdump命令抓取的端口为tcp80的1000个包输出到当前目录并以当前的时间命名,请写出定时任务及脚本内容

vi /tmp/tcodump.sh

#!/bin/bash

tcpdump -c 1000 tcp port 80 >>$(data “+%F_%T”).txt

:wq

chmod +x /tmp/tcpdump.sh

0 12 * * * /tmp/tcpdump.sh

25编写nginx rewrite规则,把http://192.168.1.1/ops/index.php/admin/idc转化成http://192.168.1.1/ops/index.php?act=admin&arg=idc

location ~ /ops/index.php/admin/idc {

valid_referers nonde blocked http://192.168.1.1;

if  ($invalid_referer){

        rewrite  ^/  http://192.168.1.1/ops/index.php?act=admin&arg=idc;

}

}

26 linux 系统层面有哪些常见的安全防护方法

防火墙只开放对外的服务端口,禁止root远程登录,修改/etc/passwd访问权限,修改sshd的服务端口,只允许公司出口ip连接sshd服务端口,还有修改执行命令历史记录数

27请简述非对称加密算法工作过程

A和B都有产生一对用于加密和解密的公钥和私钥 ,将公钥发给对方,当A和B产生数据交流时,A只有A的私钥,B只有B的私钥,公钥只能用各自的私钥来解密,相当来说比较安全

28请填写192.168.0.0/22地址段可用地址数量和范围,掩码地址,网络地址,广播地址

可用ip1022,地址范围是0-1023 子网掩码255.255.252.0,网络地址为192.168.0.0,广播地址为192.168.3.255

29路由器和交换机的功能

交换机连接局域网内多个节点,用于局域网内的数据交换,组建局域网用

路由器则是连接局域网和广域网,用于不同网段之间的数据交换,局域网内各节点都是通过路由器和外网进行交换的

30 udp和tcp的区别

Tcp安全,三次握手和四次断开,传输速度慢

Udp不安全,传输速度快

31如何在linux系统下添加路由

route add default gw

32七层网络模型

应表会传网数物

33linux开机启动过程

加电自检bios — MBR引导—GRUB引导—加载内核—加载init.d(1)—/etc/inittab

34你在公司常用的打包工具是什么,常用参数解释下

tar    zcvf打包为gz格式 zxvf解压gz格式

jcvf打包为bzip2格式 jxvf解压bzip2格式

Jcvf打包为xz格式 Jxvf解压xz格式

35设置一个定期的任务,每周日八点系统重启

0 8 * * 7 reboot

36 怎么样查询当前目录下大于100K的文件,然后剪切到/tmp目录下

vi 100K.sh   

find ./ -size +100K |xargs -i mv {} /tmp

 :wq

37 创建一个用户组name,在创建用户{file 1..30},更改用户属组为name

vi name.sh

grandadd name

for i in {1..30}; do

useradd file$i

chown :name file $i

done
:wq

38给了一个ip和子网掩码,算出他的网络地址


#!/bin/bash
#
#
#

ETH0_MASK=$(ifconfig eth0 | grep "inet addr:" | awk -F " " '{print $4}' | awk -F ":" '{print $2}')
ETH0_IP=$(ifconfig eth0 | grep "inet addr:" | awk -F " " '{print $2}' | awk -F ":" '{print $2}')

get_netdes() {
ip1=$(echo $1 | awk -F "." '{print $1}')
ip2=$(echo $1 | awk -F "." '{print $2}')
ip3=$(echo $1 | awk -F "." '{print $3}')
ip4=$(echo $1 | awk -F "." '{print $4}')
echo "IP:$ip1.$ip2.$ip3.$ip4"
mask1=$(echo $2 | awk -F "." '{print $1}')
mask2=$(echo $2 | awk -F "." '{print $2}')
mask3=$(echo $2 | awk -F "." '{print $3}')
mask4=$(echo $2 | awk -F "." '{print $4}')
echo "MASK:$mask1.$mask2.$mask3.$mask4"

var=1
var=$[$var+1]
gate1=$(($ip1&$mask1))
gate2=$(($ip2&$mask2))
gate3=$(($ip3&$mask3))
gate4=$(($ip4&$mask4))
echo "网络地址:$gate1.$gate2.$gate3.$gate4"
}

get_netdes $ETH0_IP $ETH0_MASK

39允许这个ip地址访问本机的3306端口

Iptables -I INPUT -p tcp -m tcp --dport 3306 -s 192.168.100.100 -j ACCEPT

40给一个ip,将其转换为内网ip访问一个内网端口

Iptables -t nat -A PREROUTING -s 192.168.100.1/24 -d 192.168.100.2/24 -p tcp --dport 100 -j DNAT --to-destination 192.168.50.2/24:100

41怎么将22端口改为另一个端口号

Iptables -t nat -A PREROUTING -d 192.168.100.100 -p tcp --dport 22 -j DANT --to 192.168.100.100:123

42虚拟化技术有那些?全虚拟化与半虚拟化的区别是什么?

Cpu虚拟化  网络虚拟化  服务器虚拟化 存储虚拟化  应用虚拟化

全虚拟化,也称为原始虚拟化技术,是一种虚拟化方法,该模型使用虚拟机协调客户系统和原始硬件

半虚拟化是另一种类似于全虚拟化的热门技术,它使用hypersion分享存取底层的硬件,但是它的客户操作系统集成了虚拟化方面的代码,该办法无需从新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作

43如何把一个abc.tar.gz压缩包解压到/data目录中

tar zxvf abc.tar.gz -C /data

44如果mysql忘记了root密码,请给用户root密码进行重置成新密码(abc123)

vi /etc/my.cnf

skip-grant-tables

service mysqld start

wq

Mysql

Use mysql;

Update user set password=“abc123” where user=“root”;

Flush privileges;

45请给某linux服务器添加一个定时作业;每天零点30分执行脚本/backup.sh

30 24 * * * ./bachkup.sh

46 请修改/data目录及其里面所有文件的权限为770,并且用户为abc,组为admin

chmod -R 770 /data  

Chown -R abc:admin /data

47如何查看磁盘分区的情况,怎样给分区/deb/sdb1格式化成ext4.

fdisk -l   mkfs -t ext4 /dev/sdb1

48请说一下下面这个命令所做的事情是什么?

sed -i ‘s:net.ipv4.tcp_tw_recycle=.*;net.ipv4.tcp_tw_recycle=0;’ /etc/sysctl.conf

替换内容中的字符串

systemctl network restart

49 如何检查服务器当前所有的监听端口,假如当前10000端口被占用了,怎么知道被什么服务器或者进程占用着

netstat -uptln

50 请给linux服务器添加默认路由,其中默认网关是192.168.1.100

route add default gw 192.168.1.100

51如果需要修改tomcat的JVM的大小,请问往那个文件修改,如果堆内存为1G,该怎么改

要添加在tomcat 的bin 下catalina.sh 里

JAVA_OPTS="-Xms1024k -Xmx1024k -Xss -XX:PermSize=128m -XX:MaxPermSize=1024k"

52 sql书写题,SC(Sid,Cid,score)学生成绩明细表

学号 课程编号 成绩

0001       A1  80

0001   A2  70

0002   A1  60

0002   A2        83

请查询出平均成绩大于70分的同学的学号和平均成绩

53 如果你负责的项目中某线上数据库以(mysql或oracle为例,任选其一)出现性能问题,请问你会从那些手段来进行问题的排查以及优化处理

查进程,端口是否存在,主从复制,slave是否同步,查看主master的i/o进程是否异常

54iptables封禁eth0网卡与192.168.1.1通讯的所有数据包

Iptables -t filter -A INPUT -i eth0 -s 192.168.1.1 -j drop

Iptables -t filter -A OUTPUT -i eth0 -d 192.168.1.1 -j drop

 Shell脚本实现

在root目录下有若干个目录,目录名称随机,每个目录下有多层子目录,在各级不同的子目录中有以.git结尾和其他文件,要求.git文件移到tmp目录下

vi git

find /root -type f ! -name “.git” | xargs -i mv {} /tmp

:wq

55 找出三天前修改过的文档

find ./ -type f -mtime 3

56用cd怎样快速回到上层目录

cd ..

57写出两台linux服务器同步文件的方法

rsync + inotify

58创建定时任务,在7月15号21点45分执行copy.sh命令

45 21 15 7 * copy.sh的绝对路径

59top命令你能了解多少信息

系统运行时间和平均负载,任务,cpu状态,内存使用,字段和列

60简述vmstat下各参数的含义

R表示运行队列,b表示堵塞进程,swap虚拟内存使用的大小,free空闲内存,buff权限的缓存 cache目录缓存 si 磁盘读入虚拟内存的大小,so虚拟内存写入磁盘的大小,bi每秒接受的块数量,bo每秒发送的块数量 in每秒cpu的中断次数,cs每秒上下文切换次数,us用户cpu时间,sy系统cpu时间,id空闲cpu时间,wt等待io cpu时间

61linux中wtmp,lastlog,messages各文件作用

登陆记录和退出记录在wtmp

最后一次登陆文件可以用lastlog命令查看

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

62linux之间怎么实现无密码登陆,怎么实现简述

ssh远程登陆 ssh-keygen -t rsa

ssh-cpoy-id 用户@ip 建立非对称秘钥

63用acl在jdk-1.5目录为sws用户赋予rx权限

getfacl /jdk-1.5

setfacl  -m u:sws:rx /jdk-1.5

64vi编辑文档,如何快速移动光标,如一次移动一个单词,或者一次移动到此为或此首,或行尾,又如何撤销恢复

gg行首 G行末 u撤销

65用iptables设置访问10.0.0.177的80800的流量转发到10.0.0.177:8080端口

一共有65535个端口

iptables -t nat -A PREROUTING -p tcp  -d 10.0.0.177 --dport 80800 -j ACCEPT --to-ports 8080

66请列出进程19145所打开的文件数

 lsof -p 19145 |wc -l

67从catalina.out 中提取包含WARNINGFATAL,同时不包含IGNOR的行,然后提取以:分割的第五个字段。

grep -E (WARNiNG|FATAL) catalina.out |grep -v “IGNOR” |awk -F ‘: ’ ‘{print $5}’ 

68显示/etc/inittab 中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行

grep "^\#[[:space:]]\{1,\}.\{1,\}" /etc/inittab

69tomcat内存泄露,如何解决

 第一种解决办法: 使用低于6版本的tomcat 第二种解决办法: 在tomcat的server.xml中 <Listener className=“org.Apache.catalina.core.JreMemoryLeakPreventionListener”/> 这个监听给关了

70如何调节tomcat的并发数

在tomcat配置文件server.xml中的配置中,和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75 acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100

71对内存优化的参数有哪些?各代表何含义?

1与hugepage相关的调优参数

2与buffer和cache的相关调优参数

3与交换内存的相关调优参数

4内存耗尽时候的相关调优参数

5与容量有关的内存调优参数

6与通信相关的调优参数

7.与容量相关的文件系统可调优参数:

72编写一个简单的tomcat自启动脚本,用service命令来调用

#!/bin/bash

# chkconfig: 35 24 65

case $1 in

        start)

                /usr/local/tomcat/bin/startup.sh &> /dev/null

                echo "tomcat is running..."

                ;;

        stop)

               /usr/local/tomcat/bin/shatdown.sh &> /dev/null

                echo "tomcat is stop..."

                ;;

      restart)

                $0 stop

                $0 start

                ;;

        *)

                echo "使用方法:/etc/init.d/tomcat (start|stop|restart)"

esac

73JVM的组成部分有哪些

类装载器子系统  方法区 堆 java栈 程序计数器 本地方法栈 执行引擎

74请简述raid5,raid6,raid10的特点

Raid5至少有3块磁盘,利用率n-1,读写低,数据安全性高,

Raid6至少有4块磁盘,利用率(N-2)XD单磁盘容量,对数据要求高,性能要求不高

Raid10至少4块磁盘,利用率50%,成本高

75在每个月的第一天备份并压缩/etc目录下的所有内容,存放在/root/backup目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日,shell程序fileback存放在/usr/bin目录

vi fileback

#!/bin/bash

DATE=$(date +%Y%m%d)

cd /

tar zcvf $DATE_etc.tar.gz /etc

mv $DATE_etc.tar.gz /root/backup

:wq

mv fileback /usr/bin

0 0 1 */1 * fileback

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

#!/bin/bash

read filename

if [ -c $filename ];then

cp $filename /dev

else

echo “filename is not device file”

fi

:wq

  

77请写出nginx+tomcat+redis实现负载均衡,资源分离,session共享的配置

安装一台nginx和两台tomcat和一台radis,在nginx配置项中upstream指定负载均衡,指定tamcat成员,location实现了静态资源的分离,静态资源交给nginx80端口来处理,tomcat8080端口处理动态页面,配置tomcat让其session保存在redis上,在context.xml配置

78写出sql语句查出下表中总成绩大于100分的信息

ID NAME  COURSE   SCORE

  1. ZHANG   SQL 60
  2.        LI   C            50
  3. WANG   JAVA 70

4         ZHANG       JAVA            55

5    LI   SQL 60

6 LI   JAVA 65

select NAME,sum(SCORE) from user group by NAME having sum(SCORE)>100

79简述redis集群的配置

在两台服务器上装上redis,一台master redis,另外一台上做两个slave redis,复制slave1的配置文件生成slave2,修改默认端口,更改pid,更改日志文件,在master上设置从节点的数量,修改同步超时时间, 在slave上指定ip地址和端口,指定链接master的连接密码

80简述mysql集群的配置

Mysql主从复制基于二进制文件,事务更新,master在二进制文件记录,通知存储引擎提交事务,slave将master的二进制文件复制到中继日志,slave开启一个i/o线程,i/o线程在master的二进制文件读取事件,中继日志通常放在os中

81简述lvs和keepalived配置

在两台服务器上安装keepalived,在主配置文件中设置vip,优先级,设置算法,设置lvs的模式,健康检查端口,配置从上的vip,优先级,设置算法,设置lvs的模式,健康检查端口

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值