python运维开发面试题

请使用Linux系统命令统计出establish状态链接数

netstat -an |grep ESTABLISHED |wc -l

补充:

netstat 查看网络状态

常用参数: -lntup / -an

-a (all)显示所有选项,默认不显示LISTEN相关
-n 拒绝显示别名,能显示数字的全部转化成数字

-l 仅列出有在 Listen (监听) 的服务状态
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-p 显示建立相关链接的程序名

-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

查询file1运维工程师里面空行所在的行号

grep -n "^$" file1

补充:

gre系统/运维p"关键字" 过滤(三剑客的老三 )

常用参数:

不加参数         过滤,显示包含关键字的那一行
-v 排除,排除包含关键字的那一行,显示其他行
-E 指定多个关键字,关键字之间用 | 隔开(grep -E==egrep )
-i 不区分大小写
-n 显示行号
--color=auto 让过滤出来的关键字携带颜色

-B1 连带前1行一同过滤出来(before)
-A1 连带后1行一同过滤出来(after)
-C1 连带前后1行一同过滤出来(context:上下文)

-w 精确匹配关键字(也可以使用Linux中的正则表达式实现)

-q grep使用静默模式
静默模式下grep不会输出任何信息,无论是否匹配到指定的字符串,都不会输出任何信息
所以,我们需要配合”echo $?”命令,查看命令的执行状态
如果返回值为0,证明上一条grep命令匹配到了指定的字符串
如果返回值为非0,则证明上一条grep命令没有匹配到指定的字符串
在写脚本时
可能只是想要利用grep判断文本中是否存在某个字符串,只关心有,或者没有
这时,我们可以使用grep的静默模式,但是需要配合”echo $?”命令查看执行状态

示例:

[root@test1 tmp]# grep -C1 "年龄:18" testgrep 
姓名:张三
年龄:18
爱好:K歌,跳舞
--
姓名:李四
年龄:18
爱好:打麻将
[root@test1 tmp]# grep "zyc" testgrep 
zyc test
zyc TEST
zyc123
123zyc123
zyc123zyc
[root@test1 tmp]# grep -w "zyc" testgrep
zyc test
zyc TEST
[root@test1 tmp]# cat testgrep 
zyc test
zyc TEST
zyc123
123zyc123
zyc123zyc
姓名:张三
年龄:18
爱好:K歌,跳舞

姓名:赵六
年龄:25
爱好:喝酒

姓名:李四
年龄:18
爱好:打麻将

[root@test1 tmp]# grep -q "test" testgrep
echo $?
0

[root@test1 tmp]# grep -q "ttttt" testgrep
echo $?
1

查询file1以abc结尾的行

grep "abc$" file1

Cronta面试题阴字加一笔b在11月份内,每天的早上6点到12点中,面试题每隔2小时执行一次/usr/bin/httpd.sh

0 6-12/2 * 11 * /bin/sh /usr/bin/httpd.sh >/dev/null 2>&1

补充:

Crontab定时任务

格式:

*****/bin/sh /usr/bin/httpd.sh>/dev/null2>&1

通过 crontab -e 编辑定时任务,来将定时任务写到 /var/spool/cron/用户名

(定时任务的配置文件)下

通过 crontab -l 查看定时任务

注:写定linux命令时任务前写好注释

写一个脚linux命令本查找创建时间是3天前,后缀是*log的文件并删除

#/bin/bash    
# filename: del_log.sh

find / -name "*.log" -mtime 3 | xargs rm -fr

#/bin/bash
# filename: del_log.sh

find / -name "*.log" -mtime 3 -exec rm -fr {} \;

#/bin/bash
# filename: del_log.sh

find / -name "*.log" -mtime 3 -ok rm -fr {} \;

补充:

Linux面试题中的3个时间戳

atime(访问时间)

读一次文件的内容,这个时间就会更新,比如more,cat等命令

mtime(修改时间)

修改时间是文件最后一次被修改的时间,比如:vim操作面试题后保存文件

ctime(状态改动时间)

是该系统运维面试题文件的python123inode节点最后一次被修改的时间,通过chmod、chown命令修改文件属性,这个运维是做什么的时间就会更新

使用 stapython安装教程t 命令可以查看

用shell在python安装教程/usr/local下建立20个子目录xunlei1-xunlei20,再在这个子目录下分别建255个子运维宝目录dir1-dir255,再在255个子目录下创建10000个文件xunlei1.html-xunlei10000.html

mkdir -p /usr/local/xunlie{1..20}/dir{1..255}/
touch /usr/loca/xunlie{1..20}/dir{1..255}/xunlei{1..10000}.html

通过Nginx访问日志acces面试题目10道题s.l运维工程师需要掌握什么技能og统计python语言IP和每个地址访问的次面试题库精选800题数,按访问量列出前10名,日志格式样例系统运维是干嘛的如下 :

192.168.1.247 - -[02/Jul/2010:23:44:59 +0800] -GET /HTTP/1.1”200 19

cat access_log | awk ‘{print $1}’ | uniq -c|sort -rn|head -10

运维是做什么的充:

uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

常用参数:

不加参数         剔除重复的行
-u 显示未重复的行
-c 统计重复行的数量
-i 忽略大小写
-d 显示重复的行

示例:面试题目经典100例

[root@test1 tmp]# cat test.txt
hello, wuhs is a man
hello, wuhs is a man
Hello, wuhs is a man
hello, sunru is a woman
hello, sunru is a woman
hello, sunru is a woman
hello, bulesky is a children
hi, bulesky is a children
[root@test1 tmp]# uniq test.txt
hello, wuhs is a man
Hello, wuhs is a man
hello, sunru is a woman
hello, bulesky is a children
hi, bulesky is a children
[root@test1 tmp]# uniq -u test.txt
Hello, wuhs is a man
hello, bulesky is a children
hi, bulesky is a children
[root@test1 tmp]# uniq -c test.txt
2 hello, wuhs is a man
1 Hello, wuhs is a man
3 hello, sunru is a woman
1 hello, bulesky is a children
1 hi, bulesky is a children
[root@test1 tmp]# uniq -ci test.txt
3 hello, wuhs is a man
3 hello, sunru is a woman
1 hello, bulesky is a children
1 hi, bulesky is a children
[root@test1 tmp]# uniq -d test.txt
hello, wuhs is a man
hello, sunru is a woman

sort 命令用于将文本文件内容按行排序。 比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按一定的顺序进行输出。 sorlinux是什么操作系统t命令经常可以与ls、cat等命令结合使用,将查询到的结果按照我们要求进行排序。

常用参数:

不加参数      按照字母排序
-n 按照数字大小排序
-u 剔除重复行后排序
-r 降序排序
-t 指定分隔符排序
-k1 按照指定的第一列排序

示例:

[root@test1 ~]# cat word.txt
one
two
two
three
four
[root@test1 ~]# sort word.txt
four
one
three
two
two
[root@test1 ~]# cat num.txt
10
8
20
100
4
[root@test1 ~]# sort -n num.txt
4
8
10
20
100
[root@test1 ~]# sort -u word.txt
four
one
three
two
[root@test1 ~]# sort -ur word.txt
two
three
one
four


                                            python运维开发面试题

企业案例面试题

处理一下文件内容,将域名取出并根据域名进行计数排序处理(百度和sohu面试题)

1

2

3

4

5

6linux

7

[root@web01~]#cataccess.log

http://www.etiantian.org/index.html

http://www.etiantian.org/1系统/运维.html

​​h面试题目10道题ttp://post.etiantian.org/index.html​​

http:面试题为什么要当老师//mp3.etiantian.org/index.html

http://w运维宝ww.etiantian.org/3python安装教程.html

http://post.etiantian.org/2.html

解答:

分析:此类问题是运维工作中最常见的问题系统运维是干嘛的。可以演变成分析日志,查看TCP各个状态连接数,查看单IP连接数排linux操作系统基础知识名等等。

1

2

3

4

awk-F'[/]+''{print$2}'access.log|sort|uniq-c|sort-k1-rn

3www.etiantian.org

2plinux常用命令ost.etiantian.org

1mp3.etiantian.org

[root@localhost tmp]# awk -F '[/]+' '{print $2}' access.log|sort|uniq -c|sort -k1 -rn
3 www.etiantian.org
2 post.etiantian.org
1 mp3.etiantian.org
[root@localhost tmp]# awk -F '[/]+' '{print $2}' access.log
www.etiantian.org
www.etiantian.org
post.etiantian.org
mp3.etiantian.org
www.etiantian.org
post.etiantian.org
[root@localhost tmp]# awk -F '[/]+' '{print $2}' access.log|uniq -c
2 www.etiantian.org
1 post.etiantian.org
1 mp3.etiantian.org
1 www.etiantian.org
1 post.etiantian.org

这种情况,显然不合要求,所以在 uniq -c 前先 sort

[root@localhost tmp]# awk -F '[/]+' '{print $2}' access.log|sort
mp3.etiantian.org
post.etiantian.org
post.etiantian.org
www.etiantian.org
www.etiantian.org
www.etiantian.org
[root@localhost tmp]# awk -F '[/]+' '{print $2}' access.log|sort|uniq -c
1 mp3.etiantian.org
2 post.etiantian.org
3 www.etiantian.org

杀死以A开头的所有进程

ps -ef|grep A|grep -v grep|cut -c 9-15|xargs kill-9

说明:

管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入
ps -efww 查看所有进程
grep -v grep 在列出的进程中排除含有关键字“grep”的进程
cut -c 9-15 截取第9个字符到第15个字符,而这正好是进程号PID
kill -9 强行杀掉指定进程

补充:

在Linux平台上后台运行4个vim进程,使用如下命令即可同时结束掉4个vim进程

ps -ef运维为什么没人干ww|grep vim |grep -v grep|cut -c 9-15|xlinux系统安装args kill -9

如何查看占用端口8080的进程

方法1:使用lsof命令

使用IPv4面试题目精选协议的局域网:

执行命令: lsof -Pnl +M -i4|grep 8080

输出结果:java 1419 1401 10u IPv4 6793357 TCP *:8080 (LISTEN)

补充:

lsoflinux重启命令(list open files)是一个列出当前系统打开面试题的文件的工具。在lpython语言inux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件,一般root用户才能执行lsof命令

在终端下输入 lsof 即可显示系统linux创建文件打开的文件


                                            python运维开发面试题

每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件

lsof输出各列信息的意义如下系统/运维

COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开的文件的确切名称

用法:

lsof 文件名               查看谁正在使用这个文件
lsof 目录名 查看谁正在使用这个目录
lsof -i :22 查看22端口被哪个进程占用
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -p 12 查看进程号为12的进程打开了哪些文件
lsof -u username 查看用户打开哪些文件
lsof -i @192.168.1.111 查看远程已打开的网络连接(连接到192.168.1.111)

lsof -i 用以显示符合条件的进程情况

语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

46 -> IPv4 or IPv6
protocol -> TCP or UDP
hostname -> Internet host name
hostaddr -> IPv4位置
service -> /etc/service中的 service name (可以不只一个)
port -> 端口号 (可以不只一个)

查找哪个IP端口访问了哪个IP端linux系统口,这个在源主机还是目的主机都可以用,下面我想查的是当前这个机器的哪个程序访问了112那个主机

lsof -Pnl +M -i4


                                            python运维开发面试题

方法2系统运维包括哪些内容:先使用面试题目经典100例 netstat命令,再用 ps命令

执行运维命令: netstat -anp|grep 8080 (查看占用8080端口的进程)

输出结果: tcp 0 0 :::8080 :::* LISTEN 12006/java

执行命令: ps -ef | grepython代码大全p 12006 (查看12006进程的详细信息)python123

输出结果:

root 12886 12851 0 Dec09 ? 00:01:14

/home/bjca/bea/jdk160_05/bin/java -client -Xms256m -Xmx512m

-XX:CompileThrpython怎么读eshold=8python语言000 -XX:PermSize=48m -XX:MaxPermSi运维是什么意思ze=128m......

服务器免密登录如何实现

https://blog.csdn.net/simongeek/article/details/5350162运维是做什么的9

Shell中$#,$$,$?,$0分别代表什么

$# 是传递给该shell脚本的参数个数

$$ Shell本身的PID(ProcessIDlinux命令

$? 最后运行的命令的结束代码(返回值)

$0 Shell本身的文件名

补充:

shell中的变量说明:

$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2$n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2""$n" 的形式输出所有参数。
$#
是传递给该shell脚本的参数个数
$0
Shell本身的文件名
$1$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…

脚本举例

# vi variable

脚本内容如下:
#!/bin/sh

echo "number:$#"

echo "scname:$0"

echo "first :$1"

echo "second:$2"

echo "argume:$@"

保存退出

赋予脚本执行权限

# chmod +x variable

执行脚本

# ./variable aa bb

number:2

scname:./variable

first: aa

second:bb

argume:aa bb

通过显示结果可以看到:

$# 是传给脚本的参数个数

$0 是脚本本身的名字

$1是传递给该shell脚本的第一个参数

$2是传递给该shell脚本的第二面试题为什么要当老师个参数

$@ 是传给该shell脚本的所有参数的列表

Nginx算法

详见:

​​https://blog.csdn.net运维/gzh0222/articlpython是什么意思e/details/8095994​​

编写一个Nginx的access模块,要求准许192.168.3.29/24的机器访问,准许10.1.20.6/16这个网段的所面试题目经典100例有机器访问,准许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;
}

补充:

防火墙是层层深入的,可以从运维是什么意思硬件上用ac面试题目经典100例l(访问控制列表)实现,如果没有钱买一个防火墙,那么还可以在linux上设置iptables,如果iptables不设置,还可以在nginx上设置。运维工程师

详见:

​​http://www.it610.com/ar面试题目经典100例ticlinux操作系统基础知识le/4921101.htm​​

Nginx优化方面有哪些

详见:

​​hlinux必学的60个命令ttps:/面试题目经典100例/bloglinux操作系统基础知识.csdn.net/python123平台登录hanjinjuan/article/details/119744168​​

请写出一段Ppython怎么读ython代码实现删除一个list里面的重复元素

#!/usr/bin/python

#codinlinux系统安装g=utf-8

List1=[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7]

List1=list(slinux常用命令et(List1))

print面试题库精选800题(List1)

linux操作系统基础知识充:

set(),s面试题目经典100例et是定义集合的,无序,非重复

list(),转换为列表

本文转自:​​hlinux操作系统基础知识ttps://www系统运维工作内容.cnblogs.compython语言/huangtian面试题目100及最佳答案di001/p/9197270.html​​