Linux运维面试必备:awk、grep、sed命令与CRONTAB实战

需积分: 10 19 下载量 66 浏览量 更新于2024-07-20 收藏 317KB PDF 举报
"这是一份关于Linux运维工程师面试的题库,涵盖了文件操作、网络配置、计划任务、脚本编程以及RAID知识等多个方面,旨在帮助面试者准备相关技能的考察。" 一、文件操作 1. 查询file1中空行的所在行号,可以使用两种方法:一种是awk命令,通过判断每一行是否为空(/^$/),如果为空则打印行号(NR);另一种是先用grep匹配空行,然后用awk提取行号(FS=":",打印第一列)。 - `awk '{if($0~/^$/) print NR}' file1` - `grep -n '^$' file1 | awk 'BEGIN{FS=":"}{print $1}'` 2. 查询以abc结尾的行,可以直接使用grep命令。 - `grep 'abc$' file1` 3. 打印file1文件的前3行,可以使用sed的-n选项配合p命令,或者使用head命令。 - `sed -n '1,3p' file1` - `head -3 file1` 二、网络配置 要将本地80端口的请求转发到8080端口,可以通过iptables的规则设置,这里假设当前主机IP为192.168.2.1。 - `iptables -A PREROUTING -d 124.42.60.109 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.18:9000` 三、crontab计划任务 在11月份,每天的6点到12点之间,每隔2小时执行一次/usr/bin/httpd.sh,crontab的表达式应为: - `06-12/2 * 11 * /usr/bin/httpd.sh` 四、shell脚本 编写shell脚本将/usr/local/test目录下大于100K的文件转移到/tmp目录下,使用for循环遍历目录,通过ls-l获取文件大小并进行比较,满足条件则移动文件。 ```bash #!/bin/bash for file in `/usr/bin/ls /usr/local/test` do if [-f "$file"]; then if [ $(ls -l "$file" | awk '{print $5}') -gt 10000 ]; then mv "$file" /tmp/ fi fi done ``` 五、RAID工作原理及特点 1. RAID0(条带化):数据被分割并同时写入多个磁盘,提高了读写速度。但无数据冗余,一旦一个磁盘故障,所有数据都将丢失。 2. RAID1(镜像):数据在两块磁盘上同步写入,形成镜像,读取速度快且数据安全性高。成本较高,因为需要至少两块磁盘。 3. RAID5(分布式奇偶校验):数据分布在多个磁盘上,同时包含分布式奇偶校验信息,允许一个磁盘故障而不影响数据完整性。读写速度较快,同时提供了数据冗余,但重建故障磁盘时对性能有影响。 这些面试题涵盖了Linux运维工程师所需的基本技能,包括文件操作、网络配置、计划任务、脚本编写和存储管理等,对于准备面试或提升个人技能都有很好的参考价值。