某大厂关于Linux系统相关面试题

一、Linux系统和Shell

1、写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行;(2) 在非空行前面加一个"AAA",在行尾加一个"BBB",即将内容为11111的一行改为:AAA11111BBB

某大厂关于Linux系统相关面试题_第1张图片

某大厂关于Linux系统相关面试题_第2张图片

2、每周一下午三点将/tmp/logs目录下面的后缀为*.log的所有文件rsync同步到备份服务器192.168.1.100中同样的目录下面,crontab配置项该如何写:

这里我们使用自己的IP

首先创建测试文件

某大厂关于Linux系统相关面试题_第3张图片

某大厂关于Linux系统相关面试题_第4张图片

接下来我们要配置免密访问

某大厂关于Linux系统相关面试题_第5张图片

接下来我们测试一下

某大厂关于Linux系统相关面试题_第6张图片

某大厂关于Linux系统相关面试题_第7张图片

最后我们备份

d5a9cc5dbb8147ac93a37cc5f7044ce3.png

c85d40fedc174229a91bc1254744a5a9.png

48254bad85f749d6b86528fbf3b5490f.png

3、找到/tmp/目录下面的所有名称以"_s1.jpg"结尾的普通文件,如果其修改日期在一天内,则将其打包到/tmp/back.tar.gz文件中

首先我们创建测试文件

d5fb94fbac504c21ba5271d75b9d0710.png

8177d7fd474b41ab984c208c90af8bf3.png

接下来我们编写一个脚本

某大厂关于Linux系统相关面试题_第8张图片

0671f9241dd64ce99af67ccec208936f.png

4、写出SHELL函数RevertInput,函数必须获取三个参数,然后将三个参数倒序echo打印出来,函数必须检查参数个数的合法性,如果参数非法,打印”Illegal parameters”,对于下面的输入:

RevertInput “this is para1” para2 para3

应该输出:

para3

para2

this is para1

(注:需要注意第一个参数中的空格)

某大厂关于Linux系统相关面试题_第9张图片

5、如果一个系统使用LVM进行分区管理,请写出调整一个逻辑卷分区大小的命令:

创建逻辑卷组

[root@node1 ~]# vgcreate VG1 /dev/sdb

创建逻辑卷大小

[root@node1 ~]# lvcreate -n LV1 -L 5g VG1

逻辑卷扩容

[root@node1 ~]# lvextend -L +1G /dev/VG1/LV1

逻辑卷缩容

[root@node1 ~]# lvreduce -L -1G /dev/VG1/LV1 

6、如何找出当前系统中磁盘I/O读写占用最高的程序:

要找出当前系统中磁盘I/O读写占用最高的程序,可以使用iotop命令。iotop是一个类似于top命令的工具,用于监视磁盘I/O的使用情况。

某大厂关于Linux系统相关面试题_第10张图片

运行iotop,我们将看到一个类似于top命令的实时监视界面,显示当前磁盘I/O读写占用最高的程序和进程。按下o键可以按照磁盘I/O使用量进行排序,可以找出读写占用最高的程序。

二、网络相关

1、一个域名是否可以配置多个A记录?一个域名是否可以配置成多个其他域名的CNAME?

一个域名可以配置多个A记录,这样可以将一个域名解析到多个不同的IP地址上,实现负载均衡或者故障转移的功能。

一个域名可以配置成多个其他域名的CNAME,这样可以将一个域名解析到多个不同的域名上,实现统一资源的访问。但是需要注意的是,如果一个域名配置了CNAME记录,则不能再配置其他类型的记录,如A记录或MX记录等。

2、请写出用tcpdump抓取符合如下条件包的命令:(1) 目标端口是 80;(2) 来源IP或者是1.1.1.1,或者是 2.2.2.2;(3) UDP包;

某大厂关于Linux系统相关面试题_第11张图片

6eec327f54104fe8a67857c86c5673cf.png

-i any:监听任何网络接口

udp:仅抓取UDP包

src host 1.1.1.1 or src host 2.2.2.2:来源IP为1.1.1.1或2.2.2.2

dst port 80:目标端口为80

3、用netstat命令配合其他shell命令,按照来源IP统计下所有到80端口的ESTABLISHED状态链接的个数,输出结果类似(第一列为连接数,第二列为IP):

12 202.165.123.2

35 202.165.123.2

69 202.165.123.2

aed151866c784567b980921312ed034d.png

netstat -ntu: 获取所有tcp连接状态

awk '/D/' {print 4}: 过滤ESTABLISHED状态,打印来源IP地址列

awk -F: '{print $1}': 提取IP地址

sort: 排序

uniq -c: 统计重复IP出现次数

4、写出一个curl命令,访问指定服务器61.135.169.121上的如下URL:http://www.baidu.com/s?wd=test,访问的超时时间是20秒:

4e2e62b6e2e640ae8b149ca483adbde8.png

三、LAMP相关

1、写出如何给apache增加virtualhost,让访问http://www.test.com和 http://www.test.cn的时候,都打开/var/www/html目录下面的文件:

首先我们下载

[root@node1 ~]# yum install httpd -y

接着我们写入hello,world!

[root@node1 ~]# echo 'hello,world!' > /var/www/html/index.html

接着我们创建日志文件

[root@node1 ~]# touch /var/lib/httpd/access_log

接下来我们配置主机

[root@node1 ~]# cd /etc/httpd/conf.d/
[root@node1 conf.d]# vim virt.conf

        AllowOverride none
        Require all granted


        ServerName www.test.com
        DocumentRoot /var/www/html
        CustomLog "/var/lib/httpd/access_log" combined


        ServerName www.test.cn
        DocumentRoot /var/www/html
        CustomLog "/var/lib/httpd/access_log" combined

接下来我们要把192.168.8.133 www.test.com www.test.cn写到/etc/hosts下(这里我们使用echo命令)

[root@node1 conf.d]# echo '192.168.8.133 www.test.com www.test.cn' >> /etc/hosts 

接下来重启服务

[root@node1]# systemctl restart httpd

[root@node1]# curl http://www.test.com
hello,world!
[root@node1]# curl http://www.test.cn
hello,world!

2、写一个shell命令,统计apache日志文件(access_log)中某一天中每个URL的访问次数,并按照次数由小到大的顺序排序输出:

[root@node1]# grep '28/Jan/2024' /var/lib/httpd/access_log | awk '{print $1}' | sort | uniq -c

3、如果配置mysql服务器的时候,配置了auto_increment_increment=3,请问这里的3意味着什么?

auto_increment_increment是一个系统变量,用于控制自增字段的增量值。3意味着这意味着每次插入新记录时,自增字段的值会增加3。

四、综合问答

如果一个Linux系统响应十分缓慢,SSH进去后执行命令等一分钟才有响应,请说明各种可能的原因,并阐述如何分析并找到问题源头:

  1. CPU负载过高:可以使用top或者uptime命令查看系统负载情况。如果负载过高,可能是因为有太多进程在竞争CPU资源,或者某些进程占用了大量CPU资源。

  2. 内存不足:使用free命令查看内存使用情况。如果内存不足,系统可能会频繁地进行内存页交换,导致响应缓慢。

  3. 硬盘I/O繁忙:使用iostat命令查看磁盘I/O情况。如果磁盘I/O负载过高,可能是因为系统在进行大量的读写操作。

  4. 网络问题:使用ifconfig或者netstat命令查看网络状况。如果网络带宽被占满,可能会导致SSH连接响应缓慢。

  5. 进程阻塞:使用ps命令查看系统进程情况。如果有进程长时间处于D状态,可能是因为进程在等待某些资源,导致系统响应变慢。

  6. 系统日志:查看系统日志文件(如/var/log/messages)是否有异常报错信息,这可能会提供一些线索

 

你可能感兴趣的:(linux,运维,服务器,bash,vim)