Ⓜ️ 分析日志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
文件,删掉添加的语句,即可使用新密码登录mysql 的 root 用户
Ⓜ️ 统计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.1,tcp端口号为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