整理的linux面试运维题

  1. 如何在非交互模式下把 /home/example/下所有.conf文件中的 192.168.0.2 改成 db01 ?

find /home/example/ -type f -name "*.conf" -print|xargs sed -i ‘s/192\.168\.0\.2/db01/g‘

  1. 写iptables 规则,只允许远程主机访问本机的 22,80 ,443端口

iptables -A INPUT -p tcp -m multiport --dport 22,80,443 -j ACCEPT

iptables -A OUTPUT -p tcp -m multiport --sport 22,80,443 -j ACCEPT

iptables -P INPUT DROP

iptbales -P FORWAD DROP

iptbales -P OUTPUT DROP

然后,提取以“:“分割的第五个字段?

  1. nginx 配置文件修改后,在不影响线上访问的前提下,用什么命令检查文件语法错误以及平滑重启nginx

    /usr/local/nginx/sbin/nginx -t

    /usr/local/nginx/sbin/nginx -s reload

  1. 从 bytu.log 文件中提取包含 “”WARNING“”或“”ERROR“”同时不包含“”IGNOR“”的行,然后提取 : 分割的第五字段

cat bytu.log |grep -E ‘WARNING|ERROR‘|grep -v "IGNOR"|awk -F : ‘{print $5}‘

5.统计bytu.log 日志中 每个IP地址的访问次数,请根据访问量统计出前10个。

日志样例如下:

172.17.111.101 - [02/Jul/2016-23:22:22 +0800] -Get/HTPP/1.1 200 19

cat bytu.log| awk ‘{print $1}‘|uniq -c |sort -rn|head -n 10

6 .写一个脚本,判断172.17.111.0/24的网络里,哪些IP能ping通

#!/bin/bash

for i in `seq 1 255`;do

ping -c 1 172.17.111.$i &>/dev/null

if [ $? -eq 0 ]; then

echo "172.17.111.$i OK"

else

echo "172.17.111.$i error"

fi

done

  1. .假设你有一个名为 ‘abc’ 的表,它存在多个字段,如 ‘createtime’ 和 ‘engine’。名为 engine 的字段由 ‘Memoty’ 和 ‘MyIsam’ 两种数值组成。如何只列出 ‘createtime’ 和 ‘engine’ 这两列并且 engine 的值为 ‘MyIsam’?

select createtime, engine from abc where engine=MyIsam

  1. 配置nginx  *.test.com server 访问代理到后端 10.0.0.1 服务器,访问 www.test.com/test.html 跳转到 www.baidu.com 并且只允许10.0.0.0/8 网段访问。

server

{

listen 80;

server_name *.test.com;

location /

{

rewrite /test.html http://www.baidu.com permanent;

proxy_pass 10.0.0.1;

proxy_set_header Host   $host;

allow 10.0.0.0/8;

deny all;

}

}

  1. 在什么样的情况下会出现 403,503,502,500 错误,大体描述一下

403(用户认证拒绝) 404(找不到文件) 500(服务器程序问题) 502(nginx请求后端php找不到) 503(出现在squid,vanish代理软件上,代理服务器访问后端服务器出错) 504(mysql数据有延迟)

  1. 写一个查看本机并发连接命令并取出被连接数ip排行

netstat -nat|grep -i "80"|wc -l

netstat -ntu | grep ESTAB | awk ‘{print $5}‘ | cut -d: -f1 | sort | uniq -c | sort -nr

  1. linux 如何挂在windows 下的共享目录

关闭 windows和linux的防火墙;

在windows 系统上创建共享目录share,注意要修改这个目录的属性为共享;

在linux系统上创建/windows目录, chmod 777 /windows;

mount -t cfis //windowsip/share/ /windows

  1. 统计目录A 中 所有 .svn 文件夹合计占用磁盘大小

find 目录A -name "*.svn" -type d|xargs du -ch |tail -n1|awk ‘{print $1}‘

  1. crontab 误删了,如何恢复 ? 为了防止 crontab被误删,我们该怎么做 ?

从 /var/log/cron 中恢复最近几天的crontab运行日志, 为了防止 crontab误删, 可以每天对crontab备份,备份最近15天数据,过期清除。

#!/bin/bash

DATE=$(date +%Y%m%d)

crontab -l > /home/work/bak/crontab_$DATE.bak

find /home/work/bak/ -mtime +15 -name ‘*.bak‘ -exec rm -rf {} \;

       

  1. root 用户下以 httpd 用户的身份运行脚本 /opt/case/www.km.com/testdb.php, 用一条命令怎么实现 ?

sudo httpd php -f /opt/case/www.km.com/testdb.php

  1. 如何查看 进程号 为 4044 的进程打开了哪些文件 ?

通过进程名字以及pid 执行 lsof -c programe-name 或 lsof -p $pid

(losf 命令很实用  lsof /proc 查看被打开某一文件相关进程信息; losf -i:25查看监听25端口的进程; losf -i @192.168.1.1 查看活动的链接; losf -u root 查看某个用户打开的文件.)

  1. MySQL 怎么授权及取消授权,假如环境如下:

授权IP: 172.16.0.11      用户名:test     密码: 123456        数据库名: monitor   权限 :SELECT

grant SELECT privileges on monitor.* to ‘test‘@172.16.0.11 identified by ‘123456‘;

flush privileges;

revoke select privileges on monitor.* to ‘test‘@172.16.0.11 identified by ‘123456‘;

flush privileges;

  1. linux 怎么查看用户登录日志

last

  1. 如果你负责监控系统,你会怎么做 ?、

监控mysql主从, 同步异常时发送邮件。 根据web日志或者网络连接数,监控当某个ip 并发连接数或者短时间内pv达到100,即 iptables -I INPUT -s 192.168.1.1 -j DROP 监控频率3分钟。

分多钟方式监控web服务状态, 例如:监控web站点目录是否存在恶意篡改,定时curl 站点是否返回502,ddos攻击检测事实流量,流量进出大小,数据包个数进出多少,延迟高,伴随丢包现象。

数据库慢日志检测,检测日志利用率,监控表空间使用率与剩余空间,检测吞吐量,用户连接数,磁盘读写总时间,缓存命中率。

使用nc命令来模拟web客户端检测memcache 是否正常,监控响应时间以及命中率。

  1. 网站pv从100w 突增到 1000w, 你会做什么

页面点击量突增,有可能是恶意攻击, 先查看访问日志里短时间内访问最大的远端地址,并查看ip地址定位信息,统计最大访问量的页面,根据页面查看由哪个页面跳转过来,进一步pv的真实性, 考虑到服务器负载 iptables 对真实性过低的大流量客户端进行阻断。

可以考虑咨询市场部门,是否有在部分时间内做过网站推广,是否被上热搜,当然通过访问日志也可以判断出大致原因。

  1. mysql主从延时主要哪些原因,怎么解决?

    主从有延迟是很正常的一件事,先要分析造成主从延迟的原因,主要有网络、磁盘IO两大原因。我们需要尽可能地降低延迟,所以需要把网络环境搞稳定,使用千兆网卡并做双网卡绑定,甚至使用光纤通信,也就是说不要让网络带宽成为传输数据的瓶颈。而在磁盘IO上,也需要提升,比如使用高转速高缓存的硬盘并做raid50,或者使用ssd硬盘并做raid50,大大提升磁盘的IO速度。

  1. 写一个脚本后台监控php-fpm 进程,当检测到进程停止后,能自动启动php-fpm

#!/bin/bash

pid=`pgrep php-fpm|wc -l`

if [ $pid -eq 0 ];then

echo "php have down........"

echo "wait a minute ,php will start....."

systemctl start php-fpm

else

echo "php is well"

fi

  1. 有一日志文件  假设文件名为 demo.log,只查看它 的第1000行至2000行。

sed -n ‘1000,2000‘p demo.log

  1. 如果让你管理数量 100+ 服务器,你会如何去管理?

1.首先将100+台服务器都录入到资产管理系统中,并且使用zabbix 添加监控,设置邮件报警。

2.将100+台机器按照业务分组,比如数据库,测试等

  1. 使用自动化管理工具ansibel 进行批量管理。
  1. 写一个脚本将数据库备份并打包至远程服务器 192.168.1.1  /backup 目录下 。

#!/bin/bash

mysqldump -uroot  --all-database > all.sql

if [ $! -eq=0 ]

then

/usr/bin/tar -zcvf `date +%F`.tar.gz all.sql

/usr/bin/rsync -az `date +%F`.tar.gz 10.222.138.155:/root/backup

else

echo "mysqldump failure" >> /tmp/mysqldump.log

fi

  1. 使用tcpdump 监听主机iP为 192.168.1.1 ,tcp端口为 80的数据,同时将结果输出到 tcpdump.log, 请写出相关命令。

tcpdump -nn host 192.168.1.1 and tcp and port 80 -w tcpdump.log

  1. 用sed 修改test.txt 的23行 test 为 tset;

sed -i "23s/test/tset/g"  test.txt

  1. 写一个脚本,实现批量添加20个用户, 用户名为 user1-20, 密码为user后面跟5个随机字符。

#!/bin/bash

for i in `seq 1 20`

do

useradd user_$i

password=`echo $RANDOM|md5sum|cut -c 1-5`

password="user"$password

echo $password|passwd --stdin user_$i

done

~

  1. 写一个脚本,判断一个指定的脚本是否有语法错误; 如果有错误,则提醒用户键入Q或者q无视错误并退出其他任何键可以通过vim打开这个指定的脚本。

#!/bin/bash

script_file="./2.sh"

sh -n $script_file > /dev/null 2>/dev/null

n=`echo $?`

if [ $n -ne 0 ];then

read -p "this script is a bad file,"q" or "Q" --exit,other key to edit the file:" key

echo $key

if [ $key == ‘q‘ -o $key == ‘Q‘ ]

then

exit

else

vi $script_file

fi

fi

#!/bin/bash

script_file="./2.sh"

sh -n $script_file > /dev/null 2>/dev/null

n=`echo $?`

if [ $n -ne 0 ];then

read -p "this script is a bad file,"q" or "Q" --exit,other key to edit the file:" key

case $key in

q|Q)

exit 0

;;

*)

vi $script_file

;;

esac

fi

  1. 在 1-39 内取随机数

echo $[$RANDOM%39]

  1. 显示/etc/inittab 中以#开头,且后面跟了一个或者多个空白字符,而后又跟了任意非空白字符的行

grep "^# \{1,\}[^ ]"  /etc/inittab

  1. shell 下32位随机密码生成

echo $RANDOM|md5sum|cut -c 1-32

  1. 使用awk命令, 计算一个目录下文件大小的总和

ls -l /root |awk ‘{sum=sum+$5} END {print sum}‘

  1. 现公司有这样 需求,将nginx 反向代理 apache, 已知 apache 地址为:192.168.2.11,代理链接为 curl:http://192.168.2.11/index.php,nginx具体怎么配置实现此功能?

server {

listen 80;

server_name http://192.168.2.11/index.php;

location / {

proxy_pass 192.168.2.11;

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#client_max_body_size 100m;

}

34  --使用任意一种你所熟悉的脚本完成如下任务:将/etc/passwd的第一列取出,并且每一列都以一行描述如:“The 1 account is aowgamecoser”来显示,1表示行数。

cat  etc/passwd | awk -F‘:‘ ‘{print "the" NR "account is aowgamecoser",$1}‘

  1. 假如我们部署在北京BGP线路机房的装甲风暴游戏,晚上23:00 接到投诉深圳地区部分玩家无法登陆游戏, 请概括描述故障排查思路和解决办法。
  1. 先查看网络是否正常,可查看深圳到北京BGP机房这段网络
  2. 查看服务器的运行情况,是否负载过高,内存跑满。
  3. 查看报错日志
  1. 某天与用户投诉访问网站速度很慢或页面打不开,若你是该网站web服务器的管理员,你如何查找原因,

检查网站的在线用户量,根据用户的并发量来做初步判断是不是因为并发量过大引起的数据库连接负荷原因

检查数据库连接是否满负荷。

通过浏览器自带的检测请求发送到返回的时间来判断是否是因为用户带宽原因。

  1. 写一个sed命令,修改/tmp/input.txt文件的内容,要求:删除所有空行,在非空行前面加一个 “”AAA“”,在行尾加一个“”BBB“”

sed  ‘/^$/‘d 1.tx|sed ‘s/$/BBB/‘ |sed ‘s/^/AAA/‘

时间: 2024-10-19 12:23:58

整理的linux面试运维题的相关文章

这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题

这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题. 一.Linux操作系统知识 1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块? 2.Linux开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解? 3.企业中Linux服务器系统分区标准是什么?(以硬盘为300G,内存16G为例) 4.某一天突然发现Linux系统文件只读,该怎么办呢?完整操作步骤. 5.安装一台系

云计算面试题,浅谈Linux云计算运维工程师面试技巧

?前段时间,在准备面试的时搜到的一套Linux运维工程师面试题,感觉比较全面,也一直看到小伙伴寻找讨论Linux方面的面试题,特此整理一篇文章,希望可以帮助到更多的小伙伴在面试过程中更加顺利,早日找到自己满意的工作.对于所有Linux云计算运维的应聘者来说,面试是最考验面试者的环节,且很有压力的部分.今天我们就聊一聊面试技巧. null 面试,是面试官与应聘者双向沟通的环节.目的是通过互相交流,促进双方的了解.从而达成雇佣意向的过程.应聘者们往往是费尽心思,绞尽脑汁,施展浑身解数,运用各种手段,

零基础转行Linux云计算运维工程师获得20万年薪的超级学习技巧

云计算概念一旦产生便一发不可收拾,成为移动互联网时代最为火热的行业之一.国内各大互联网公司例如阿里.腾讯.百度.网易等纷纷推出自己的云计算产品,3月10日,腾讯云0.01元投标时间更是让云计算在普罗大众中火热了一把! 随着云计算的产生,运维工程师也迎来了职业的升级.传统的运维工程师散布在各个企业,在可见的将来,运维工程师将会越来越集中于云计算平台.当然,各企业因为对服务器端内容需要维护,也会有运维工程师的需求. 随着云计算被捧上神坛,相应的人才待遇水涨船高.据拉勾统计,云计算相关岗位数量相比前一

Linux系统运维面试题,Linux运维经典面试题讲解

这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题. 1.Linux如何挂载windows下的共享目录? mount.cifs //IP地址/server /mnt/server -o user=administrator,password=123456 linux 下的server需要自己手动建一个 后面的user与pass 是windows主机的账号和密码 注意空格 和逗号 2.如何查看http的并发请求数与其

02. SpringCloud实战项目-快速搭建Linux环境-运维必备

SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款Java面试刷题的开源系统,可以用零碎时间利用小程序查看常见面试题,夯实Java基础. PassJava 项目可以教会你如何搭建SpringBoot项目,Spring Cloud项目 采用流行的技术,如 SpringBoot.MyBatis.Redis. MySql. Mon

Linux系统运维工程该具备哪些素质

记得在上高中时,物理老师总是会对我们一句话:"学习是件苦差事."工作后发现,其实做运维也是件苦差事.最为一名运维工程师,深知这一行的艰辛,但和IT行业其他职务一样,那就是付出的越多,回报的也就越多.回想起成为运维的学习路程,我总想着能给运维新手和以后想从事运维行业的朋友总结一些经验和我看过的书籍,后面会介绍到,他们不要再踩我踩过的坑. 第一点,学好Linux.运维行业的门槛很低,我说的低其实是学历的要求低,因为据我所知还没有大学开设了运维专业.开始找工作时我了解到,一般公司的运维岗位不

linux系统运维企业常见面试题集合(三)

linux系统运维企业常见面试题集合(三) 01  写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行:(2) 一行中,如果包含"11111",则在"11111"前面插入"AAA",在"11111"后面插入"BBB",比如:将内容为0000111112222的一行改为:0000AAA11111BBB2222 [[email protected]~]# cat -n /t

要成为linux网站运维工程师必须要掌握的技能

我是一名linux运维工程师,确切的说是网站运维工程师,从事linux工作有2年多了,对这方面有一些体会,给新手一点借鉴: 首先说下运维种类:有办公网系统运维(就是网管),有IDC外网运维,外网运维里又分网站运维.游戏运维.IDC运维(装系统排障),监控运维(盯着监控).我强烈建议大家选择linux网站运维路线,这个路线绝对是最好的,会了网站运维了去做别的运维岗位绝对也是信手拈来的,网站运维需要的技术点更多,因此,我以我工作的网站运维岗位说说运维都需要啥. 1.选择linux系统选择linux系

linux 自动化运维之Cobbler

一.Cobbler 简介 1.Cobbler 概述 Cobbler由python语言开发,是对PXE和Kickstart以及DHCP的封装.融合很多特性,提供了CLI和Web的管理形式.更加方便的实行网络安装.同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展.它不紧可以安装物理机,同时也支持kvm.xen虚拟化.Guest OS的安装.更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理. 2.新旧对比 以前自动化安装系统得先设置一个网络环境,可是设置网络环境涉及到