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

一、Linux系统和Shell

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

6deafee8691b4ad0bc03ebcad9f2ef84.png

eb97f4eeab724f5db150b25eae3d1593.png

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

这里我们使用自己的IP

首先创建测试文件

7497d8ef6b114203b07c189f2e1c79c3.png

a46940e5f59e4f1a8c916b7646cf6493.png

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

352c3ff16b494f66a811520c3edc7255.png

接下来我们测试一下

8847dad0759547a197dfa865e886fab7.png

caab528467194829a18dce2b96932176.png

最后我们备份

d5a9cc5dbb8147ac93a37cc5f7044ce3.png

c85d40fedc174229a91bc1254744a5a9.png

48254bad85f749d6b86528fbf3b5490f.png

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

首先我们创建测试文件

d5fb94fbac504c21ba5271d75b9d0710.png

8177d7fd474b41ab984c208c90af8bf3.png

接下来我们编写一个脚本

60b6a2d908ba464d820b80306d2b31f2.png

0671f9241dd64ce99af67ccec208936f.png

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

RevertInput “this is para1” para2 para3

应该输出:

para3

para2

this is para1

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

07ca29eb89ee4071805f353fd1f14a22.png

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的使用情况。

447fe308d0874b7f8ac0bb95d95a21bb.png

运行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包;

476f5f47f9d24cc788ceb561e4fd31ee.png

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
<Directory "/var/www/">
        AllowOverride none
        Require all granted
</Directory>

<VirtualHost 192.168.8.133:80>
        ServerName www.test.com
        DocumentRoot /var/www/html
        CustomLog "/var/lib/httpd/access_log" combined
</VirtualHost>

<VirtualHost 192.168.8.133:80>
        ServerName www.test.cn
        DocumentRoot /var/www/html
        CustomLog "/var/lib/httpd/access_log" combined
</VirtualHost>
接下来我们要把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)是否有异常报错信息,这可能会提供一些线索

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/438005.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】第三十八站:信号处理

文章目录 一、信号处理二、再谈进程地址空间三、内核如何实现信号的捕捉四、sigaction 一、信号处理 我们知道&#xff0c;信号保存以后&#xff0c;会在合适的时候进行处理这个信号。 那么信号是如何被处理的&#xff1f;什么时候进行处理呢&#xff1f; 当我们的进程从内核…

如何在Microsoft 365中直接启用 Loop服务

Microsoft Loop是一种变革性共同创建体验&#xff0c;可将工具和设备上的团队、内容和任务汇集在一起&#xff0c;使团队能够共同思考、规划和创建内容。 在之前分享过的文章中已经介绍了如何在Microsoft Teams、Outlook和Word中使用Loop服务&#xff0c;今天继续介绍如何在Mi…

微信小程序上传时报错message:Error: 系统错误,错误码:80051,source size 2148KB exceed max limit 2MB

问题&#xff1a; 微信小程序上传时错误码&#xff1a;80051,source size 2248KB exceed max limit 2MB 问题原因&#xff1a; 由于代码中的静态资源 图片大小超了200k以及主包的体积超出1.5M 解决办法 分包 tabBar 是主包的&#xff0c;不需要分包处理&#xff0c;以下是分…

http和https的区别是什么?https有什么优缺点?

HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一个简单的请求-响应协议&#xff0c;它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。这个简单模型是早期Web成功的有功之臣&#xff0c;因为它…

在Java中,如何实现对象的拷贝?

开发中可以使用第三方库如Apache Commons Lang的SerializationUtils类或Google的Guava库来实现对象的深拷贝。这些库提供了更加灵活和方便的深拷贝实现方式&#xff0c;同时也提供了更多的自定义选项和错误处理机制。 在Java中&#xff0c;对象的拷贝可以分为浅拷贝&#xff0…

增加Vscode引用路径

增加Vscode引用路径 增加Vscode引用路径问题说明解决思路1在Vscode中进行配置缺点 解决思路2 增加Vscode引用路径 问题说明 在嵌入式开发中需要经常用到库函数(SPL), Vscode需要配置引用路径才能对函数名或变量进行跳转 解决思路1 与Keil5 MDK类似, 在配置C/C的json文件中添…

容器和虚拟机的对比

容器和虚拟机的对比 容器和虚拟机在与硬件和底层操作系统交互的方式上有所不同 虚拟化 使多个操作系统能够同时在一个硬件平台上运行。 使用虚拟机监控程序将硬件分为多个虚拟硬件系统&#xff0c;从而允许多个操作系统并行运行。 需要一个完整的操作系统环境来支持该应用。…

SpringBoot内置工具类

Collections java.util包下的Collections类&#xff0c;该类主要用于操作集合或者返回集合 一、排序 List<Integer> list new ArrayList<>();list.add(2);list.add(1);list.add(3);Collections.sort(list);//升序System.out.println(list);Collections.reverse(…

React一学就会(7): 细说redux及其应用

不知不觉一个星期结束了&#xff0c;很快就要过年了&#xff0c;中间休息了两天&#xff0c;小孩生病&#xff0c;我也有点感冒了&#xff0c;还好&#xff0c;我的这个 React 基础教学课程也基本结束了。大家有不明白的可以留言问我&#xff0c;我一定竭尽所能的帮助你。后面几…

leetcode刷题(剑指offer) 79.单词搜索

79.单词搜索 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水…

如何在Win系统安装Jupyter Notbook并实现无公网ip远程访问本地笔记

文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 在数据分析工作中&#xff0c;使用最多的无疑就是各种函数、图表、…

数字与数学高频问题(算法村第十三关白银挑战)

数组实现加法专题 数组实现整数加法 66. 加一 - 力扣&#xff08;LeetCode&#xff09; 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数…