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}'
 
个。
日志样例如下:
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/'
 
 
 
 
 

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

  1. linux常见运维题

    linux运维题 一.填空题 1. 在Linux 系统 中,以文件方式访问设备 . (linux下一切都是文件) 2. Linux 内核引导时,从文件/etc/fstab中读取要加载的文件系统 . ( ...

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

    云计算概念一旦产生便一发不可收拾,成为移动互联网时代最为火热的行业之一.国内各大互联网公司例如阿里.腾讯.百度.网易等纷纷推出自己的云计算产品,3月10日,腾讯云0.01元投标时间更是让云计算在普罗大 ...

  3. Linux系统运维相关的面试题 (问答题)

    这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题.   一.Linux操作系统知识 1.常见的Linux发行版本都有 ...

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

    记得在上高中时,物理老师总是会对我们一句话:"学习是件苦差事."工作后发现,其实做运维也是件苦差事.最为一名运维工程师,深知这一行的艰辛,但和IT行业其他职务一样,那就是付出的越多 ...

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

    要成为linux网站运维工程师必须要掌握的技能 2015-07-27 发表 老男孩点评:感谢此文的作者,写的非常到位,值得入门的初学者认真看看 我是一名linux运维工程师,确切的说是网站运维工程师, ...

  6. 【微学堂】线上Linux服务器运维安全策略经验分享

      技术转载:https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&sn=6d403ab4 ...

  7. Linux内存运维操作及常用命令

    Linux内存运维操作及常用命令 1.问题诊断 1.1 什么是 Linux 服务器 Load Average? 1.2如何查看 Linux 服务器负载? 1.3服务器负载高怎么办? 1.4如何查看服务 ...

  8. 线上Linux服务器运维安全策略经验分享

    线上Linux服务器运维安全策略经验分享 https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&a ...

  9. 《DevOps故障排除:Linux服务器运维最佳实践》读书笔记

    首先,这本书是Linux.CN赠送的,多谢啦~ http://linux.cn/thread-12733-1-1.html http://linux.cn/thread-12754-1-1.html ...

随机推荐

  1. html_栏目下拉

    ========================================================= =================[ 下拉栏目菜单 ]=============== ...

  2. intellij-添加文档注释模板

    file-->setting-->Editor-->File and Code Templates-->FileHeader

  3. mybatis-自定义缓存-redis二级缓存

    在mybatis一级缓存二级缓存中已经介绍过了二级缓存的大致原理.下面我们用redis来实现一下二级缓存.环境是springmvc+mybatis+redis 步骤一.引入redis相关的maven依 ...

  4. Linux指令--cd,pwd

    本文参照博客做了修改和总结,感谢作者的分享.http://www.cnblogs.com/peida/archive/2012/10/24/2736501.html cd 命令可以说是Linux中最基 ...

  5. JFreeChart绘制折线图实例

    JFreeChart是JAVA平台上的一个开放的第三方图表绘制类库.只要下载JFreeChart的类库,导入项目即可使用.下面是一个绘制折线图的实例.各处注释都已经写的比较清晰了. package c ...

  6. String.Format 格式化货币的小问题

    今天在开发过程中,遇到一件让我觉得比较纳闷的事情:用String.Format 格式化充值金额的时候,我这样处理: String.Format("{0:C2}", dr[" ...

  7. IO (二)

    1 字符流的缓冲区 缓冲区的出现提高了对数据的读写效率. 对应的类: BufferedWriter BufferedReader 缓冲区要结合流才能使用. 在流的基础上对流的功能进行了增强. 2 Bu ...

  8. CentOS7修改主机名(hostname)

    Linux中的hostname在大多数应用中至为重要,例如有些应用强制使用主机名称而不能使用IP地址,如果默认主机名称都为localhost.localdomain 的话那一定会出现问题,而且看起来也 ...

  9. 安装Java和Pycharm的步骤

    [root@nhserver1 usr]# java -versionjava version "1.7.0_25"OpenJDK Runtime Environment (rhe ...

  10. SQL语句-SELECT语句

    select语句 Select语句是指从现存的一个或多个表中查看满足条件的数据 Select语句常规用法: 查看表中所有数据 Select * from students; 查看所有的sid和snam ...