Linux常见面试题3

1、解释PV、UV、IP是什么意思

PV(访问量)

即Page View,页面浏览量或点击量,用户每次刷新或点击一次即被计算一次

UV(独立访客)

即Unique Visitor,访问您网站的一台电脑客户端为一个访客

00:00-24:00内相同的客户端只被计算一次

 IP(独立IP):

即Internet Protocol,指独立IP数.00:00-24:00内相同IP地址被计算一次

计算:

PV日访问量:

访问IP量 * 8 = PV

UV日访问量:

访问IP量 / 2 = UV

并发量:

访问IP量 / 10 = 并发量

   中小企业日PV访问量一般为五万左右

2、查看进程打开的文件

lsof -c 进程名

3、查看打开文件的进程

  lsof 打开的文件名


4、用什么命令查看文件的格式(tar、gz)

tar tvf file.tar

tar ztvf file.tar.gz


5、找出/opt目录及其子目录所有以*.txt结尾且大于100K的文件,并删除

find /opt -name *.txt -size +100k -exec rm {} \;

7、如何查看网卡速度和当前流量情况

1、当查看网速度  ethtool eth0

2、查看当前流量  watch ifconfig 或 iftop


8、如何测试网卡的吞吐量

1、iptraf工具提供了每个网卡吞叶量的仪表盘: iptraf -d eth0

2、watch命令 watch -n 1 "/sbin/ifconfig eth0 | grep bytes"

9、如何测试硬盘的读写速度

dd if=/dev/zero of=/opt/test.txt bs=1G count=1 

10、free命令的输出如下,请解析各个输出项的含义

    第一部分Mem行:

total 内存总数: 1002M

used 已经使用的内存数: 769M

free 空闲的内存数: 232M

shared 当前已经废弃不用,总是0

buffers Buffer 缓存内存数: 62M

cached Page 缓存内存数:421M

关系:total = used + free

第二部分(-/+ buffers/cache):

(-buffers/cache) used内存数:286M (指的第一部分Mem行中的used – buffers – cached)

(+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数.

第三部分是指交换分区, 如Windows设置的虚拟内存

11、简述TCP3次握手的过程 ?

第一次:用户A向用户B发送syn包请求交互

第二次:用户B收到syn包 ,返回ack包确认+syn包请求交互

第三次:用户A收到ack+syn包,返回ack包确认交互,状态链接成功ESTABLISHED

12、如何在尽可能短的时间内在500台服务器上执行ifconfig命令?

使用Ansible、SaltStack等自动化运维工具,或者利用shell、Python等脚本写多线程脚本执行

13、如何恢复root密码?

1、引导进入单用户模式,然后重设密码

过程:进入grub界面按上下健,光标定位到kernel,再按e,空格写1,回车再按b启动,进入终端 输入passwd     修改新密码

14、ulimit -SHn 1000000这个命令的作用是什么?

设定打开最大文件数为1000000

15、用一个命令实现,统计80端口的所有链接状态并按照链接状态由大到小排列显示

netstat -nat | awk ‘/:80/{++S}{$NF}END{for(a in S)print S[a],a}‘ | sort

16、描述一下DDOS攻击原理

DDOS的攻击原理:

指非常多的机器,往被攻击的机器发起大的流量访问,并且只往被攻击机器发请求,不管被攻击机 是否会响    应,填满被攻击机的网络带宽。

17、有台16核32G的Linux服务器,如何查看负载?如果负载很高,如何排查原因?(写出详细的命令或 者步骤)

uptime或top查看机器负载,

根据使用top查看出的进程,看一下是什么应用,再查看对应的应用的日志,再看看是因为是访问量过大的问    题,还是因为应用性能的问题

18、数据库

1、有如下信息表,表名t_host

字段名称      描述

id          机器ID

IP          机器IP

Cpu_num      机器CPU核数

Cpu_model     CPU型号

Host_comment   机器备注信息

写SQL语句统计24核并且CPU型号为E5-2420的机器数量

select count(*) from t_host where Cpu_num=24 and Cpu_model=‘E5-2420‘;

2、MySQL查看一个表的结构,使用什么命令?

desc tablename;

3、MySQL数据库备份有哪几种方式,分别是什么?

三种方式:1、完整备份

2、增量备份

3、差异备份

2、将t1表id字段倒序排序,从第二行开始取,读三行

select * from t1 order by id desc limit 2,3;

19、Shell脚本

1、写一个脚本,实现批量增加20个用户,用户名为user01-30,密码为随机的大小写字母加数字,密码长度为12位

for i in `seq 1 30`

do

pwd=$(head -c 500 /dev/urandom | tr -dc a-zA-Z0-9|head -c 12)

if[$i -lt 10];then

useradd user0$i

echo "user0$i$pwd" | passwd --stdin user$i

echo user0$i user0$i$pwd >> userinfo.txt

else

useradd user$i

echo "user$i$pwd" | passwd --stdin user$i

echo user$i user0$i$pwd >> userinfo.txt

fi

done

2、编写shell脚本,在当前目录下生成1000个文件,每个文件100行,文件名和文件内容随意

#!/bin/bash

for i in {1..1000}

do

sleep 1

touch $i.txt

for b in `seq 1 100`

do

echo $b >> $i.txt

done

done

3、编一个脚本放在计划任务里每分钟运行,当服务器负载超过5时(低于5时,什么也不做,脚本退出)打印      服务器的内存,磁盘I/O使用情况,并列出占用CPU资源较大的1-10位

思路:

通过内核负载监控文件去取负载数据,并只取整数部分的数据来判断就可以

负载的文件路径:/proc/loadavg

脚本路径:/data/monitor/sys_mon.sh

日志路径:/data/logs/monitor/sys_mon.log

脚本内容:

#!/bin/sh

echo ‘‘

date

LOAD=`cat /proc/loadavg |awk -F‘.‘ ‘{print $1}‘`

if [ $LOAD -gt 5 ] || [ $LOAD -eq 5 ];then

echo "MEM USED###############################"

free -m

echo "DISK IO USED###############################"

iostat -x 1 1

echo "CPU USED ###############################"

ps -aux|sort -rn -k3 |head -10

fi

20、Python开发

1、合并2个字典

dict1=(1:[1,11,111],2:[2,22,222])

dict2=(3:[3,33,333],2:[4,44,444])

合并两个字典得到类似

(1:[1,11,111],2:[2,22,222],3:[3,33,333],4:[4,44,444])

方法1:dictMerged1=dict(dict1.items()+dict2.items())

方法2:dictMerged2=dict(dict1**dict2)

方法2等同于:

dictMerged=dict1.copy()

dictMerged.update(dict2)

2、求2个list的差集

a_list = [1,2,3,4]

b_list = [1,4,5]

ret=[]

for i in a_list:

if i not in b_list:

ret.append(i)

时间: 2024-10-17 11:20:01

Linux常见面试题3的相关文章

linux常见面试题

1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用i字节来标识. 4. 全部磁盘块由四个部分组成,分别为引导块.i字节表块.专用块.数据储存块. 5. 链接分为: 硬链接 和 符号链接 . 6. 超级块包含了i字节表 和 空闲块表 等重要的文件系统信息. 7. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 644,该文件属性是 目录 . 8. 前

Linux常见面试题1

一. 有文件file1 1.查询file1 里面空行的所在行号 cat file1 | grep -n ^$ 2.查询file1 以abc 结尾的行 grep abc$ file1 二.如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1 iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp -dport 80 -j DNAT-to-destination 192.168.2.1:8080 三.crontab 在

Linux常见面试题2

填空 1.在Linux系统中,以 文件 方式访问设备. 2.Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统 3.Linux文件系统中每个文件用 i节点 来标识 4.全部磁盘块由四个部分组成,分别为 引导块.专用块.i节点块.数据存储块 5.前台起动的进程使用 ctrl+c 禁止 6.安装Linux系统对硬盘分区时,必须有两种分区类型:文件系统 和 交换分区. 7.网络管理的重要任务是 监控 和 控制 8.内核分为 文件管理系统.I/O管理系统 .内存管理系统 和进程管

linux系统运维企业常见面试题集合(三)

linux系统运维企业常见面试题集合(三) 01  写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行:(2) 一行中,如果包含"11111",则在"11111"前面插入"AAA",在"11111"后面插入"BBB",比如:将内容为0000111112222的一行改为:0000AAA11111BBB2222 [[email protected]~]# cat -n /t

java常见面试题——java笔试题总结

注:本文转载自http://www.cnblogs.com/huajiezh/p/5790928.html,版权归其所有! Java常见面试题总结 一.Java基础 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. 3.说说你知道的几个Java集合类:list.set.queue.map实现类咯... 4.描述一下ArrayList和LinkedList各自实现和区别 5.Java中的队列都有哪些,有什么区别. 6.反射中,Class.forName和cl

Java 并发基础常见面试题总结

Java 并发基础常见面试题总结 1. 什么是线程和进程? 1.1. 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的.系统运行一个程序即是一个进程从创建,运行到消亡的过程. 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程. 如下图所示,在 windows 中通过查看任务管理器的方式,我们就可以清楚看到 window 当前运行的进程(.exe 文件的运行). 1.2

TCP常见面试题

常见面试题 1.为什么建立连接协议是三次握手,而关闭连接却是四次握手呢? 这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在 一个报文里来发送. 但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了:但未必你所有的数据都全部发送给对方了,所以你可以 未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这

JAVA常见面试题及解答-java开发

JAVA常见面试题及解答 Java的垃圾回收总结  浅谈Java中的内部类 1)transient和volatile是java关键字吗? 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: class T { transient int a;  //不需要维持 int b;  //需要维持 } 这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存. volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变.在多

java主线程等待所有子线程执行完毕在执行(常见面试题)

java主线程等待所有子线程执行完毕在执行(常见面试题) java主线程等待所有子线程执行完毕在执行,这个需求其实我们在工作中经常会用到,比如用户下单一个产品,后台会做一系列的处理,为了提高效率,每个处理都可以用一个线程来执行,所有处理完成了之后才会返回给用户下单成功,下面就说一下我能想到的方法,欢迎大家批评指正: 用sleep方法,让主线程睡眠一段时间,当然这个睡眠时间是主观的时间,是我们自己定的,这个方法不推荐,但是在这里还是写一下,毕竟是解决方法 2.使用Thread的join()等待所有