初级运维(一)

发现逐个题目做效率太低,浪费时间,不如重新选题做!找命中概率最大的,做最有水准的题目,这算是这几天的作业吧,挑战快来了,不要被虐啊。其实状态也不好,浪费了很多时间

1、写一个你最拿手的脚本?(命中率50%)

答:监控MySQL主从复制状态的脚本,并邮件报警

1 #!/bin/bash

2 #主从复制,在从服务器上写脚本,每天定时0:00执行

3 #Author:Yue HongCai

4 #2016-8-8

5

6 PORT=`netstat -an|grep "3306"|wc -l

7 IP=`ifconfig eth0|grep "inet addr"|awk -F ":" ‘{print $2}‘|awk ‘{print $1}‘

8 if [ $PORT -eq 1];then

9         echo "mysql server is running."

10 else

11         mail -s "$IP mysql server 3306 not found!" [email protected]

12 fi

13

14 STATUS=${mysql -uroot -p123456 -S /tmp/mysql.sock -e "show slave status \G"|grep -i running}

15 IO_ENV=${echo $STATUS|grep IO |awk ‘{print $2}‘}

16 SQL_ENV=${echo $STATUS|grep SQL|awk ‘{print $2}‘}

17

18 if [ $IO_ENV=="Yes" -a $SQL_ENV=="Yes" ];then

19         echo "the slave repliaction is running"

20 else

21         echo "+++++$date++++">>/check_mysql.log

22         echo "slave is down.">>/check_mysql.log

23         mail -s "$IP mysql slave repliaction is not OK!" [email protected] << /check_mysql.log

24 fi

2、apache编译模块都有什么,功能是什么?(太难,命中率10%)

答:配置apache反向代理,需要用到apache的mod_rewrite和mod_proxy模块组

3、nagios的架构是什么?(中档题,命中率30%)

答:(1)nagios 进程对nagios.cfg主配置文件进行读取,该配置文件中放存着一系列操作客户端的配置信息。

(2)nagios 进程通过对类似于localhost.cfg的客户端配置文件进行操作,服务端执行插件与被监控端的代理进行通信,获取监控结果和数据。

(3)nagios进程将监控结果写入status.dat文件中,status.dat文件相当于日志或数据库

(4)cgi程序对status.dat文件中的监控结果进行分析,最终显示在web界面中。

参考文档:http://www.cnblogs.com/zhuhongbao/p/4174868.html

4、比较两个文件,用什么命令?(比较难,命中率20%)

答:cat file1 file2 | sort | uniq 取出两个文件的交集(只留下同时存在于两个文件中的文件)

cat file1 file2 | sort | uniq -d(repeated只输出重复的行)

cat file1 file2 | sort | uniq –u 删除交集,只留下其他的行

cat file1 file2 | sort |uniq -c 对每行出现的次数进行统计并打印

##cat file1 file2 >1.txt,将两个文件的内容整合一个文件中

5、apache配置文件里查看域名指向(难,一时懵逼,不知道啥意思,命中率10%)

答:估计是想考rewrite重写规则

两个域名 www.abc.com   www.def.com现在需要操作 打开 www.def.com 跳转到 www.abc.com

<VirtualHost *:80>

DocumentRoot /www/abc

php_admin_value open_basedir "/www/abc/tmp"

ServerName  www.abc.com

Serveralias abc.com www.def.com

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.def.com [NC]

RewriteRule ^/(.*) http://www.abc.com/ [L]

ErrorLog "/www/logs/apache/abc.com-error.log"

CustomLog "/www/logs/apache/abc.com-access.log"common

Include  "/www/apache/conf/httpd-platform-com-proxy-ajp.conf"

Include "/www/apache/conf/httpd-platform-rewrite.conf"

</VirtualHost>

6、一个EXT3的分区,使用touch text.file命令系统提示磁盘已满,使用df -h命令查看磁盘大小时显示只使用了60%的空间为什么?(中档,30%)

答:用df -i查看INode使用情况,可能因为由于小文件过多,导致inode被耗尽,可能是因为/tmp目录有很多临时文件,find /tmp -type f -exec rm {} \;或者遍历寻找0字节的文件,并删除。find /home -type f -size 0 -exec rm {} \;最后的办法重新格式化某个分区

参考文档:http://www.cnblogs.com/myjavawork/archive/2011/11/09/2242296.html

7、内存管理中active,inactive,used,freed,swap的涵义?(前面两个没听说过,30%)

答:结合cat /proc/meminfo和free -m

Active: 在活跃使用中的缓冲或缓存大小,Inactive: 在不经常使用中的缓冲或缓存的大小,

used:已用内存大小,free:空闲内存大小,swap:因物理内存不够导致交换分区的大小

8、你认为linux和windows的本质区别的什么?(这个问题,我特么还真就被问过,主要是临场发挥我想不起来,回答地不够吸引人,命中率50%)

答:(1)安全机制,比如iptables、TCP_Wrappers、以及服务本身的权限,重重关卡让linux系统安全性有一定保障

(2)服务本身的稳定性,linux下应用服务的无故障工作时间好于windows,无论是从统计还是运维人员口中都能得出的结果

(3)开源与不开源的问题,性质不同,一个是为普通大众用户服务的,一个是为专业人士服务的

(4)linux是分时多用户多任务系统,而windows是单用户系统

9、nagios怎么短信报警?(我擦,这个问题,正是我需要搜索的,太难,有空细细研究,命中率50%)

答:下载飞信,在command.cfg中定义define command{},在templates.cfg中定义define contact{},最后重新启动nagios。

参考文档http://www.cnyunwei.com/portal.php?mod=view&aid=89493

10、我有一个文件夹里面有很多文件,如何按时间排序,怎么全部列出来?(还是比较难,命中率50%)

答:使用sort -k命令,-k指定按第几列关键字进行排序,我们可以知道时间是在哪一列,然后ll |sort -k 7

11、把a.txt b.txt c.txt 压缩到back.tar.gz,如何查看压缩包里面的文件(比较简单,40%)

答:tar -zcvf back.tar.gz {a.txt,b.txt,c.txt}   tar -ztvf back.tar.gz 查看其中打包的文件 (-t即list)

12、SMB服务器怎么添加用户?如何设置共享文件夹?(一口气说出来不容易,命中率30%)

(1)、useradd 用户

(2)、 smbpasswd -a 用户

(3)、输入密码两次。

(4)、然后 vi /etc/samba/smb.conf

[共享名]

comment = sales stuff

path = /var (共享路径)

valid users = 用户名

public = yes

writable = yes

printable = no

create mask = 0777

directory mask = 0777

最后重启服务service smb restart

13、介绍下nginx负载均衡(这个比较生疏啊,接触不多,40%)

答:nginx能做反向代理和动静分离,upstream目前支持5种方式的负载均衡调度分配算法

1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4)、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。

5)、url_hash(第三方)

vi /usr/local/nginx/conf/nginx.conf

http {

include      mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

upstream myServer{

server www.linux.com:80;

server www.88181.com:8080;

}

server {

listen      80;

server_name  my22;

location / {

proxy_pass  http://myServer;

}

}

}

效果:输入http://192.168.1.113/index.php之后,不停的刷新,你会发现,会在I‘m the 88181、I‘m the linux

这两个页面之间来回交换,view会每刷新两下增加一次,这也证明了前面所说的默认是轮训的方式

参考文档:http://www.linuxdiyf.com/linux/10205.html

14、说出数据库的几种备份方法,并说出优缺点(说浅点行,40%)

答:(1)mysqldump备份 (2)mysqlhotcopy备份 (3)启用二进制日志(binlog)主从复制备份(4)rsync备份(5)cp拷贝文件(6)第三方工具如BigDump

从性质上来说分为事务日志备份、增量备份、完全备份、差异备份

参考文档:http://blog.csdn.net/enweitech/article/details/51612858

15、简述一下Nagios的安装步骤(呵呵,问到这种问题,真的很无语,我尼玛步骤那么长!命中率50%)

答:(1)部署好LAMP环境,下载nagios源码包,需要解压并进入该nagios目录,(2)./configure --prefix=/usr/local/nginx,make all ,make install ,make install-init,make install-config ,make install-commandmode ,make install-webconf(3)创建Nagios用户和组,安装nagios-plugin插件直接安装./configrue &&make &&make install,(4)htpasswd -c /usr/loacl/nagios/etc/

htpasswd.users nagiosadmin(5)重启apache和nagios,登录http://IP/nagios/

16、怎么创建隐藏目录?将已有的文件隐藏呢?(这个问题比较新颖啊,只知道隐藏文件用ls -a可以看到.表示隐藏文件,命中率20%)

答:mkdir .test_dtr  ##在文件夹前面用一个.表示,估计创造隐藏文件也是这样,如果是已有文件改名加点即可。

17、当一个文件5分钟没有被修改,则给某个邮箱发邮件。用shell完成。(难,记不住命令,命中率50%)

答:#!/bin/bash

FILE=`find . mmin 5 -a -type f`   ##-mmin n 对文件数据的最近一次修改是在 n 分钟之前

if [ ! -z $FILE ];then

mail -s "这个文件 $FILE 已经5分钟没有被修改了" [email protected]

fi

参考文档:https://www.kafan.cn/edu/45424616.html

18、sed awk grep find的区别 (这道题太容易考了,命中率80%)

答:sed:一行一行读取的内容到内存中,匹配模式空间,如果满足条件则进行处理,如果不满足则读取文本中的下一行继续进行比对。那么sed主要用来处理每行的

awk:读取整行内容赋给$0,再根据分隔符,将每一列的值赋给$1,$2,知道最行一列$NF,最后进行打印,接着读取下一行

grep:过滤文本中的某个字段,并且打印出含有该字段的整行内容。

find :用户在某个目录下查找,对系统消耗比较大

19、nat与dr的区别?(常考,命中率60%)

答:(1)nat是指经过负载均衡器,将数据包的目的IP地址改为真实服务器的IP地址,并且可以适用于公网和私网环境,当数据包应答的时候会经过负载均衡器,从而成为整个系统的瓶颈。

(2)而DR直接路由模式,请求报文经过负载均衡器,经过一定的调度算法,将数据包的目的MAC地址改为real server的MAC地址,并且所有真实服务器的环回网卡

上都共享VIP地址,忽略ARP应答,在应答报文的时候不需要负载调度器,从而可以接受可多的并发请求,但只能用于私有网络环境。

20、Mysql主从复制原理,以及mysql数据库主从中关键的配置是什么?(不难,越详细越好,命中率50%)

答:Master具有IO线程,slave具有SQL线程和IO线程。

(1)在从服务器执行slave start,从服务器上IO线程会通过授权的用户连接上master,并请求master从指定的文件和位置之后发送bin-log日志内容。

(2)Master服务器接收到来自slave服务器的IO线程的请求后,master然后返回给slave相应的bin-log内容以及在binlog中的下一个指定更新位置。

(3)Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的bin-log的文件名和位置

记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master"我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”;

(4)Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行的命令,并将数据写入磁盘。

关键步骤就是:master端授权和slave端指定master的IP地址以及同步的pos点:

change master to>

master_host=‘192.168.149.128‘>

master_user=‘tongbu‘>

master_password=’123456‘>

master_log_ file=’mysq I一bin.000006‘>

master_log_pos=98;

21、访问网站出现500错误,什么原因,举出三种情况,如何解决?(这题是让说原因,那就真难了,命中率40%)

答:(1)权限配置问题,文件没有权限进行读取,就会抛出这个错误,查看错误日志能解决。

(2).htacess配置错误,一种是里面语法有错误,一种是没有取消注释module_rewrite,而.htacess里面却进行了rewrite.

(3)虚拟主机配置文件有问题,试试用IP访问看看

22、tcpdump的使用,将从网段192.168.32.0/23发往本机80端口的数据监控下来(简单,但也是考点,30%)

答:tcpdump tcp port 80 and net 192.168.1.0/24  ##如果是某台主机host 192.168.1.1

23、 nginx服务器发生502错误(只知道错误网关,不知道如何解决,30%)

答:Nginx 502 Bad Gateway的含义是请求的fastcgi已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致fastcgi进程终止

通常的出现情况就是后端主机服务不可用或者系统宕机,PHP无法进行,或超时

参考文档:http://www.cnblogs.com/mybest/archive/2012/12/27/2836211.html

24、分解文件a,以文件内的行数为分割界限,每个分割后的小文件内有2000行,分割后文件名为a01,a02….a[N](此题新颖,不容易答出来,20%)

答:split -d -l 2000 a a ##-d(delimiter)选项可以指定后缀为数字,如00,01,02,第一个a代表文件名,第二个a代表新文件名的前缀为a

参考文档:http://www.jb51.net/LINUXjishu/115514.html

25、把a目录下的所有普通文件,移动到b目录下,同时保证权限不变,如何操作?

答:#!/bin/bash

for file in `ll /a`

do

if [ -f $file ];then

cp -p $file /b  ##-p (preserve)保持的意思

done

26、Ddos攻击有几种方式,都是怎么做的防护?(问DDOS攻击原理是倒容易,但是要问起方式,就不知道了,命中率30%)

答:SYN Flood,Smurf、TearDrop、ping of death等等,在最前端部署硬件防火墙,如华赛USG500、天泰防火墙

参考文档:http://jingyan.baidu.com/article/7c6fb42848410480642c9023.html

27、keepalived 和 heartbeat对比 (暂时没研究这么说,但万一考到呢,30%)

答:Keepalived使用的vrrp协议方式,虚拟路由冗余协议 ;Heartbeat是基于主机或网络的服务的高可用方式;

keepalived的目的是模拟路由器的双机,heartbeat的是用服务的双机

lvs的高可用建议用keepavlived,业务的高可用使用heartbeat

28、Nginx、Lvs、HAProxy负载均衡的区别,怎么实现会话保持? (重量级题目,比较长,挑重点说,不然也记不住,命中率50%)

答:(1)Nginx:优点:支持rewrite规则,对网络带宽要求不高,稳定性高,用于反向代理,宕机的概率极小,内置对后端服务器的端口检测健康检查功能。

缺点:仅支持http、mail的负载均衡

会话保持机制:使用upstream模块的ip_hash机制,将某个IP的请求固定定向到同一台服务器上。

upstream backend {

ip_hash;

server 192.168.1.1:80;

server 192.168.1.2:80;

}

(2)LVS:优点:抗负载能力强,工作在4层(接入层)仅作分发之用,没有流量的产生,调度算法尤为丰富,配置简单

缺点:软件本身不支持正则表达式处理,不能做动静分离

会话保持机制:利用persistence(单位为秒)来设定会话保持时间。

(3)HAProxy:支持全透明代理,支持连接拒绝以便抗DDOS攻击,支持虚拟主机,自带强大的监控服务器状态的页面。

缺点:暂时没找到

会话保持机制:balance source 基于源地址的负载均衡

参考文档:http://www.ha97.com/5646.html

28、CDN原理和智能DNS(这是加分题啊,命中率50%)

答:CDN其实跟大多数缓存服务器原理相同,它是一种边缘网络,为距离用户最近的站点提供访问,提高访问速度

(1)用户向浏览器输入域名,浏览器第一次发现本地没有dns缓存,请求指向了CDN网络中的智能DNS负载均衡系统;

(2)智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;

(3)用户向该IP节点(CDN服务器)发出请求;

(4)由于是第一次访问,CDN服务器会向原web站点请求,并缓存内容;

(5)请求结果发给用户

智能DNS:由于中国电信在北方,中国联通在南方,造成南方用户访问电信服务器站点特别慢。于是提出智能DNS,如果你是联通用户,解析出联通服务器的IP供你使用,它使用的是bind+view架构。值得一提的是,它是根据用户请求所在地的本地DNS判断是联通用户还是电信用户。

29、一台WEB服务器近三个月都比较稳定,今天突然发现内存使用率很高,如何解决?(最爱考这种题了,命中率90%)

答:使用top命令,按下Shift+M键查看是什么进程造成内存飙升的,凭经验来说可能是mysql的问题,检查访问日志是否有恶意访问。

30、编辑一个文件,root用户,文件是只读方式,如何保存退出,普通用户呢?(命令是真不好记,20%)

答:root:  wq!    普通用户:w! sudo tee %

31、将A 、B、C目录下的文件A1、A2、A3文件,改名为AA1、AA2、AA3.使用shell脚本实现。

答:#!/bin/bash

N=1

for dir in A B C

do

cd /$dir

mv A$N AA$N

let N=N+1

cd ..

done

32、系统调优参数列举(难题啊,命中率40%)

答:一般是TCP参数,vi /etc/sysctl.conf

net.ipv4.tcp_fin_timeout=30  ##如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT2状态的时间

net.ipv4.tcp_keepalive_time=3200  ##保持长连接的时间

net.ipv4.tcp_syncookies=1  ##当出现SYN等待队列溢出时,启用cookie来处理,可防范少量的SYN攻击

net.ipv4.tcp_max_syn_backlog=8192 ##表示SYN队列的长度

net.ipv4.tcp_max_tw_buckets=5000 ##系统保持TIME_WAIT套接字的最大数量

sysctl -p ##配置参数生效

33、取出*.log日志文件中第七列和第九列,通过IP进行排序。

答:awk -F ":" ‘{print $7,$9}‘ *.log |sort -k 1 |sort -nr

34、cacti的日志在哪?

答:/var/www/htm/cacti/log

时间: 2024-10-11 05:11:44

初级运维(一)的相关文章

linux初级运维 之目录管理命令(ls,cd,pwd,mkdir)

ls命令:-list directory contents     命令描述:列出目录内容 常用命令选项 -l:使用详细格式列表. -a:列出所有的文件和目录(用来显示以.开头的隐藏文件). -A:显示所有文件和目录但不包括.和..(.表示当前目录...表示上级目录). -h:做单位换算(把字节换算成易读的b-->kb) -d:显示目录自身属性 -i:显示文件的缩影节点号(普天之下莫非王土,所有的文件都挂载在以根为树节点的树上,每个文件都有一个缩影节点号) -r:逆序显示文件 -R:递归显示(显

&#8203;mysql初级运维使用技巧

整理了一下,工作中用到的最高的关于mysql的一些命令和使用技巧,分享给刚接触mysql的小伙伴么. 1      mysql最基础 1.1     mysql安装 建议新人安装mysql直接使用yum安装即可,大牛们已经对其优化的差不多了,真正玩牛了再搞源码安装:    yum -y install mysql mysql-server mysql-devel 注意,如果是centos库和有些国内yum源的mysql版本都比较低,如果想要安装高版本mysql,需要换源,具体操作如下:     

linux初级运维 之 文件以及文件系统规范(FHS)

文件: drwxr-xr-x. 2 root root          60 8月   5 21:12 vfio 最前面的一个字符表示文件的类型. 文件类型有: -:普通文件(f) d:目录文件 b:块设备文件(block) c:字符设备文件(character) l:符号链接文件(sysbolic link file) p:命令管道文件(pipe) s:套接字文件(socket) drwxr-xr-x. 2 root root          60 8月   5 21:12 vfio 之后

linux初级运维 之 初识终端

linux的终端就是控制台,是用户与内核交互的平台,通过输入指令来控制内核完成任务操作.外形是一个方框,有光标在闪烁. CTRL+ALT+F1-6 分别代表6个虚拟界面,虚拟终端(terminal) startx &命令 根据指令装的话可以用此命令(可以启动图形界面)启动后可以用CTRL+ALT+F7切换到此界面 图形下右键 Open terminal可以打开终端(模拟终端,假的) liunx的图形界面类型(sh就是用来输入命令的) 两种交互方式: GUI:(图形交互)下面是交互系统 Gnome

Linux初级运维命令总结

Linux命令大全:命令格式:命令ls [参数] -l [路径文件] / 常用命令总结: mkdir 创建新目录 (-P 递归创建 mkdir -p /data) cd 进入目录 (cd - 返回最近一次目录 cd~家目录) pwd 查看当前路径:ls 显示文件或目录 (-l长格式查看,-d查看目录, -a显示隐藏文件 ,以.开头表示隐藏文件 ) echo 打印输出内容 (printf -format and print data) vi/vim 编辑文件(命令模式:wq/q/q!/wq!) w

Linux运维初级掌握技能总结

各位朋友大家好.上篇我讲了运维的发展路线,有网友给我提出了宝贵意见,所以后面我会针对上篇文章做个详细的分篇讲述. 书接上文,上篇我说到Linux运维发展分为三个阶段,今天我给大家说下初级阶段该掌握那些技能,做为一个初学者,未免会对linux感到恐惧,想从事windows,这里我想说下,如果你是想从事网管职业,你可以学好windows即可,如果你是想从事运维职业,那请你放下windows,为什么呢?笔者我刚开始学的时候,在服务器领域,windows还占30%-20%,今年在一看,winsows似乎

挨踢部落故事汇(14):分享助力运维能力的提升

本期主人公大师兄,人称翔神,目前就职于某知名商城架构部Linux运维工程师一职,熟悉高并发,负载均衡,Redis集群高可用,运维开发等,喜欢和同道中人分享运维那些事儿. 大师兄·Linux运维工程师 转眼间,大师兄毕业已经三年多了,从IT界的小白到Linux运维大神,他也算拥有一技之长,坚持投资自己的大脑,是他最骄傲的事.从C语言,到Linux运维,到Python的运维开发,再到Java,一路不断学习,挑战自我,内心感慨,特写成文章分享,和开发者们共勉. 踏足IT,时刻在分享 虽然大师兄是计算机

初学者如何学习运维?

老男孩教育老男孩老师总结了初学者学好运维的几个办法,希望能帮到大家.①先实践后看原理很多初学者思维的误区是先了解原理在去实践很多有经验的运维给初学者的建议是先把原理看懂,在去实践.他们的思想是原理比操作更重要.其实,这是很误导人的错误学习运维的思想.运维实际上是应用性为主的一门学问.没有基础的运维一定是实践更容易,看原理相对更难,造成学习困扰. 老男孩的建议:以下内容转自学生的作业总结(略改动):对于初级运维人员技术方面的学习是先看原理在实践还是先实践在看原理?对于这个问题,老男孩老师做了一个非

linux运维 技能树

from http://www.cnblogs.com/Qing-840/p/5501431.html linux运维 技能树::初级运维: 基础:mysql基础,网络基础,计算机基础,linux系统vim, nginx ,grep ,awk,sed ,nagios,zaabix,cacti和常用开源软件 中级运维 lvs 集群,nginx 集群 ,redis, mysql高可用,mongodb集群,elk,mfs,mongodb,+各种集群 高级运维s 互联网高并发架构,深入忧化和理解原理,精