美团 Linux 运维工程师招聘面试题及参考答案
1、LINUX 系统软件安装和卸载的常见方法
答: A.rpm 包卸载:rpm -e XXX.rpm
(如果想忽略依赖,可加上–nodeps)
B.yum remove xxx.rpm 这种方法非常不建议使用,卸载过程会将待卸载的软件包所依赖的
软件包一并卸载掉,很容易造成系统缺少某些包而崩溃等问题
C.源码包卸载:cd 命令进入编译后的软件目录,即安装时的目录,执行 make uninstall 命
令即可;或者直接删除安装目录
2、Windows 和 LINUX 常用的远程连接工具有那些
答: 命令远程连接工具:Xshell、SecureCRT、Putty、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.168.1.1
B、修改主机名称:编辑/etc/sysconfig/network,修改里面的 HOSTNAME 内容,如设置主机
名称为 mysql,则:HOSTNAME=mysql 即可;
4、编写脚本实现以下功能;
每天早上 5 点开始做备份
要备份的是/var/mylog 里所有文件和目录可以压缩进行备份
备份可以保存到别一台器上 192、168、1、2 FTP 帐号 aaa 密码 bbb
要示每天的备份文件要带有当天的日期标记
答:
5、IPTABLES 相关的命令
(不熟悉 iptables,这里请网友补充,具体问题还要具体分析)
6、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 账号和删除无用的数据库(安装好的 mysql 默认会有个 test 库,可将其
删除)
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 接收到来自 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 的哪个位置开始往后的日志内容,请发给我”
(4)Slave 的 SQL 线程检测到 Relay Log 中新增加了内容后,会马上解析该 Log 文件中的
内容成为在 Master 端真实执行时候的那些可执行的查询或操作语句,并在自身执行那些查
询或操作语句,这样,实际上就是在 master 端和 Slave 端执行了同样的查询或操作语句,
所以两端的数据是完全一样的。
补充:mysql 主从复制的优点————
<1> 如果主服务器出现问题, 可以快速切换到从服务器提供的服务;
<2> 可以在从服务器上执行查询操作, 降低主服务器的访问压力;
<3> 可以在从服务器上执行备份, 以避免备份期间影响主服务器的服务。
为 MYSQL 添加一个用户?
mysql> grant select,insert,update,delete on book.* to test2@localhost identified
by “abc”;
#增加 test2 用户,密码为 abc。并只能在 localhost 这台主机上登录,并
且只能访问 book 这个库中的表,具有查询,插入,更新,删除权限;
语法:mysql> GRANT <权限> ON <库>.<表> TO ‘用户’@’主机名’ identified by “密
码”;
7、WINDOWNS 相关的问题
你是否对 WINDOWNS 系统打过补丁,如果有 100 台你会怎么做?
答: (题主是一个不专业的 MCSE,记得在 win2003 中,有发布指派这个概念的,请各位网
友补充)在域环境中,应该是将一台服务器作为域控补丁的 update 服务器,利用“发布与
指派”的功能,将补丁批量更新到内网其他服务器;
WINDOWNS 下怎么为 MYSQL 做定时完全备份?
答: 批处理+计划任务+ftp 上传至远程服务器
在没有硬件防火墙的情况下,怎样提高 WINDOS 系统安全?
答: 用 ISA 防火墙?
8、显示/test 目录下的所有目录
答:这里提供 4 种方法:
9、将文件/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』)
验证:
10、给一个脚本赋予执行权限的命令及选项
答: chmod +x a.sh
11、umask 022 代表什么意思
答: 新建文件夹或文件的权限是由所谓基本码减去称之为 umask 的屏蔽位得到的。
按照规定:文件夹的基本码是 rwxrwxrwx(777),文件的基本码是 rw-rw-rw-(666)
因此新建文件夹是 777-022=755(rwxr-xr-x),新建文件是 666-022=644(rw-r–r–)。
综上,umask 022 表示默认创建新文件权限为 755 也就是 rxwr-xr-x(所有者全部权限,属
组读写,其它人读写)
12、如何查看某进程所打开的所有文件
答:取出该进程的进程号,然后用 lsof -p pid 查看打开的所有文件。(这里以 crond 进程
为例)
13、获取 eth0 网卡上 80 端口的数据包信息
答: [root@haojiu ~]# tcpdump -i eth0 port 80
14、删除 /a/b 下的所有文件及目录
答: [root@haojiu ~]# rm -rf /a/b/*
15、常用的网络管理工具(5 种以上)
答: Windows 下有:ipcofnig(/all,/renew,/release),ping,tracert,nslookup……
Linux 下有:ifconfig,ping,tracerroute,dig,nslookup……
16、ftp、https、smtp、pops、ssh 的端口号
答: ftp(20 和 21)、https(443)、smtp(25)、pops(110)、ssh(22)
17、如何在 windows server 2003/2008 上开启支持内存 3-4G
答:没做过,这里提供网上的做法: 在我的电脑上单击鼠标右键,选择属性,点击“高级”
标签,点击【启动和故障恢复】下的“设置”按钮,点击“编辑”按钮,将 Boot.ini 文件
的最后一行后面添加一个开关 “/PAE”(不带引号),保存后重新启动机器即可。
18、请用 iptables 控制来自 192.168.1.2 主机的 80 端口请求
答: iptables -A INPUT -p tcp -s 192.168.1.2 –dport 80 -j ACCEPT
(允许来自
192.168.1.2 这台主机访问 80 端口)
19、请用 shell 脚本创建一个组 class、一组用户,用户名为 stdX X 从 01-30,并归属 class
组
答: 脚本如下
20、在 mysql 客户端查询工具中,如何获取当前的所有连接进程信息
答: mysql> show full processlist;
21、如何删除已满的数据库日志信息
答: 在 my.cnf 中的[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_name’
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’