1、美团对Linux运维工程师招聘岗位的面试题与答案分析1、LINUX系统软件安装和卸载的常见方法答: 有3种方式安装与卸载软件包:rpm包卸载:rpm -e XXX.rpm (如果想忽略依赖,可加上nodeps)yum remove xxx.rpm 这种方法非常不建议使用,卸载过程会将待卸载的软件包所依赖的软件包一并卸载掉,很容易造成系统缺少某些包而崩溃等问题源码包卸载:cd命令进入编译后的软件目录,即安装时的目录,执行make uninstall命令即可;或者直接删除安装目录2、Windows和LINUX常用的远程连接工具有那些答:命令远程连接工具:Xshell、SecureCRT、Putty
2、、SSH Secure Shell Client等图形远程连接工具:xmanager(需安装配置服务并打开177端口)、VNC-Viewer(linux需安装vncserver)、windows自带的远程桌面(linux需安装xrdp和vnc)3、如何修改LINUX的IP地址、网关和主机名:答:A、修改IP地址、网关:编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改里面IPADDR和GATEWAY内容,没有这两行,则添加即可,添加时确保BOOTPROTO=static,静态地址,如IPADDR=192.168.1.100 GATEWAY=192.16
3、8.1.1B、修改主机名称:编辑/etc/sysconfig/network,修改里面的HOSTNAME内容,如设置主机名称为mysql,则:HOSTNAME=mysql即可;4、编写脚本实现以下功能每天早上5点开始做备份要备份的是/var/mylog里所有文件和目录可以压缩进行备份备份可以保存到别一台器上192、168、1、2 FTP帐号 aaa 密码 bbb要示每天的备份文件要带有当天的日期标记答:脚本内容如下:roothaojiu #cat /root/mylogbak.sh#!/bin/bash#scripts for dirbakup and upload to ftp server
4、.#author by haojiu#create bybakdir=mylogdate=date +%Fcd /vartar zcf $bakdir_$date.tar.gz $bakdirsleep 1ftp -n - EOFopen 192.168.142.129 #远程ftp服务器IPuser aaa bbbput mylog_*.tar.gzbyeEOFrm -rf mylog_*.tar.gz #这步之前可以做一个判断,判断文件上传成功再执行rm,留给各位发挥吧。添加crontab:crontab -l00 05 * * * /bin/bash /root/mylogbak.sh
5、#每天早上5点开始执行备份脚本5、mysql相关的题:新安装MYSQL后怎样提升MYSQL的安全级别答:A.修改mysql默认端口B.linux下可以通过iptables来限制访问mysql端口的IP地址C.对所有用户设置较复杂密码并严格指定对应账号的访问IP(可在mysql库中user表中指定用户的访问可访问IP地址)D.root特权账号的处理(建议给root账号设置强密码,并指定只允许本地登录)E.开启二进制查询日志和慢查询日志F.mysql安装目录及数据存储目录权限控制:给mysql安装目录读取权限,给mysql日志和数据所在目录读取和写入权限G.删除无用mysql账号和删除无用的数据库
6、(安装好的mysql默认会有个test库,可将其删除)6、MYSQL的主从原理,怎么配置文件答: 整体上来说,复制有3个步骤:A.master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);B.slave将master的binary log events拷贝到它的中继日志(relay log);C.slave重做中继日志中的事件,将改变反映它自己的数据。Mysql复制的基本原理过程如下:(1)Slave上面的IO线程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;(2)Master接收到
7、来自Slave的IO线程的请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志信息,返回给Slave端的IO线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在Master端binary log文件的名称以及在Binary log中的位置;(3)Slave的IO线程收到信息后,将接收到的日志内容依次写入到Slave端的RelayLog文件(mysql-relay-lin.xxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉master“我需要从某个bin-log的哪
8、个位置开始往后的日志内容,请发给我”(4)Slave的SQL线程检测到Relay Log中新增加了内容后,会马上解析该Log文件中的内容成为在Master端真实执行时候的那些可执行的查询或操作语句,并在自身执行那些查询或操作语句,这样,实际上就是在master端和Slave端执行了同样的查询或操作语句,所以两端的数据是完全一样的。补充:mysql主从复制的优点 如果主服务器出现问题, 可以快速切换到从服务器提供的服务; 可以在从服务器上执行查询操作, 降低主服务器的访问压力; 可以在从服务器上执行备份, 以避免备份期间影响主服务器的服务。为MYSQL添加一个用户mysql grant sele
9、ct,insert,update,delete on book.* to test2localhost identified by “abc”; #增加test2用户,密码为abc。并只能在localhost这台主机上登录,并且只能访问book这个库中的表,具有查询,插入,更新,删除权限;语法:mysql GRANT ON . TO 用户主机名 identified by “密码”;7、显示/test目录下的所有目录答:4种方法:ls -d */find . -type d -maxdepth 1 (如果不加-maxdepth 参数,将会列出无穷多的子目录。)ls -F | grep /$ls
10、 -l | grep d|awk print $98、将文件/etc/a 下中除了 b文件外的所有文件压缩打包放到/home/a下,名字为a.gz答: tar -exclude /etc/a/b -zPcvf /home/a/a.gz /etc/a (不加P选项会提示:tar: Removing leading / from member names)验证:roothaojiu a# tar tPvf /home/a/a.gz (忽略掉b文件)drwxr-xr-x root/root 0 2015-08-21 10:15 /etc/a/-rw-rr root/root 0 2015-08-21
11、 10:15 /etc/a/d-rw-rr root/root 0 2015-08-21 10:15 /etc/a/f-rw-rr root/root 0 2015-08-21 10:15 /etc/a/c-rw-rr root/root 0 2015-08-21 10:15 /etc/a/e9、给一个脚本赋予执行权限的命令及选项答:chmod +x a.sh10、umask 022代表什么意思答: 新建文件夹或文件的权限是由所谓基本码减去称之为umask的屏蔽位得到的。按照规定:文件夹的基本码是rwxrwxrwx(777),文件的基本码是rw-rw-rw-(666)因此新建文件夹是777-0
12、22=755(rwxr-xr-x),新建文件是666-022=644(rw-rr)。综上,umask 022表示默认创建新文件权限为755 也就是 rxwr-xr-x(所有者全部权限,属组读写,其它人读写)11、如何查看某进程所打开的所有文件答:取出该进程的进程号,然后用lsof -p pid查看打开的所有文件。(这里以crond进程为例)roothaojiu a# ps -ef |grep crond|grep -v grep |awk print $2 #取出进程号2550rootzintao01 a# lsof -p 2550 #查看该进程打开的所有文件COMMAND PID USER
13、FD TYPE DEVICE SIZE/OFF NODE NAMEcrond 2550 root cwd DIR 8,2 4096 2 /crond 2550 root rtd DIR 8,2 4096 2 /crond 2550 root txt REG 8,2 64096 820728 /usr/sbin/crondcrond 2550 root mem REG 8,2 65928 524319 /lib64/libnss_files-2.12.socrond 2550 root mem REG 8,2 99158576 788202 /usr/lib/locale/locale-arch
14、ivecrond 2550 root mem REG 8,2 472064 554920 /lib64/libfreebl3.socrond 2550 root mem REG 8,2 43392 554921 /lib64/libcrypt-2.12.socrond 2550 root mem REG 8,2 1926800 554903 /lib64/libc-2.12.socrond 2550 root mem REG 8,2 115536 554937 /lib64/libaudit.so.1.0.0crond 2550 root mem REG 8,2 22536 554909 /l
15、ib64/libdl-2.12.socrond 2550 root mem REG 8,2 58480 554938 /lib64/libpam.so.0.82.2crond 2550 root mem REG 8,2 124624 554913 /lib64/libselinux.so.1crond 2550 root mem REG 8,2 156928 554899 /lib64/ld-2.12.socrond 2550 root 0u CHR 1,3 0t0 4160 /dev/nullcrond 2550 root 1u CHR 1,3 0t0 4160 /dev/nullcrond
16、 2550 root 2u CHR 1,3 0t0 4160 /dev/nullcrond 2550 root 3u REG 8,2 5 1084973 /var/run/crond.pidcrond 2550 root 4u unix 0xffff88003b3949c0 0t0 13870 socketcrond 2550 root 5r DIR 0,10 0 1 inotify12、获取eth0网卡上80端口的数据包信息答:roothaojiu # tcpdump -i eth0 port 8013、删除 /a/b下的所有文件及目录答:roothaojiu # rm -rf /a/b/*
17、14、常用的网络管理工具(5种以上)答: Windows下有:ipcofnig(/all,/renew,/release),ping,tracert,nslookupLinux下有:ifconfig,ping,tracerroute,dig,nslookup15、ftp、https、smtp、pops、ssh的端口号答: ftp(20和21)、https(443)、smtp(25)、pops(110)、ssh(22)16、请用iptables控制来自192.168.1.2主机的80端口请求答: iptables -A INPUT -p tcp -s 192.168.1.2 dport 80 -
18、j ACCEPT (允许来自192.168.1.2这台主机访问80端口)17、请用shell脚本创建一个组class、一组用户,用户名为stdX X从01-30,并归属class组答: 脚本如下rootzintao01 # cat adduser.sh#!/bin/bash#script for adduser.#create by haojiu#2015-x-xgroupadd classuser=stdfor i in 01.30douseradd -G class $user$idone18、在mysql客户端查询工具中,如何获取当前的所有连接进程信息答:mysql show full
19、processlist;19、如何删除已满的数据库日志信息答: 在f中的mysqld段下面加入:expire-logs-days=7(设置自动清除7天钱的logs),重启mysql;或者登录进mysql,执行:purge binary logs to mysql-bin.000003; #删除bin-log(删除mysql-bin.000003之前的而没有包含mysql-bin.000003)如果是mysql主从环境的,删除日志,语句格式如下:PURGE MASTER | BINARY LOGS TO log_namePURGE MASTER | BINARY LOGS BEFORE date