)
转自:https://mp.weixin.qq.com/s/xgrWBLkVzDwA-1BCEi5e8g
下面是一名运维人员求职数十家公司总结的 Linux 运维面试题,希望能为大家的求职之路提供一些参考。
1、现在给你三百台服务器,你怎么对他们进行管理?
管理三百台服务器的常见思路如下:
1)设定跳板机,使用统一账号登录,这主要是从安全管控和登录审计的角度考虑。
2)使用 SaltStack、Ansible、Puppet 这类自动化工具进行系统的统一调度与配置管理。
3)建立简单的服务器 CMDB(配置管理数据库),记录每台服务器的系统、配置、应用等信息,便于日常查阅和维护。
2、简述 RAID0、RAID1、RAID5 三种工作模式的工作原理及特点
RAID 技术能把多块硬盘整合成一个大逻辑盘,还可以在这个大逻辑盘上再分区存放数据。它的另一个重要功能是提供冗余(备份)。常用的 RAID 级别有 0、1、5、10。
RAID 0,可以由一块或多块盘组合。
- 优点:读写速度最快,是 RAID 中性能最好的。
- 缺点:没有冗余,任何一块硬盘损坏,所有数据都会丢失。
RAID 1,只能由 2 块盘组成,盘的大小可以不同,总容量以较小的那块盘为准。
- 相当于一块盘完全作为另一块的镜像备份,提供了 100% 的冗余。
- 缺点:资源利用率低,成本高。
RAID 5,至少需要 3 块盘,总容量为 单盘容量 * (n-1),允许损坏一块盘而不丢失数据。
总结对比:
- 冗余能力从好到坏:RAID1 > RAID10 > RAID5 > RAID0
- 性能从好到坏:RAID0 > RAID10 > RAID5 > RAID1
- 成本从低到高:RAID0 < RAID5 < RAID1 < RAID10
在实际的网络/系统架构中,通常会根据数据的重要性和访问需求来选择合适的 RAID 级别:
- 单台重要服务器(盘不多):系统盘可采用 RAID1。
- 数据库服务器:主库推荐 RAID10;从库可以考虑 RAID5 或 RAID0(如果追求维护成本,主从都可使用 RAID10)。
- WEB/应用服务器:如果没有海量数据,可采用 RAID5 或单盘 RAID0。
- 监控、多台应用服务器:可采用 RAID0 或 RAID5。
3、LVS、Nginx、HAproxy 有什么区别?工作中你怎么选择?
- LVS:工作在 OSI 模型的四层(传输层),进行端口转发。
- HAproxy:可以工作在四层和七层,是一款专业的代理服务器。
- Nginx:本质上是一款 WEB 服务器、缓存服务器,通过模块也能实现七层的反向代理与负载均衡。
区别:LVS 基于四层转发,只能做端口的转发。而基于 URL、目录等应用层信息的转发,LVS 无法实现。
工作选择建议:
- HAproxy 和 Nginx 支持七层转发,因此可以实现基于 URL 和目录的转发。
- 在并发量极高的场景下,应优先选择 LVS。对于大多数中小型公司而言,并发量没有那么大。
- 选择 HAproxy 或 Nginx 通常就足够了。由于 HAproxy 是专业的代理服务器,配置相对简单,因此对于中小型企业,更推荐使用 HAproxy。
4、Squid、Varnish 和 Nginx 有什么区别,工作中你怎么选择?
Squid、Varnish 和 Nginx 都可以作为代理服务器(反向代理/缓存代理)。
什么是代理服务器?
它能代替用户去访问公网,并将获取到的数据缓存到本地。当用户下次请求相同资源时,代理服务器直接从本地响应。如果本地没有缓存,代理服务器会代替用户去访问公网,获取数据并缓存下来。
区别:
- Nginx 本质是反向代理/WEB 服务器,通过第三方插件可以实现缓存功能,但原生支持的特性不多,通常只能缓存静态文件。
- 从缓存功能专业度来看,Varnish 和 Squid 是专业的缓存服务,而 Nginx 的缓存功能由第三方模块实现。
- Varnish 在技术上优于 Squid,它采用了可视化页面缓存技术。在内存利用率和性能上,Varnish 通常高于 Squid,并且其管理端口功能强大,支持使用正则表达式快速、批量清除部分缓存。它是内存缓存,速度极快,但容量受内存限制,非常适合缓存页面和图片。
- Squid 的优势在于拥有完整、庞大的缓存技术资料和丰富的生产环境应用案例。
工作中选择:
如果需要构建专业的缓存服务,应优先选择 Squid 或 Varnish。
5、Tomcat 和 Resin 有什么区别,工作中你怎么选择?
- 区别:Tomcat 用户基数大,可参考的文档和社区资源非常丰富;Resin 用户相对较少,可参考的资料也少。
两者最主要的区别是,Tomcat 是标准的 Java 容器,性能方面通常比 Resin 稍差一些。但在稳定性和对 Java 程序的兼容性上,Tomcat 通常更好。
工作中选择:目前很多大型互联网公司追求极致性能,会选择 Resin;而大多数中小型公司更看重稳定性和程序兼容性,因此 Tomcat 是更常见的选择。
6、什么是中间件?什么是 JDK?
中间件介绍:
中间件是一种独立的系统软件或服务程序,分布式应用软件借助它在不同的技术之间共享资源。它位于客户机/服务器的操作系统之上,管理计算机资源和网络通信,是连接两个独立应用程序或独立系统的软件。
即使相连的系统具有不同的接口,通过中间件它们仍能交换信息。实现中间件的一个关键途径是信息传递,通过它,应用程序可以工作于多平台或多 OS 环境。
JDK:JDK 是 Java 的开发工具包。它是一个用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。
7、讲述一下 Tomcat 8005、8009、8080 三个端口的含义?
- 8005:用于接收关闭 Tomcat 实例的指令。
- 8009:AJP 端口,供其他容器(如 Apache HTTP Server)使用,通过 AJP 协议与 Tomcat 通信。
- 8080:默认的 HTTP 连接器端口,供一般 Web 应用访问使用。
8、什么叫 CDN?
- CDN 即内容分发网络。
- 其目的是通过在现有的 Internet 中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可就近取得所需内容,从而提高用户访问网站的速度。
9、什么叫网站灰度发布?
灰度发布是指在黑与白之间能够平滑过渡的一种发布方式。
A/B 测试就是一种常见的灰度发布方式:让一部分用户继续使用版本 A(旧),一部分用户开始使用版本 B(新)。如果用户对 B 版本没有反对意见,则逐步扩大范围,最终将所有用户迁移到 B 版本上来。灰度发布可以保证整体系统的稳定,在初始阶段就能发现并调整问题,控制其影响范围。
10、简述 DNS 进行域名解析的过程?
以用户访问 www.baidu.com 为例:
- 浏览器先检查本机的 hosts 文件是否有对应的 IP 映射。
- 如果没有,则向本地配置的 DNS 服务器发起查询请求。
- 如果本地 DNS 服务器也没有缓存记录,它会向根域名服务器查询。根服务器告知它负责
.com 顶级域名的服务器地址。
- 本地 DNS 服务器再向
.com 顶级域名服务器查询,后者告知它负责 baidu.com 二级域名的服务器地址。
- 本地 DNS 服务器继续向
baidu.com 的权威域名服务器查询,最终获得 www.baidu.com 的 IP 地址。
- 本地 DNS 服务器将结果缓存一份,然后返回给用户的客户端。
11、RabbitMQ 是什么东西?
RabbitMQ 是一个开源的消息队列中间件。消息中间件是在消息传递过程中保存消息的容器,充当消息从源头到目标的“中间人”。队列的主要目的是提供路由并保证消息的可靠传递。如果发送消息时接收者不可用,消息队列会保留消息(在有效期内),直到能够成功传递为止。
12、讲述一下 LVS 三种模式的工作过程?
LVS 有三种负载均衡模式:VS/NAT(NAT 模式)、VS/DR(直接路由模式)、VS/TUN(隧道模式)。
一、NAT 模式(VS-NAT)
原理:负载均衡器将客户端发来的数据包 IP 头中的目的地址,替换成后端某台真实服务器(RS)的 IP 地址。
数据包被转发到该 RS 处理,RS 处理完后将响应数据包返回给负载均衡器。负载均衡器再将响应包的源 IP 地址改为自己的虚拟 IP(VIP),目的地址改为客户端的 IP 地址。
在此模式下,无论是进来的请求流量,还是出去的响应流量,都必须经过负载均衡器。
- 优点:集群中的真实服务器可以使用任何支持 TCP/IP 的操作系统,只有负载均衡器需要一个公网 IP 地址。
- 缺点:扩展性有限。当服务器节点增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求和应答包都要流经它,容易导致性能下降。
二、IP 隧道模式(VS-TUN)
原理:互联网上的请求包通常很小,而应答包可能很大。隧道模式利用了这一点。
负载均衡器将客户端发来的数据包,封装一个新的 IP 头(仅修改目的 IP 为 RS 的 IP)后发送给 RS。RS 收到后,拆开外层封装,还原原始数据包进行处理,处理完成后直接返回给客户端,不再经过负载均衡器。
注意:RS 必须支持 IP TUNNEL 协议。
- 优点:负载均衡器只负责分发请求,响应包由 RS 直连客户端,大大减少了负载均衡器的数据流量,使其不易成为瓶颈,能处理巨大的请求量。并且可以在公网上进行跨地域分发。
- 缺点:RS 节点需要拥有公网 IP。此模式要求所有服务器支持 IP Tunneling 协议,可能仅限于部分 Linux 系统。
三、直接路由模式(VS-DR)
原理:负载均衡器(Director)和后端 RS 使用同一个虚拟 IP(VIP)对外提供服务,但只有 Director 会对这个 VIP 的 ARP 请求进行响应。
因此,网关会把所有发往该服务 VIP 的请求全部定向给 Director。Director 收到数据包后,根据调度算法选择一台 RS,将数据包的目的 MAC 地址改为该 RS 的 MAC 地址(因为 IP 地址都是 VIP),然后分发出去。RS 收到这个目的 MAC 是自己的数据包,处理完毕后,由于源 IP 是 VIP,目的 IP 是客户端 IP,它可以直接将响应包返回给客户端。
由于负载均衡器需要修改数据链路层的 MAC 头,所以它必须和 RS 在同一个广播域内(通常理解为在同一台二层交换机下)。
- 优点:和 TUN 模式一样,响应包不经过 Director,性能很高。相比 TUN,它不需要隧道封装,因此几乎任何操作系统都可以作为 RS。
- 缺点(不足):要求负载均衡器和 RS 的物理网卡必须在同一个二层网络段内。
13、MySQL 的 InnoDB 如何定位锁问题?MySQL 如何减少主从复制延迟?
MySQL 的 InnoDB 如何定位锁问题:
- 可以使用
SHOW ENGINE INNODB STATUS 命令检查引擎状态,其中包含了最近的死锁信息。
- 在 MySQL 5.5 及以上版本,
information_schema 库中增加了以下三个关于锁的内存表:
innodb_trx ## 当前运行的所有事务
innodb_locks ## 当前出现的锁
innodb_lock_waits ## 锁等待的对应关系
MySQL 如何减少主从复制延迟:
如果延迟较大,可以从以下几个方面排查和优化:
- 硬件差异:确保从库的硬件配置(尤其是磁盘 I/O)不低于主库。
- 单线程复制:早期版本主从复制是单线程的,如果主库写并发很高,可能导致从库跟不上。可以考虑升级到支持多线程复制(并行复制)的版本。
- 慢 SQL:优化主库上的慢查询语句。
- 网络延迟:检查主从服务器之间的网络质量。
- 主库负载:主库读写压力过大可能导致 Binlog 生成慢。可以在架构前端引入缓存层来减轻主库读压力。
- 从库负载:使用多台从库来分摊读请求,并设置一台专用的从库只用于备份,不提供查询服务。
另外,可以调整以下两个参数来减少因网络问题导致的延迟:
--slave-net-timeout=seconds # 默认3600秒。当从库从主库读取日志数据失败后,等待多久才重新尝试连接。
--master-connect-retry=seconds # 默认60秒。当重新建立主从连接时,如果连接失败,间隔多久后重试。
其他解决方案:
- 优化主库的 DDL 操作,使其快速执行。
- 主库为了保证数据安全,设置可能较严格(如
sync_binlog=1, innodb_flush_log_at_trx_commit=1),而从库可以适当放宽要求(如设置 sync_binlog=0 或关闭 Binlog,innodb_flush_log_at_trx_commit=0),以提高 SQL 执行效率。
14、如何重置 MySQL Root 密码?
一、已知当前 ROOT 密码,修改密码的方法:
- 在 Shell 环境下使用
mysqladmin 命令:
mysqladmin -u root -p password "新密码"
# 回车后会提示输入旧密码
- 在
mysql> 环境中,使用 UPDATE 命令直接更新 mysql.user 表:
UPDATE mysql.user SET password=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;
- 在
mysql> 环境中,使用 GRANT 命令重置权限和密码:
GRANT ALL ON *.* TO root@'localhost' IDENTIFIED BY '新密码';
二、忘记 ROOT 密码的解决方法:
- 停止正在运行的 MySQL 服务:
service mysqld stop
- 以安全模式(跳过授权表加载)启动 MySQL 服务:
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
- 使用空密码的 root 用户登录,并重置密码:
mysql -u root
mysql> UPDATE mysql.user SET password=PASSWORD('新密码') WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
- 重启 MySQL 服务至正常模式。
15、lvs/nginx/haproxy 优缺点
Nginx 的优点:
- 工作在七层,可以针对 HTTP 应用做更灵活的分流策略,如基于域名、目录结构的正则匹配,其灵活性远超 LVS。
- 对网络稳定性的依赖较小,理论上只要能 ping 通就能进行负载均衡。
- 安装和配置相对简单,错误日志清晰,易于调试。
- 能承担较高的负载压力,在较好的硬件上可支撑数万并发。
- 能通过检测后端服务器返回的状态码、超时等来判定故障,并将错误请求提交到其他节点。但不支持通过特定 URL 内容来检测。
- 不仅是负载均衡器,还是功能强大的 Web 应用服务器,LNMP 架构流行且稳定。
- 作为反向代理缓存服务器性能优异,速度可超越传统的 Squid。
- 在中层反向代理领域表现出色。
- 社区活跃,第三方模块丰富。
Nginx 的缺点:
- 通常仅支持 HTTP、HTTPS 和 Email 协议,适用范围有一定限制。
- 对后端服务器的健康检查,默认只支持通过端口连通性检测,不支持基于 URL 的深层检测。也不直接支持会话保持,但可通过
ip_hash 等方式解决。
LVS 的优点:
- 工作在四层,仅作分发,无流量产生,性能最强,对 CPU 和内存消耗低。
- 配置相对固定,人为出错几率小。
- 工作非常稳定,自身结合 Keepalived 可实现完整的高可用方案。
- 应用范围广,几乎可为所有基于 TCP/IP 的应用做负载均衡。
LVS 的缺点:
- 不支持正则处理,不能做动静分离,而这是 Nginx/HAProxy 的优势。
- 在大型、异构(如包含 Windows 服务器)环境中,LVS/DR+Keepalived 的配置和维护相对复杂。
HAProxy 的特点:
- 支持虚拟主机。
- 能够弥补 Nginx 的一些不足,例如支持会话保持、Cookie 引导,同时支持通过获取指定 URL 来检测后端服务器状态。
- 作为专业的负载均衡软件,在纯负载均衡效率和并发处理上优于 Nginx。
- 支持 TCP 协议负载均衡,可对 MySQL 读操作进行负载均衡和健康检查。
- 负载均衡算法非常丰富,包括轮询 (roundrobin)、加权轮询 (static-rr)、最少连接 (leastconn)、基于源 IP (source)、基于 URI (uri) 等。
16、MySQL 数据备份工具
- mysqldump 工具:MySQL 自带的逻辑备份工具。支持基于 InnoDB 的热备份,但由于是逻辑备份,速度相对较慢,适合数据量较小的场景。
mysqldump 全量备份配合二进制日志可以实现基于时间点的恢复。
- 基于 LVM 快照备份:属于物理备份,可以进行文件系统级别的快照备份,或用
tar 命令打包整个数据目录。但这通常是冷备份,且不同存储引擎备份粒度不同。
- percona xtrabackup 工具:开源的物理热备份工具,支持 InnoDB 存储引擎。它支持全量备份和增量备份,速度非常快,还支持数据迁移、复制环境下的备份恢复等高级功能。启用
innodb_file_per_table 后,甚至可以支持单表备份。
17、keepalived 的工作原理和如何做到健康检查
Keepalived 基于 VRRP(虚拟路由冗余协议)实现。VRRP 将多台提供相同功能的路由器组成一个组,组内有一个 Master 和多个 Backup。Master 拥有一个对外服务的虚拟 IP(VIP),并定时发送 VRRP 组播报文。当 Backup 收不到 VRRP 报文时,就认为 Master 宕机,此时会根据优先级选举新的 Master 接管 VIP,从而实现高可用。
Keepalived 主要有三个模块:core(核心,负责主进程)、check(健康检查)和 vrrp(实现 VRRP 协议)。
Keepalived 健康检查配置示例(在配置文件中):
HTTP_GET | SSL_GET
{
url {
path /# 可以配置多个检查的URL
digest <STRING> # 使用 genhash 工具生成的摘要信息
status_code 200 # 期望返回的 HTTP 状态码
}
connect_port 80 # 连接端口
bindto <IPADD>
connect_timeout 3 # 连接超时时间
nb_get_retry 3 # 重试次数
delay_before_retry 2 # 重试间隔
}
18、统计 ip 访问情况,要求分析 nginx 访问日志,找出访问页面数量在前十位的 ip
cat access.log | awk '{print $1}' | uniq -c | sort -rn | head -10
19、使用 tcpdump 监听主机为 192.168.1.1,tcp 端口为 80 的数据,同时将输出结果保存输出到 tcpdump.log
tcpdump 'host 192.168.1.1 and port 80' > tcpdump.log
20、如何将本地 80 端口的请求转发到 8080 端口,当前主机 IP 为 192.168.2.1
iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:8080
21、你对现在运维工程师的理解和以及对其工作的认识
运维工程师责任重大,需要保证公司提供的服务持续、快速、稳定、安全。他们的任何一个小失误都可能对公司或客户造成重大损失。因此,运维工作需要严谨细致的态度,同时也需要不断创新和优化,以应对日益复杂的系统环境。
22、实时抓取并显示当前系统中 tcp 80 端口的网络数据信息,请写出完整操作命令
tcpdump -nn tcp port 80
23、服务器开不了机怎么解决一步步的排查
A、造成服务器故障的可能原因:

B、服务器故障排查步骤:

24、Linux 系统中病毒怎么解决
- 最彻底的方法:重装系统。
- 查杀步骤:找到并删除病毒文件。中毒后通常表现为 CPU/内存使用率高、服务器异常向外发包等。
- 使用
top 命令找出 CPU 使用率异常的进程。
- 使用
ps aux 结合可疑的进程名(病毒文件命名往往混乱)定位病毒文件位置。
- 使用
rm -f 删除病毒文件。
- 检查计划任务 (
crontab)、开机启动项、病毒文件所在目录是否有其他可疑文件。
- 后续处理:由于可能存在潜伏病毒,建议在备份重要数据后,重装系统以绝后患。
25、发现一个病毒文件你删了他又自动创建怎么解决
这种情况通常是因为存在一个“母进程”在持续生成病毒文件。处理思路如下:
- 隔离网络:最好先断开服务器的外网连接(如果是内网服务器则断内网),阻止病毒对外通信和下载。
- 顺藤摸瓜:使用
iftop 查看异常外联,用 netstat 查看异常连接和端口,用 lsof -p <pid> 查看进程打开的文件,用 ps aux 或 pstree 仔细排查所有进程,寻找看起来像系统进程但又略有不同的“冒牌货”(例如 /usr/bin/.sshd)。
- 清除病毒:找到母进程后,先杀掉所有相关的病毒进程,然后删除其可执行文件,最后再清理那些会自动复活的衍生文件。
- 总结:善用
iftop, ps, netstat, chattr (防止文件被修改), lsof, pstree 等工具进行排查。对于感染严重的系统(如引导文件被感染),仍需考虑重装。
26、说说 TCP/IP 的七层模型
- 应用层 (Application):网络服务与最终用户的接口。协议如 HTTP, FTP, SMTP, DNS, DHCP 等。
- 表示层(Presentation Layer):负责数据表示、加密、压缩。格式如 JPEG, ASCII 等。(在 TCP/IP 五层模型中已合并到应用层)
- 会话层(Session Layer):建立、管理、终止会话。(在 TCP/IP 五层模型中已合并到应用层)
- 传输层 (Transport):提供端到端的可靠或不可靠传输,以及流量控制和差错校验。主要协议有 TCP 和 UDP。
- 网络层 (Network):进行逻辑地址寻址(IP 地址),实现不同网络间的路径选择。协议如 IP, ICMP, ARP 等。
- 数据链路层 (Link):建立逻辑连接,进行硬件(MAC)地址寻址、差错校验等。将比特组合成帧。
- 物理层(Physical Layer):规定物理设备标准,为数据端设备提供传输原始比特流的物理连接。涉及“信号和介质”。
27、你常用的 Nginx 模块,用来做什么
rewrite模块,实现重写功能
access模块:来源控制
ssl模块:安全加密
ngx_http_gzip_module:网络传输压缩模块
ngx_http_proxy_module 模块实现代理
ngx_http_upstream_module模块实现定义后端服务器列表
ngx_cache_purge实现缓存清除功能
28、请列出你了解的 web 服务器负载架构
常见的负载均衡架构/软件有:Nginx, HAProxy, Keepalived, LVS。
29、查看 http 的并发请求数与其 TCP 连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
此命令会统计并输出如 ESTABLISHED, TIME_WAIT 等各 TCP 状态的数量。
另外,ulimit -n 可以查看 Linux 系统当前会话允许打开的最大文件描述符数量(这直接影响服务器能维持的连接数)。如果需要修改,可以编辑 /etc/security/limits.conf 文件,例如:
* soft nofile 10240
* hard nofile 10240
修改后需要重新登录生效。
30、用 tcpdump 嗅探 80 端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}'| sort | uniq -c | sort -nr |head -20
31、写一个脚本,实现判断 192.168.1.0/24 网络里,当前在线的 IP 有哪些,能 ping 通则认为在线
#!/bin/bash
for ip in `seq 1 255`
do
{
ping -c 1 192.168.1.$ip > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo 192.168.1.$ip UP
else
echo 192.168.1.$ip DOWN
fi
}&
done
wait
32、已知 apache 服务的访问日志按天记录在服务器本地目录 /app/logs 下,由于磁盘空间紧张现在要求只能保留最近 7 天的访问日志!请问如何解决?
假设日志文件命名格式为 access_www_2015-01-01.log。可以使用 find 命令配合 -mtime 参数来删除 7 天前的文件。
解决方法:
find /application/logs/ -type f -mtime +7 -name "*.log" -exec rm -f {} \;
# 或者使用 xargs
# find /application/logs/ -type f -mtime +7 -name "*.log" | xargs rm -f
通常会将此命令放入 crontab,每天定时执行一次,以实现自动日志清理。
33、如何优化 Linux 系统(可以不说太具体)?
系统优化的常见方面包括:
- 账户安全:不用 root 直接操作,添加普通用户并通过 sudo 授权。
- 服务安全:更改 SSH 默认端口,禁止 root 远程登录。
- 时间同步:配置 NTP 服务自动同步时间。
- 软件源:配置国内 yum/apt 源,加速软件安装。
- 安全策略:根据业务需求合理配置 iptables/firewalld;对内部测试环境可关闭 SELinux。
- 资源限制:调整系统文件描述符数量 (
ulimit -n)。
- 服务管理:精简不必要的开机启动服务。
- 内核参数:根据业务特点优化
/etc/sysctl.conf 中的网络、内存等内核参数。
- 文件系统:根据场景选择合适的文件系统挂载参数 (
noatime, nodiratime 等)。
- 系统信息:清除
/etc/issue 等文件中的系统标识信息。
34、请执行命令取出 linux 中 eth0 的 IP 地址 (请用 cut,有能力者也可分别用 awk,sed 命令答)
cut 方法 1:
ifconfig eth0 | sed -n '2p' | cut -d ":" -f2 | cut -d " " -f1
awk 方法 2:
ifconfig eth0 | awk 'NR==2' | awk -F ":" '{print $2}' | awk '{print $1}'
awk 多分隔符方法 3:
ifconfig eth0 | awk 'NR==2' | awk -F "[: ]+" '{print $4}'
sed 方法 4:
ifconfig eth0 | sed -n '/inet addr/p' | sed -r 's#^.*ddr:(.*)Bc.*$#\1#g'
(注:不同系统或版本的 ifconfig 输出格式可能略有差异,上述命令适用于特定格式)。现代系统更推荐使用 ip addr show eth0 命令。
35、每天晚上 12 点,打包站点目录 /var/www/html 备份到 /data 目录下(最好每次备份按时间生成不同的备份包)
可以编写一个 Shell脚本 并配置到 crontab 中。
脚本示例 (/root/backup.sh):
#!/bin/bash
cd /var/www/ && /bin/tar zcf /data/html-$(date +\%Y\%m\%d_\%H\%M\%S).tar.gz html/
配置定时任务:
crontab -e
# 添加以下行
00 00 * * * /bin/bash /root/backup.sh
这样每天零点就会执行备份,并且备份文件名会包含日期和时间戳,确保唯一性。