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)