网传Linux运维面试题解答(一)

  1. 云栖社区>
  2. 博客>
  3. 正文

网传Linux运维面试题解答(一)

科技小能手 2017-11-12 03:15:00 浏览1220
展开阅读全文

题目转载自:http://2358205.blog.51cto.com/2348205/1687708

大部分都自己做的,部分参考了原帖博主的答案

 

1、LINUX系统软件安装和卸载的常见方法

①yum方式:

yum install   安装
yum remove 卸载(不推荐此种方式,会将待卸载的软件包一并卸载掉)

②rpm方式

rpm -i  安装
rpm -e 卸载(忽略依赖加上--nodeps)

③编译安装的卸载

cd命令进入编译后的软件目录,即安装时的目录,执行make uninstall命令即可;或者直接删除安装目录

 

2、Windows和LINUX常用的远程连接工具有那些

命令行远程连接:secureCRT 、putty、Xshell 等

图形远程连接:linux下Xmanager、VNC,Windows下的mstsc(远程桌面)等

3、如何修改LINUX的IP地址、网关和主机名

简单,略

 

4、编写脚本实现以下功能;
   每天早上5点开始做备份
   要备份的是/var/mylog里所有文件和目录可以压缩进行备份
   备份可以保存到别一台器上192、168、1、2 FTP帐号 aaa 密码 bbb
   要示每天的备份文件要带有当天的日期标记

cat /server/scripts/backup.sh

#!/bin/bash
mkdir /backup && cd /backup
tar zcf backup_$(date +%F).tar.gz /var/mylog
ftp -n << EOF
open 192.168.1.1
user aaa bbb
put backup_$(date +%F).tar.gz 
close 
bye
EOF

 添加定时任务

crontab -e

00 05 * * * /bin/bash /server/scripts/backup.sh &>/dev/null


5、IPTABLES相关命令

iptables -F                     //清除所有规则,不会处理默认的规则
iptables -X                     //删除用户自定义的链
iptables -Z                     //链的记数器清零
iptables -N                     //添加一个自定义的链
iptables -X                     //删除一个自定义的链
iptables -L -n                  //以数字格式打印所有规则
iptables -L -n --line-numbers   //以数字格式打印所有规则并显示行号 

iptables -A INPUT -p tcp --dport 80 -j DROP       //添加规则到指定链的结尾
iptables -I INPUT -p tcp --dport 80 -j DROP       //添加规则到指定链的开头 
iptables -I INPUT 2 -p tcp --dport 80 -j DROP     //添加规则到指定链的第二行
iptables -D INPUT -p tcp --dport 80 -j DROP       //删除指定链的指定规则
iptables -D INPUT 2                               //删除指定链的第二条规则
iptables -A INPUT -s 10.0.0.104 -j DROP           //根据源地址封禁
iptables -I INPUT -p icmp --icmp-type 8 -j DROP   //禁PING包
iptables -I INPUT -p icmp -j DROP                 //禁所有ICMP协议
iptables -A INPUT ! -p tcp -j ACCEPT              //匹配指定协议外的所有协议 
iptables -A INPUT -s 10.0.0.14 -j ACCEPT          //匹配主机源IP
iptables -A INPUT ! -s 10.0.0.14 -j DROP          //匹配主机源IP
iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT        //匹配网段
iptables -A INPUT -p udp --dport 53               //匹配单一端口

 

6、mysql相关的题
  新安装MYSQL后怎样提升MYSQL的安全级别

答:

一、

删除test数据库:drop database test;
删除不用的用户:drop user 'root'@'::1'; 
                           drop user ''@'centos6-2';
                           drop user ''@'locaohost';
或全部删除,添加管理员:delete from mysql.user;
grant all privileges on *.* to system@'localhost' identified by '123456' with grant option;  
二、 对用户设置较复杂密码并严格指定对应账号的访问IP(可在mysql库中user表中指定用户的访问可访问IP地址,root限制为只允许本地登陆)
三、开启二进制查询日志和慢查询日志
四、mysql安装目录及数据目录权限控制:给mysql安装目录读取权限,给mysql日志和数据所在目录读取和写入权限

五、修改mysql默认端口,linux下可以通过iptables来限制访问mysql端口的IP地址

 
MYSQL的主从原理,怎么配置文件

主从同步简单原理:

主库开启记录binlog日志(增删改记录),从库通过IO线程与主库通信获取binlog,然后调用SQL线程写到自己的数据库

配置步骤

1、配置master的my.cnf
[mysqld]
log-bin = mysql-bin
server-id = 1   
开启mysqlbinlog并保证master和slave的server-id不一样,slave的log-bin可开可不开,当slave需要做其他slave的master时,也就是级联时,需要开启log-bin,并同时增加log-slave-updates参数
检测master开启log-bin是否成功mysql -uroot -p123456 -e "show variables like 'log_bin'"

2、在master上添加slave的连接用户
grant replication slave on *.* to 'rep'@'10.10.13.%' identified by "111";

3、备份master的数据,在slave上导入
[root@master tmp]#mysqldump -uroot -p123456 -A -B --master-data=1 --single-transaction --events | gzip > /tmp/all.sql.gz
[root@slave /]#scp 10.10.13.91:/tmp/all.sql.gz /tmp
[root@slave /]#gzip -d /tmp/all.sql.gz
[root@slave /]#mysql -uroot -p123456  -S /mysql/3308/mysql.sock < /tmp/all.sql

4、启动slave
配置slave的my.cnf
[mysqld]
replicate_wild_ignore_table=mysql.%       #不同步mysql库
重启slave数据库服务
注意,不要在master上配置binlog-do-db, binlog-ignore-db, replicate-do-db, replicate-ignore-db这四个参数,因为他们并非想象中可靠,参考
http://yujia2016.blog.51cto.com/59379/1783686

登陆slave:mysql -uroot -p123456 -S /mysql/3308/mysql.sock 
CHANGE MASTER TO
MASTER_HOST='10.10.13.91',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='111',

start slave;           启动slave
show slave status\G    看到Slave_IO_Running: Yes和Slave_SQL_Running: Yes,表示主从同步配置成功

 

 为MYSQL添加一个用户

语法:GRANT <权限> ON <库>.<表> TO '用户'@'主机名' identified by "密码";
  
  
7、WINDOWNS相关的问题
  你是否对WINDOWNS系统打过补丁,如果有100台你会怎么做

如果都加域的话  使用域控制器分发补丁即可, 如果公司没有域环境的话,可以安装360企业版,每台客户端都安装360企业版客户端,使用360企业版控制中心分发补丁

 

8、显示/test目录下的所有目录

答:

ls -ld /test/*

 

9、将文件/etc/a 下中除了 b文件外的所有文件压缩打包放到/home/a下,名字为a.gz

tar zcf /home/a/a.gz  /etc/a/* --exclued=b

 

10、一个脚本赋予执行权限的命令及选项
chmod +x  *.sh


4、umask 022代表什么意思

代表创建文件的初始权限为644   创建目录的初始权限为755

 

5、如何查看某进程所打开的所有文件
lsof -p 进程PID
 

6、获取eth0网卡上80端口的数据包信息

 tcpdump -i eth0 port 80


7、删除 /a/b下的所有文件及目录
rm -rf /a/b/*


8、常用的网络管理工具(5种以上)
ifconfig  netstat ss  iftop ntop ping  traceroute  nslookup dig telnet等

 

9、ftp、https、smtp、pops、ssh的端口号

ftp主动模式   传输数据20  交互21

ftp被动模式   传输数据端口随机  交互21

https 443
smtp  25
pops  110
ssh    22

 

10、如何在windows server 2003/2008上开启支持内存3-4G
在我的电脑上单击鼠标右键,选择属性,点击“高级”标签,点击【启动和故障恢复】下的“设置”按钮,点击“编辑”按钮,将Boot.ini文件的最后一行后面添加一个开关 “/PAE”(不带引号),保存后重新启动机器即可    顺便说一句2008有64位的系统····不需要安装32位


11、请用iptables控制来自192.168.1.2主机的80端口请求

iptables -A INPUT -s 192.168.1.2 -p tcp --dport 80 -j ACCEPT


12、请用shell脚本创建一个组class、一组用户,用户名为stdX X从01-30,并归属class组

#!/bin/bash
groupadd class
for i in `seq -w 30`
do
   useradd std$i -g class
done

 
13、在mysql客户端查询工具中,如何获取当前的所有连接进程信息

show full processlist\G


14、如何删除已满的数据库日志信息

在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’

 


本文转自 kuSorZ 51CTO博客,原文链接:http://blog.51cto.com/kusorz/1839571


网友评论

登录后评论
0/500
评论
科技小能手
+ 关注