Linux面试问题&答案4

1--RAID0,RAID1,RAID5,RAID10各有什么优势和缺点,构成这些RAID至少需要几块磁盘。
解:raid0 就是把多个(最少2个)硬盘合并成1个逻辑盘使用,数据读写时对各硬盘同时操作,不同硬盘写入不同数据,速度快。
raid1就是同时对2个硬盘读写(同样的数据)。强调数据的安全性。比较浪费。
raid5也是把多个(最少3个)硬盘合并成1个逻辑盘使用,数据读写时会建立奇偶校验信息,并且奇偶校验信息和相对应的数
据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
相当于raid0和raid1的综合。
raid10就是raid1+raid0,比较适合速度要求高,又要完全容错,当然¥也很多的时候。最少需要4块硬盘(注意:做raid10时
要先作RAID1,再把数个RAID1做成RAID0,这样比先做raid0,再做raid1有更高的可靠性)
2--写出至少5个Linux下查看CPU,内存,硬盘,网络等运行状态的命令;
解:系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态
用户
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务
# chkconfig --list # 列出所有系统服务
# chkconfig --list | grep on # 列出所有启动的系统服务
程序
# rpm -qa # 查看所有安装的软件包
3--linux系统需要在每天凌晨零点零五分定期压缩备份本机上数据名称为ZYCMS的mysql库到/data
/bak目录下,并在备份完成后通过用户名backup密码Aow!@#d的密码传输到192.168.171.3的ftp数据
收集目录中,写出具体的过程。
解:crontab -e
mysqldump -S /tmp/mysql.sock mysql > 123.sql 备份 /etc/my.cnf 数据库的存储位置
5 0 * * * tar -zcvf /var/lib/mysql /data/bak/ ; scp -r /var/lib/mysql/data/bak backup@192/168/171.3's Aow!@#d :/ftp

4--请描述LVS负载模式和调度算法,nginx负载均衡模式有哪几种算法。
解:VS/NAT模式--网络地址转换
VS/TUN模式--IP隧道模式
DR模式--直接路由模式
固定调度算法:rr,wrr,dh,sh
动态调度算法:wlc,lc,lblc,lblcr
nginx 负载均衡5种配置方式

1、轮询(默认)

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

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}

3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream bakend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
server server1;
server server2;
fair;
}

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream backend {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}

tips:

upstream bakend{#定义负载均衡设备的Ip及设备状态
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
在需要使用负载均衡的server中增加
proxy_pass http://bakend/;

每个设备的状态设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录

location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

5--写出所知道的windows和Linux系统下只允许公司ip 114.114.114.101访问106.59.2.1的服务器
9309远程登录端口的详细实现方式。
解: iptables -I INPUT -s 114.114.114.101 -p tcp --dport 9309 -j ACCEPT 在106.59.2.1中添加
2.0--iptables详解-1
     --netfilter 防火墙名字  --> iptables工具名字
     --table表 -->chain链 -->规则
     --iptables -t filter -nvL  filter查看防火墙结构
     --iptables -t nat -nvL nat表
     --iptables -t mangle -nvL mangle表
     --iptables -t filter -I INPUT -p tcp --dport 80 -s 12.12.12.12 -j REJECT添加规则,越后添加的
        规则先生效
     --iptables -t filter -nvL 查看规则
     --iptables -nvL默认filter表
     --ip138.com查IP
     --iptables -t filter -D INPUT -p tcp --dport 80 -s 12.12.12.12 -j REJECT把添加的规则删除
     --iptables -t filter -A INPUT -p tcp --dport 80 -s 12.12.12.12 -j REJECT -A先添加的后生效
2.1--iptables详解-2
     --reject 拒绝
     --iptables -t filter -D INPUT -p tcp --dport 80 -s 125.33.200.25 -j DROP直接丢掉
     --iptables -t filter -D INPUT -p tcp --dport 80 -s 125.33.200.25 -j ACCEPT 接受
     --iptables -Z 重置为0
     --iptables -F 清除全部规则
     --iptables -t nat -nvL 指定表
     --service iptables restart 重启服务
     --service iptables save保存
     --vim /etc/sysconfig/iptables  iptables目录
     --iptables-save > 1.ipt 防火墙规则备份
     --iptables-restore < 1.ipt 反向重定向
2.2--iptables详解-3
     --iptables -t nat -nvL nat表
     --nat表 PREROUTING进来的ip改成私有的,POSTROUTING出去的ip改成公有的
     --通过nat做一个路由器
     --mangle给包打标记
2.3--iptables详解-4
     --iptables -I 是插入 -A增加  -P policy 策略  
     --ACCEPT放行,允许
     --iptables -P INPUT DROP 改变INPUT的策略
     --12.ipt.sh
        #!/bin/bash
        ipt="/sbin/iptables"
        $ipt -F
        $ipt -P INPUT ACCEPT
        $ipt -P OUTPUT ACCEPT
        $ipt -P FORWORD ACCEPT
        $ipt -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
        $ipt -A INPUT -p tcp --dport 80 -j ACCEPT
        $ipt -A INPUT -p tcp --dport 21 -j ACCEPT

6--由于游戏日志文件增长较快,服务器磁盘容量不够大,现扩充增加了一块300G的SAS10000转硬盘
,应该怎么将此块盘格式化为单一分区,并将其挂载到/databak目录,使服务器重启依然可以正常使用。
解:1--fdisk -l 查看当前磁盘信息
2--fdisk /dev/sdb 对sdb进行分区
3--fidisk e为逻辑分区 p为主分区 h帮助 n 进行分区
4--Cylinder选择该分区的起始磁盘数 1
5--mkfs -t ext3 -c /dev/sdb1进行格式化
6--mount挂载 /etc/fstab

7--使用任意一种你所熟悉的脚本完成如下任务:将/etc/passwd的第一列取出,并且每一列都以一行描述如:
“The 1 account is aowgamecoser”来显示,1表示行数。
解:cat /etc/passwd | awk -F':' '{print $1}'
cat 、etc/passwd | awk -F':' '{print "the" NR "account is aowgamecoser",$1}'

8--假如我们部署在北京BGP线路机房的装甲风暴游戏,网上23:00接到投诉深圳地区部分玩家无法登录游戏,
请概括描述故障排查思路和解决方法。
解:参考答案
1--先查看网络是否正常
2--再查看服务器运行情况,是否负载过高,内存饱满
3--查看报错日志
9--如下jihuoma表中
Filed Type Null Key Default Extra
key_id int(11) NO PRI NULL auto_inorement
game_id int(11) YES NULL
key_no varchar(32)NO NULL
start_time datetime YES NULL
end_time datetime YES NULL
is_end char(1) YES NULL
请用sql语句完成如下需求
A,如果表jihuoma表已经存在,删除表根据上面字段重新创建表
解:参考
DROP table jihuoma;
CREATE table jihuoma (key_id int(11) NOT NULL auto_inoremeng);
B,用sql语句插入一条如下数据
16| 1|20160808184822|2016-08-08 18:48:11|2016-09-08 18:48:13 | 0
解:参考 INSERT to jihaoma (16,1,“20160808184822”,“2016-08-08 18:48:11”);
3.1--mysql的root密码重置
-- mysqladmin -uroot password 'wangerzheng' 设置密码
-- mysql -uroot -pwangerzheng 用密码登录
-- skip-grant vim /etc/my.cnf添加
--/etc/init.d/mysqld restart 重启
--mysql 可以直接进来 use mysql
--update user set password=password('wanger') where user='root';
--select * from user where user='root'\G;
3.2--mysql登录
-- mysql -uroot -h192.168.1.132 -P3306 -pwanger 远程登录
-- telnet 192.168.1.132 3306 查看是否允许
-- mysql -uroot -h127.0.0.1 -P3306 -pwanger 默认已经授权远程登录
-- grant all on *.* to 'root'@'192.168.1.132' identified by '123456';授权
-- use mysql select * from user where host='192.168.1.132'\G;查看
-- select use(); 查看当前用户
--mysql -uroot -S /tmp/mysql.sock -p 本地有多个mysql,可以这样登录
3.3--mysql常用操作-1
-- show databases; 查看有哪些库
-- use mysql use discuz 切换库
--select database(); 查看在哪个数据库下
--select user(); 查看用户
-- select version(); 查看版本信息
--库--表--行--字段
--show tables; 查看表
--desc pre_ucenter_vars; desc加表名查看行
--show create table pre_ucenter_vars \G;查看表的创建语句
--create database wang; 创建一个库
-- create table tb1 (`id` int(4), `name` char(40)) ENGINE=MyISAM DEFAULT CHARSET=gbk; 创建一个表
--insert into tb1 values(1,'wang');插入一条数据
-- select * from tb1; 查看
--insert into tb1 (`id`) values(3); 单独插入
-- update tb1 set id=3 where name = 'er';更改一条数据
--delete from tb1 where name= 'zheng'; 删除一行
-- truncate table wang.tb1; 清空
--drop table tb1; 删除一个表
-- drop database wang; 删除一个库;
3.4--mysql常用操作-2
--grant all on discuz.* to 'user1'@'%' identified by 'ajflasjlgjlsdf'; 授权 %代替所有IP或者192.168.1.%;
--flush privileges; 刷新权限
-- show processlist; 查看数据库有什么队列
--show variables;查看变量
-- set global max_connections = 200; 设置参数
--show variables like 'max_con%'; 单独查看
--show status; 查看状态 show status like '%running';
--vim /etc/init.d/mysqld cd /data/mysql wangerzheng.err错误日志
--repair table pre_ucenter_settings; 修一个表
3.5--mysql备份和恢复
-- mysqldump -uroot -pwanger discuz 备份
-- mysqldump -uroot -pwanger discuz > /data/discuz.sql
-- cd /data/mysql/ 数据文件位置
-- rm -rf pre_forum_post* 测试恢复
--mysql -uroot -pwanger discuz < /data/discuz.sql 恢复数据
-- mysqldump -uroot -pwanger discuz pre_forum_post > /data/post.sql 备份一个表
-- mysql -uroot -pwanger discuz < /data/post.sql恢复
-- mysqldump -uroot --default-character-set=gbk -pwanger discuz pre_forum_post > /data/post.sql 指定字符utf8
--mysql -uroot --default-character-set=gbk -pwanger discuz < /data/post.sql 指定字符
10--画出你维护过具体代表性的系统拓扑图,并简单说明
解: 文件服务器,mysql数据库,监控服务器,车书网,用到一个HA高可用,mysql主从


































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值