当前位置: 首页 > news >正文

【Linux私房菜】第八期——面试

Ⓜ️ 分析日志t.log(访问量),将各个ip地址截取,并统计出现次数,并按从大到小排序(腾讯)【以下为t.log中的内容】
在这里插入图片描述
答案:cat t.log | cut -d '/' -f 3 | sort | uniq -c | sort -nr

  • cat 是查看文件内容的指令
  • cut -d 根据指定内容来分割【类似于Java的split方法】,-f是指定第几段
  • sort 用来从小到大排序,添加**-nr**就是逆序排序
  • uniq -c 根据出现的次数排序

Ⓜ️ 统计连接到服务器的各个IP情况,并按连接数从大到小排序(腾讯)

答案:netstat -an | grep ESTABLISHED | awk -F " " '{print $5}' | cut -d ":" -f 1 | sort | uniq -c | sort -nr

  • nestat -an 指令是用来监控网络信息的,-an选项是按照一定顺序显示
  • ESTABLISHEN代表处于连接状态,通过grep过滤出来
  • awk -F " " 根据空格来分割【无论有多少个空格】
  • print 起到打印的作用,$5代表分割后的第五部分
  • cut -d “:” 是根据:来分割,-f 1 代表选择第一部分【目的是去掉端口号部分】

Ⓜ️ 如果忘记了mysql5.7数据库的ROOT用户的密码,如何找回?(滴滴)

(1)正常我们在 Linux 中登录到 mysql 时,是通过mysql -u root - p 密码来完成的
(2)当我们忘记密码后可以通过vim /etc/my.cnf指令修改登录条件,在末尾添加skip-grant-tables指令可以在登录 mysql 时跳过权限验证
在这里插入图片描述

(3)通过servuce mysqld restart指令重启生效
(4)登录到 mysql 中,使用 mysql 数据库的 user 表,修改其中的 authentication_string 字段。

use mysql;
update user set authentication_string=("新密码") where user="root";

(5)通过flush privileges指令刷新权限,修改/etc/my.cnf文件,删掉添加的语句,即可使用新密码登录mysqlroot 用户


Ⓜ️ 统计IP访问情况,要求分析nginx访问日志(access.log),找出访问页面数量在前2为的IP(美团)

答案:cat access.log | awk -F " " '{print($1)} | sort | uniq -c | sort -nr | head -2'

  • head -2 代表查看前两条数据

Ⓜ️ 使用tcpdump监听本机,将来自ip 192.168.200.1tcp端口号为22的数据,保存输出到tcpdump.log,用做将来的数据分析(美团)

答案:tcpdump -i ens33 host 192.168.200.1 and port 22 >> tcpdump.log

  • TCPDump 可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。【百度百科】
  • 参数-i指明要监听的网络界面,ens33为网卡的类型 【tcpdump 俗称抓包工具】
  • 通过host指明主机IP、port指明端口号
  • 最后通过重定向加抓包数据追加到指定文件中

Ⓜ️ 常用的Nginx模块,用来做什么?(头条)

  • rewrite 模块,实现重写功能
  • access 模块,对来源进行控制
  • ssl 模块,实现安全加密
  • ngx_http_gzip_module: 网络传输压缩模块
  • ngx_http_proxy_module: 模块实现代理
  • ngx_http_upstream_module模块 实现定义后端服务器列表
  • ngx_cache_purge 实现缓存清除功能

Ⓜ️ 如果你是系统管理员,在进程Linux系统权限划分时,应考虑哪些因素?(腾讯)

(1)针对权限的对象分析权限的含义
在这里插入图片描述
(2)扩展
在这里插入图片描述
(3)结合案例分析【只对no的情况作出解释】
在这里插入图片描述
第一种假设:要想修改文件,要对文件有写权限
第二种假设:要想对文件产生操作,首先要能进入到文件所在的目录,也就是需要又对目录的执行权限
第三种假设:要想删除文件,首先要有对它直接父目录的修改权限,不能修改因为对文件没有写权限
第四种假设:对文件没有写权限


Ⓜ️ CentOS7 的启动流程,与 CentOS6 的差别?(腾讯)

在这里插入图片描述
到了Init 程序时,CentOS7由6的顺序启动改为并行启动。

CentoS7中我们的初始化进程变为了systemd。执行默认target配置文件/etc/systemd/system/default.target (这是一个软链接,与默认运行级别有关)。然后执行sysinit…target来初始化系统和basic.target来准备操作系统: 接着启动multi–user.target下的本机与服务器服务,并检查/etc/rc..d/rc.local文件是否有用户自定义脚本需要启动。 最后执行multi-user下的getty.target及登录服务,检查default.target是否有其他的服务需要启动。


Ⓜ️ 列举 Linux 高级命令,至少6个(百度)

指令作用
nestat网络状态监控
top系统运行状态监控
lsblk查看磁盘分区情况
ps -aux查看当前运行进程
chkconfig查看服务启动状态
systemctl管理系统服务器

Ⓜ️ Linux 查看内存、io读写、磁盘存储、端口占用、进程查看命令时什么?(瓜子)

作用指令
查看内存top
io读写iotop
磁盘存储df -lh
端口占用netstat -tunlp
查看进程ps -aux

Ⓜ️ 使用 Linux 命令计算 t2.txt 第二列的和并输出(美团)

在这里插入图片描述
答案:cat te.txt | awk -F " " '{sum+=$2} END '{print sum}'


Ⓜ️ 利用Shell 脚本检查一个文件是否存在?并给出提示(百度)

if [ - f 文件名 ]
then 
	echo "存在"
else
	echo "不存在"
fi

Ⓜ️ 用Shell写一个脚本,对文本t3.txt 中无序的一列数字排序,并将总和输出(百度)

sort -nr t3.txt | awk '{sum+=$0; print($0)} END 'print sum''

Ⓜ️ 请用指令写出查找当前文件夹(/home)下所有的文件文件内容包含有字符 "cat"的文件名称(金山)

答案:grep -r "cat" /home | cut -d ":" -f 1

Ⓜ️ 请写出统计 /home 目录下所有文件个数和所有文件总行数的指令(金山面试题扩展)

find /home -name "*.*" | wc -l
find  /home-name "*.*" | xargs wc -l

Ⓜ️ 列出你了解的web服务器负载架构(滴滴)

答案: Nginx、Haproxy、Keepalived、LVS


Ⓜ️ 每天晚上 10 点 30 分,打包站点目录 /var/spool/mail被分到/home 目录下(每次备份按照时间生成不同的备份包)(滴滴)

(1)编写Shell脚本

#!/bin/bash
cd /var/spool/ && /bin/tar zcf /home/mail -`date + %Y-%m-%d_%H-%M-%S`.tar.gz mail/

(2)通过crond -e指令创建定时任务

30 22 * * * /root/mail.sh

Ⓜ️ 如何优化Linux系统,说说你的看法?(百度)

1.对Linux架构优化

在这里插入图片描述

2.对linux系统本身的优化-规则

(1) 不用root,使用sudo提示权限

(2) 定时的自动更新服务时间,使用nptdate npt1.aliyun.com,让croud定时更新

(3) 配置yum源,指向国内镜像(清华,163)

(4) 配置合理的防火墙策略,打开必要的端口,关闭不必要的端口

(5) 打开最大文件数(调整文件的描述的数量)vim/etc/profile ulimit-sHn65535

(6) 配置合理的监控策略

(7) 配置合理的系统重要文件的备份策略

(8) 对安装的软件进行优化,比如nginx,apache

(9) 内核参数进行优化/etc/sysctl…conf

(10) 锁定一些重要的系统文件chattr/etc/passwd/ect/shadow/etc/inittab

(11) 禁用不必要的服务setup,ntsysv

相关文章:

  • jest 使用 jest-allure 测试报告
  • navicat连接远程服务器报错代码:10038
  • 笔试题/面试题——WEB前端性能优化,提高页面加载速度
  • CNN-运动鞋品牌识别
  • 可行性研究的任务有哪些?可行性研究包括哪些步骤?
  • 数据湖技术之快速体验 Hudi
  • [Spring Boot 2]整合持久层技术
  • Mysql_存储过程
  • Maven(基础)
  • 【PS小贴士】项目需求汇总——WBS Grouping(2)
  • canvas从基础了解 -- 到算法标注框实现
  • 下载工具漫谈
  • JavaScript 关联数组
  • SpringBoot - 集成Quartz框架之独立数据源(四)
  • 机构数据治理-质量监控
  • css的样式优先级
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • es6--symbol
  • es的写入过程
  • JavaScript服务器推送技术之 WebSocket
  • JavaWeb(学习笔记二)
  • JDK 6和JDK 7中的substring()方法
  • php面试题 汇集2
  • SSH 免密登录
  • Vim 折腾记
  • 分布式任务队列Celery
  • 回流、重绘及其优化
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 赢得Docker挑战最佳实践
  • 走向全栈之MongoDB的使用
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #pragma once与条件编译
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $jQuery 重写Alert样式方法
  • (1)常见O(n^2)排序算法解析
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三)mysql_MYSQL(三)
  • (转)ABI是什么
  • .aanva
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net Remoting常用部署结构
  • .NET 常见的偏门问题
  • .NET 分布式技术比较
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET的微型Web框架 Nancy
  • @DataRedisTest测试redis从未如此丝滑
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [ 蓝桥杯Web真题 ]-布局切换