运维面试题(每日一题)_自动化运维面试问题,网络安全架构师成长路线

本文是一篇关于运维面试的综合指南,涵盖了自动化运维面试中的常见问题,包括awk命令、系统管理操作和网络安全架构。同时,作者提供了一份全面的网络安全学习资料,旨在帮助程序员提升技能和知识体系。文章还探讨了各种实用的Linux命令和脚本,如sed、awk、find和iptables,以及如何处理文件、网络管理和系统维护。
摘要由CSDN通过智能技术生成

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

当前行是奇数行时执行line=$0,将整行赋值给line,next跳过其余的命令

4、awk判断奇偶行并显示
awk ‘{if(NR%2==0) print $0;else printf $0 " "}’ test.txt


### 3、光标



光标移动
ctrl + a 切换到命令行开始
ctrl + e 切换到命令行末尾

剪切粘贴
ctrl + u 清除(剪切)光标之前的内容
ctrl + k 清除(剪切)光标之后的内容
ctrl + y 粘贴
esc + f 把光标移动到单词的结尾
esc + f 把光标移动到单词的开头
ctrl + b 光标向左移动一个符号的位置
ctrl + f 光标向右移动一个符号的位置


### 4、累计相加



假如现在有个文本,格式如下:
a 1
b 3
c 2
d 7
b 5
a 3
g 2
f 6
d 9
即左边是随机字母,右边是随机数字,要求写个脚本使其输出格式为:
a 4
b 8
c 2
d 16
f 6
g 2



awk ‘{h[$1]=h[$1]+$2} END {for(pol in h) print pol,h[pol]}’ array_add.txt

这里只有两列,第一列是字母,第二列是数字是我们要相加的东西。
这里我们选择第一列作为房间号码即元素名称。


END关键字,会在读完数据后执行  
 BEGIN关键字,需要在处理数据前运行脚本,比如为报告创建开头部分


RS,输入文件的行分隔符,缺省是换行符  
 FS,输入文件的列分隔符,缺省是连续的空格和Tab  
 NF,当前行所拥有的列数  
 NR,表示awk开始执行程序后读取的数据行数  
 FNR,awk当前读取的记录数,其变量值小于等于NR(比如当读取第二个文件时,FNR是从0开始重新计数,而NR不会)。  
 NR==FNR:用于在读取两个或两个以上的文件时,判断是不是在读取第一个文件。


**awk处理多个文件的基本语法是:**  
 awk -F分隔符 ‘BEGIN { 初始化 } { 循环执行部分 } END { 结束处理 }’ file\_list1 file\_list2


### 5、软硬链接


* 不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到
* 软链接可以跨文件系统,硬链接不可以跨文件系统。
* 删除软和硬链接文件,对源文件及软和硬链接文件无任何影响;
* 删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状);
* 同时删除源文件及其硬链接文件,整个文件才会被"真正"的删除。


在linux系统中,链接分两种 :一种是硬链接(Hard Link),另一种被称为符号链接或软链接(Symbolic Link)。  
 默认不带参数情况下,ln命令创建的是硬链接。


* 硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号与源文件不同。
* ln命令不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。
* 删除软链接文件,对源文件及硬链接文件无任何影响;
* 删除文件的硬链接文件,对源文件及软链接文件无任何影响;
* 删除链接文件的原文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状);
* 同时删除原文件及其硬链接文件,整个文件才会被真正的删除。
* 很多硬件设备中的快照功能,使用的就类似硬链接的原理。
* 软连接可以跨文件系统,硬链接不可以跨文件系统。


### 6、数组统计



处理以下文件内容,将域名取出并根据域名进行计数排序处理:
http://www.etiantian.org/index.html
http://www.etiantian.org/1.html
http://post.etiantian.org/index.html
http://mp3.etiantian.org/index.html
http://www.etiantian.org/3.html
http://post.etiantian.org/2.html

要求结果:
mp3.etiantian.org 1
post.etiantian.org 2
www.etiantian.org 3



思路:
1.以斜线为菜刀取出第二列(域名)
2.创建一个数组,把第二列(域名)作为数组的下标,通过类似于i++的形式进行计算数量
3.统计后把结果输出

awk -F “/+” ‘{hotel[$2]++}END{for(pol in hotel) print pol,hotel[pol]}’ url.txt|sort -rnk2


### 7、Linux启动流程


1、主机加电自检,加载BIOS硬件信息  
 2、读取MBR的引导文件(GRUB、LILO)  
 3、引导Linux内核  
 4、运行第一个进程init(进程号永远为1),  
 5、进入相应的运行级别  
 6、运行终端,输入用户名和密码


## 第三周


### 1、创建一个dir\_xyz目录,让该组成员都能在该目录下创建或访问文件,但是除了文件创建者之外的其他人不能删除文件,你会怎么做?


#mkdir dir\_xyz  
 #chmod g+wx dir\_xyz  
 #chmod +t dir\_xyz  
 最后一行命令——权限位最后的 ‘+t’ 是粘滞位,它用来替换x,表明在这个目录中,文件只能被它们的拥有者、目录的拥有者或者是超级用户root删除。


### 2、cut命令


cut命令主要是接受三个定位方法:  
 第一,字节(bytes),用选项-b  
 第二,字符(characters),用选项-c  
 第三,域(fields),用选项-f


①截取test.txt的前10列 `cut -c 1-10 test.txt`  
 ②截取该文件中的第二,第五和第七列 `cut -d: -f 2,5,7 /etc/passwd`  
 ③截取前三个字节  
 [root@aliyun ~]# date  
 Sun Sep 13 04:50:10 CST 2020  
 [root@aliyun ~]# date | cut -b 1-3  
 Sun


### 3、多种查看eth0地址信息



sed: ifconfig eth0 | sed -n ‘2p’ | sed ‘s#^.*inet ##g’ | sed ‘s#n.*$##g’
grep + awk: ifconfig eth0 | grep inet | awk ‘{print $2}’
sed + awk: ifconfig eth0 | sed -n ‘2p’ | awk ‘{print $2}’


### 4、统计linux系统的history历史记录,得出前10最喜欢的



history | awk ‘{h[$2]++} END {for(key in h) print key,h[key]}’ | sort -rnk2 | head

优雅的显示可以加上 column -t
history | awk ‘{h[$2]++} END {for(key in h) print key,h[key]}’ | sort -rnk2 | head | column -t


简单处理法:history | awk ‘{print $2}’ | sort |uniq -c | sort -nr | head


### 5、Linux中查看系统已经登录用户的命令


①w,显示谁远程登录了系统并且在干什么  
 ②who,显示谁远程登录了  
 ③last,显示最近远程登录的用户,也可以查看已经登录的用户


### 6、查找出/tmp目录下面修改时间是7天以前,大小在50k到2M之间,并以.log结尾的文件



find /tmp/ -type f -mtime +7 -size +50k -a -size -2M -regex ‘.*.log$’

+50k 表示大于50k的文件
-2M 表示小于2M的文件


### 7、查找出/tmp目录下面修改时间是7天以前,大小在50k到2M之间,并以.log结尾的文件,把这些文件复制到/data目录中



find /tmp/ -type f -mtime +7 -size +50k -a -size -2M -name “*.log” | xargs -i cp {} /data
find /tmp/ -type f -mtime +7 -size +50k -a -size -2M -name “*.log” -exec cp {} /tmp ;
cp $(find /tmp/ -type f -mtime +7 -size +50k -a -size -2M -name “*.log”) /data


## 第四周


### 1、登录环境故障-bash-4.1的原因及解决办法


-bash-4.1$  
 这种一般是因为用户删除文件的时候,把当前用户的家目录的一些隐藏文件删除所导致的。导致.bashrc .bash\_profile没了,与用户有关的环境变量也没了。


解决办法:把用户老家root的模板/etc/skel下面的.bash\_profile和.bashrc复制到出问题的用户



-bash-4.1 w h o a m i k o l o r − b a s h − 4.1 whoami kolor -bash-4.1 whoamikolorbash4.1cp /etc/skel/.bash* ~
重新登录测试
-bash-4.1$logout
su - kolor


### 2、如何删除多个文件中包含的空格或其他特殊字符,怎么做



find /tmp/ -type f -name “*.log” -print0 | xargs -0 ls -l


find命令的参数 -print0(注意这是数字0),表示find在找到文件后在文件的结尾加上一个标记,不用默认的空格分隔文件。  
 加上参数后,find命令找到的每个文件会在文件结尾加上一个标记(空符号)


正巧了,xargs 也有个参数专门识别这个空标记,-0(数字0)。xargs加上–null(等同于-0)参数就可处理空字符


### 3、CPU使用率超过80%或硬盘超过85%邮件报警


%Cpu(s): 0.0 us, 1.6 sy, 0.0 ni, 98.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st  
 98.4是未使用的CPU,剩余的都是使用的。


获取使用率 # top -n1 | tail -n +3 | head -1 | awk -F ‘[, ]+’ ‘{print 100-$11}’  
 top -n1 | tail -n +3 | head -1  
 tail -n +3选出从第3行开始的所有行  
 head -1输出筛选出的内容的第1行。


硬盘:df -h | awk -F ‘[ %]+’ ‘//$/{print $5}’  
 完整脚本:



#!/bin/bash
cpuUsed=top -n1 | tail -n +3 | head -1 | awk -F '[, ]+' '{print 100-$11}'
diskUsed=df -h | awk -F '[ %]+' '/\/$/{print $5}'
logFile=/tmp/check.log

function Sendmail(){
mail -s “监控报警” 330289344@qq.com < $logFile
}

function check(){
if [ echo "$cpuUsed>80"|bc -eq 1 -o d i s k U s e d − g e 85 ] ; t h

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值