python运维⾯试题1、请使⽤Linux系统命令统计出establish状态链接数有多少?
netstat -an |grep ESTABLISHED |wc -l
-a (all)显⽰所有选项,默认不显⽰LISTEN相关
-t (tcp)仅显⽰tcp相关选项
-u (udp)仅显⽰udp相关选项
-n 拒绝显⽰别名,能显⽰数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显⽰建⽴相关链接的程序名
-r 显⽰路由信息,路由表
-e 显⽰扩展信息,例如uid等
-s 按各个协议进⾏统计
-
c 每隔⼀个固定时间,执⾏该netstat命令。
提⽰:LISTEN和LISTENING的状态只有⽤-a或者-l才能看到
2、查询file1⾥⾯空⾏所在⾏号?
grep -n "^$" file1
3、查询file1以abc结尾的⾏?
grep "abc$" file1
4、Crontab在11⽉份内,每天的早上6点到12点中,每隔2⼩时执⾏⼀次/use/bin/httpd.sh 怎么实现?
0 6-12/2 * 11 * /usr/bin/httpd.sh
5、写⼀个脚本查最后创建时间是3天前,后缀是*log的⽂件并删除。
#/bin/bash
# filename: del_log.sh
find / -name "*.log" -mtime 3 | xargs rm -rf
#/bin/bash
# filename: del_log.sh
find / -name "*.log" -mtime 3 -exec rm -rf {} \;
#/bin/bash
# filename: del_log.sh
find / -name "*.log" -mtime 3 -ok rm -rf {} \;
6、⽤shell在/usr/local下建⽴20个⼦⽬录xunlei1-xunlei20,再在这个⼦⽬录下分别建255个⼦⽬录dir1-dir255,再在255个⼦⽬录下创建10000个⽂件xunlei1.html-xunlei10000.html。
mkdir -p /usr/loca/xunlie{1..20}/dir{1..255}/
touch /usr/loca/xunlie{1..20}/dir{1..255}/xunlei{1..10000}.html
7、通过Nginx访问⽇志access.log统计IP和每个地址访问的次数,按访问量列出前10名,
⽇格式样例如下 192.168.1.247 - -[02/Jul/2010:23:44:59 +0800] -GET /HTTP/1.1” 200 19
java面试题csdncat access_log | awk ‘{print $1}’ | uniq -c|sort -rn|head -10
企业案例
处理⼀下⽂件内容,将域名取出并根据域名进⾏计数排序处理(百度和sohu⾯试题)
1 2 3 4 5 6 7[root@web01 ~]# cat access.log /index.html /1.html
/index.html /3.html /2.html
解答:
分析:此类问题是运维⼯作中最常见的问题。可以演变成分析⽇志,查看TCP各个状态连接数,查看单IP连接数排名等等。
1 2 3 4[root@web01 ~]# awk -F ‘[/]+‘ ‘{print $2}‘ access.log|sort|uniq -c|sort -rn -k1
sort(选项)(参数)
选项
-b:忽略每⾏前始出的空格字符;
-c:检查⽂件是否已经按照顺序排序;
-d:排序时,处理英⽂字母、数字及空格字符外,忽略其他的字符;-f:排序时,将⼩写字母视为⼤写字母;
-i:排序时,除了040⾄176之间的ASCII字符外,忽略其他的字符;-m:将⼏个排序号的⽂件进⾏合并;
-M:将前⾯3个字母依照⽉份的缩写进⾏排序;
-n:依照数值的⼤⼩排序;
-o<;输出⽂件>:将排序后的结果存⼊制定的⽂件;
-r:以相反的顺序来排序;
-t<;分隔字符>:指定排序时所⽤的栏位分隔字符;
+<;起始栏位>-<;结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前⼀栏位。
8、杀死以A开头的所有进程。
ps -ef |grep A|grep -v grep|cut -c 9-15 |xargs kill-9
在Linux平台上后台运⾏4个vim进程,使⽤如下命令即可同时结束掉4个vim进程
ps -efww|grep vim |grep -v grep|cut -c 9-15|xargs kill -9
说明:管道符“|”⽤来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输⼊。
“ps -efww”是查看所有进程的命令。这时检索出的进程将作为下⼀条命令“grep“的输⼊,注意要结束其它程序时,请将上⾯命令中的vim替换成其它程序名。
“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。
“cut -c 9-15”是截取输⼊⾏的第9个字符到第15个字符,⽽这正好是进程号PID。
“xargs kill -9”中的xargs命令是⽤来把前⾯命令的输出结果(PID)作为“kill -9”命令的参数,并执⾏该命令。
“kill -9”会强⾏杀掉指定进程,这样就成功清除了同名进程。
9、如何查看占⽤端⼝8080的进程。
⽅法1 使⽤lsof命令
lsof(list open files)是⼀个列出当前系统打开⽂件的⼯具。在linux环境下,任何事物都以⽂件的形式存在,通过⽂件不仅仅可以访问常规数据,还可以访问⽹络连接和硬件。
使⽤的局域⽹:
执⾏命令: lsof -Pnl +M -i4|grep 8080
输出结果: java 1419 1401 10u IPv4 6793357 TCP *:8080 (LISTEN)
⽅法2 先使⽤,再⽤ ps命令
执⾏命令: netstat -anp|grep 8080
输出结果: tcp 0 0 :::8080 :::* LISTEN 12006/java
执⾏命令: ps -ef | grep 12006
输出结果: root 12886 12851 0 Dec09 ? 00:01:14 /home/bjca/bea/jdk160_05/bin/java -client -Xms256m -Xmx512m -
XX:CompileThreshold=8000 -XX:PermSize=48m -XX:
10、服务器免密登录如何实现?
blog.csdn/simongeek/article/details/53501629
11、Shell中$#,$$,$?,$0分别代表什么?
$$
Shell本⾝的PID(ProcessID)
$!
Shell最后运⾏的后台Process的PID
$?
最后运⾏的命令的结束代码(返回值)
$-
使⽤Set命令设定的Flag⼀览
$*
所有参数列表。如"$*"⽤「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"⽤「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本⾝的⽂件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
12、Nginx算法
blog.csdn/gzh0222/article/details/8095994
13、编写⼀个Nginx的access模块,要求准许192.168.3.29/24的机器访问,准许10.1.20.6/16这个⽹段的所有机器访问,准许34.26.157.0/24这个⽹段访问,除此之外的机器不准许访问。
location/{
access 192.168.3.29/24;
access 10.1.20.6/16;
access 34.26.157.0/24;
deny all;
}
www.it610/article/4921101.htm
14、Nginx优化⽅⾯有哪些?
15、请写出⼀段Python代码实现删除⼀个list⾥⾯的重复元素
#!/usr/bin/python
#coding=utf-8
List1=[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7]
List1=list(set(List1))
print(List1)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论