Linux 系统运维相关的面试题(问答题)
Linux 公社今天
这里给大家整理了一些 Linux 系统运维相关的面试题,有些问题没有标准答案,希望要去参加 Linux 运维面试的朋友,可以先思考下这些问题;
一、Linux 操作系统知识
1)常见的 Linux 发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块?
2.Linux 开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解?
3)企业中 Linux 服务器系统分区标准是什么?(以硬盘为 300G,内存 16G 为例)
4)某一天突然发现 Linux 系统文件只读,该怎么办呢?完整操作步骤;
5)安装一台系统使用 DVD 光盘安装,如何安装 50 台 Linux 系统如何安装呢?思考一下;
6)用虚拟机安装了一台 Linux 系统,突然想克隆一台服务器,克隆后发现无法上网,如何解决?
7.Linux 网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?
8)一般可以使用什么软件远程 linux 服务器?通过什么上传文件和下载文件?
9./mnt 目录主要用于什么?/root 目录跟 root 用户有什么关系?/ 根目录与 /boot 目录有什么联系?
10)某一天误操作,执行了 rm -rf *,会有哪些情况发生?请举例;
二、Linux 命令及文件操作
1)在 /tmp/ 目录下创建 test.txt 文件,内容为: Hello,World! ,用一个命令写出来;
2)给 test.txt 文件除所有者之外增加执行权限,最终以数字写出文件的权限;
3)用 vi 命令编辑 test.txt,如何跳转到末行,首行,行首、行末,如何在光标行下一行插入,如何复制 5 行,删除 10 行,查找 jingfeng 的字符、把 jingfeng 替换为 jfedu.net
4)查找 linux 系统下以 txt 结尾,30 天没有修改的文件大小大于 20K 同时具有执行权限的文件并备份到 /data/backup/ 目录下;
5)当前 test.txt 所属的用户为 root,组为 abc,请将 test.txt 使拥有者为 abc,组为 root,写出命令;
6)如何修改 Linux 启动级别为字符模式并永久生效,如何临时、永久关闭 selinux 及防火墙,请分别写出操作方法;
7)每次开机在 /tmp 目录下创建一个当天的日期文件夹(提示:当前日期表示的方法为:`date +%Y%m%d`)
8)如何查看文件内容,命令有哪些?查看文件第 1 行到 3 行,查看文件最后一行;
9)查看 linux 服务器 IP 的命令,同时只显示包含 ip 所在的行打印出来;
10)将普通用户 test 加入 root 组的命令是?
三、Linux 磁盘及软件管理操作
1)如何添加一块新的 50G 硬盘到 linux 服务器系统作为单独的分区,并正在使用?需要哪些操作步骤?
2)有个金士顿 U 盘,需要往服务器 /var/www/html/ 目录下上传一个 index.html 文件,如何操作并完成;
3)有一块移动硬盘,上面有 300G 数据,如何快速 cp 到 linux 服务器?
4)光盘里面有一个 httpd-2.2.15.xx.rpm 包,如何挂载并安装呢?
5)使用 rpm 命令安装、卸载、删除、更新 ntp-0.7.12.x86_64.rpm 这个软包;
6./var/www/html/ 是网站的发布目录,如何每天凌晨 0 点 30 对其进行自动备份,写出操作步骤?
7)使用 tar 命令打包并压缩 /root 目录,然后移动到 /tmp 下,将其权限设置其他人只读;
8.Yum 命令与 rpm 命令的区别?如何使用 rpm 安装一个有依赖的包?
9)在这个月内,每天的早上 6 点到 12 点中,每隔 2 小时创建一个 test.txt 文件,内容为 ok,如何实现?
10)将 /usr/local/test 目录下大于 100K 的文件转移到 /tmp 目录下;
11)简述 raid0 raid1 raid5 三种工作模式的工作原理及特点;
12)如何查看占用端口 8080 的进程;
四、Linux 服务配置及管理
1)请写出 apache2.X 版本的两种工作模式,以及各自工作原理。如何查看 apache 当前所支持的模块,并且查看是工作在哪种模式下?
2.Linux 下 nfs 在客户端无法挂载,请写出排查步骤?
3.Linux 下已经部署了 dhcp 服务器,客户端无法获取的 IP,如何解决?
4)常见的 FTP 软件有哪些?Linux 最常用的是?如何共享一个资源让他人使用用户名和密码访问?
5)如何禁止 FTP 使用匿名用户登录?命令行如何访问 ftp 服务器?
6.ApacheWEB 服务器的发布目录在哪里?
7.ApacheWEB 服务器有几种工作模式,每种模式的简单区别?
8.MySQL 服务器的用途是?Apache 和 mysql 可以安装在一台机器吗?如何查看 apache 和 mysql 端口和进程?
9)如何在虚拟机上面部署 4 个网站,访问的域名分别为 www.a1.com test.a1.com www.a2.com test.a2.com?
10)假设 Apache 产生的日志文件名为 access_log,在 apache 正在运行时,执行命令 mv access_log access_log.bak,执行完后,请问新的 apache 的日志会打印到哪里,为什么?
11)我们都知道 FTP 协议有两种工作模式,说说它们的大概的一个工作流程?
12.Linux 内核引导时,从哪个文件中读取要加载的文件系统;
13)写出下面服务的常用端口 ftp http dns snmp pop3、dhcp、nfs、mysql、samba 等服务;
14.Mysql 创建数据库的命令,创建表的命令,插入语句的命令?
15.Mysql 备份命令?Mysql 如何给 root 用户对 jfedu 授权访问,密码为 jfedu.net,请写出命令?
16.Mysql 忘记密码该如何操作呢?
17.Linux 运维工程师都需要具备哪些技能和职业品质?
Linux 公社的 RSS 地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-09/154458.htm
打印文件前三行
head -n 3
查询文件以 abc 结尾的行
grep -E ‘abc$’ foo.txt
查找文件中为空的行所在的行号
grep -n -E ‘^\s*$’ foo.txt
配置指定行,并显示后五行
grep -A 5 key foo.txt
匹配 IPv4 地址的正则表达式
https://www.regular-expressions.info/ip.html
这不是一个最好的写法:
下面是严格的写法:
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
上面包含了前导零的情况。下面去除了前导零的可能:
(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.
(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.
(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])
如何查看当前用户最大的线程数,以及如何修改?
在 Linux 中,没有对每个进程单独限制一个单独的线程,只有系统上进程总数的限制,使用 cat /proc/sys/kernel/threads-max 查看最大的线程数。默认值 = 内存页数 / 4;
在 Linux 中,线程基本上只是用 Linux 上的共享地址空间的进程;
单个用户可能创建的进程数量(以及线程数)也有限制:
- ulimit -a | grep -i ‘max user proce’
- ulimit -u
- ulimit -u 62788
有关这些限制的详细信息,请参阅 ulimit/getrlimit 指令;
常见打包工具,及相应的解压参数
tar
- tar -cf log.tar /var/log/*
- tar -xf log.tar
zip
- zip -r log.zip /var/log/
- zip log.zip /var/log/cron.log
- unzip log.zip
ar
- ar r log.a /var/log/*.log
- ar x log.a
cpio
- ls /var/log/ | cpio -o > log.cpio
- cpio -i < log.cpio
每周六凌晨 03:15 运行脚本
15 3 * * 6 root perl /home/shell/collect.pl
十月份,每天早上六点到 12 点,每隔 2 两小时执行一次脚本
0 6-12/2 * 10 * root /path/to/foo.sh
使用 sed 将回车替换成空行
sed ‘:a;N;$!ba;s/\n/ /g’ file
tr ‘\n’ ‘ ‘ < foo.txt
添加路由
route add -net 192.168.3.0 netmask 24 default gw 192.168.1.254 dev eth0
ip route add 192.168.3.0/24 via 192.168.1.254 dev eth0
查找修改天数大于 30 天的文件
30 天前修改的:find ./ -type f -mtime +30 -exec rm -rf {} \;
移动大于 100k 的文件,移动到 /tmp 下
find ./ -type f -size +100k
查看服务器上 TCP 连接状态及数量
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ | column -t
HostA 有私钥,HostB、HostC 有公钥,连接到 B,再连接到 C
https://serverfault.com/questions/934642/ssh-from-a-through-b-to-c-using-private-key-on-a
ssh -J root@HostB root@hostC
ssh -o ProxyCommand=’ssh -W %h:%p B’ C
keepalived 原理
以 VRRP 协议为实现基础的,VRRP 全称 Virtual Router Redundancy Protocol,即「虚拟路由冗余协议」;
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将 N 台提供相同功能的路由器组成一个「路由器组」,这个组里面有「一个 master」和「多个 backup」,master 上面有一个对外提供服务的 vip(该路由器所在局域网内其他机器的默认路由为该 vip),master 会发组播,当 backup 收不到 vrrp 包时就认为 master 宕掉了,这时就需要根据 VRRP 的优先级来选举一个 backup 当 master。这样的话就可以保证路由器的高可用了;
keepalived 主要有三个模块,分别是 core、check、vrrp:
- core – 为 keepalived 的核心,负责主进程的启动、维护以及全局配置文件的加载和解析;
- check – 负责健康检查,包括常见的各种检查方式;
- vrrp – 模块是来实现 VRRP 协议的;
MySQL 主从同步延迟
最简单的减少 slave 同步延时的方案就是在架构上做优化:
- 尽量让主库的 DDL 快速执行;
- 还有就是主库是写,对数据安全性较高,比如 sync_binlog=1,innodb_flush_log_at_trx_commit = 1 之类的设置,而 slave 则不需要这么高的数据安全,完全可以讲 sync_binlog 设置为 0 或者关闭 binlog,innodb_flushlog 也可以设置为 0 来提高 sql 的执行效率;
- 另外就是使用比主库更好的硬件设备作为 slave;
- 就是把,一台从服务器单独作为备份使用,而不提供查询,那边他的负载下来了,执行 relay log 里面的 SQL 效率自然就高了;
- 加从服务器喽,这个目的还是分散读的压力,从而降低服务器负载;
MySQL 备份恢复
mysqldump
mysqlhotcopy
https://www.cnblogs.com/zejin2008/p/4638047.html
配置 Nginx、Apache 反向代理
Nginx:proxy_pass
Apache:
mod_proxy_ajp.so
mod_proxy_balancer.so
mod_proxy_connect.so
mod_proxy_http.so
ProxyPass /clusterDemo http://127.0.0.1:8081/clusterDemo
ProxyPassReverse /clusterDemo http://127.0.0.1:8081/clusterDemo
ProxyPass /clusterDemo2 http://127.0.0.1:8082/clusterDemo2
ProxyPassReverse /clusterDemo2 http://127.0.0.1:8082/clusterDemo2
ProxyPass /clusterDemo3 http://127.0.0.1:8083/clusterDemo3
ProxyPassReverse /clusterDemo3 http://127.0.0.1:8083/clusterDemo3
#8888 为 apache 的监听端口
<proxy AllowOverride None
Order Deny,Allow
Allow from all