1、DNS使用的端口号和协议,简单描述一下DNS正向解析和反向解析的工作原理和作用还有应用场景?
DNS使用
DNS使用的端口号是53,封装协议udp。正向解析是指域名到IP地址的解析过程。反向解析是从IP地址到域名的解析过程,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名。PTR (Pointer Record),指针记录,是电子邮件系统中的一种数据类型,被互联网标准文件RFC1035所定义。与其相对应的是A记录、地址记录。二者组成邮件交换记录。A记录解析名字到地址,而PTR记录解析地址到名字,地址是指一个客户端的IP地址,名字是指一个客户的完全合格域名。PTR记录被用于电子邮件发送过程中的反向地址解析。使用了域名反向解析后,就可以大大降低垃圾邮件的数量。
2.编写IPTABLES使用内网某台机器的80端口可以在公网访问,假设公网IP为10.10.1.1 ,实现192.168.1.0/24段的NAT.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许80端口访问
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.10.1.1
3.举出三个以上的主流WEB服务器,并简述他们的特性和优缺点不限操作系统?
Apache、Nginx、IIS、tomcat、lighttpd等
特点没啥好说的,PHP和静态用Nginx,JAVE用tomcat
4,举出两个主流代理服务器,简述工作模式和优缺点?
Nginx、Squid
5,举出两个负载均衡的软件,并简述工作模式和优缺点?
Nginx、LVS、HAproxy
6,IE,FF,chrome浏览器最大并发请求数是多少?
当我们在浏览网页的时候,对浏览速度有一个重要的影响因素,就是浏览器的并发数量。并发数量简单通俗的讲就是,当浏览器网页的时候同时工作的进行数量。 如果同时只有2个并发连接数数量,那网页打开的时候只能依赖于这2条线程,前面如果有打开慢的内容,就会直接影响到后面的内容打开。但是如果同时有更多的并发连接数,这样就会大大的提高网页加载速度。IE11、FF、chrome默认都为6,并发连接数也可以自己修改的。
参考文章:http://www.iefans.net/liulanqi-zuida-bingfa-lianjieshu/
7,mysql数据库备份种类有哪些,依据数据库的状态可分为哪些备份,备份工具有哪些,部署一个高可用mysql应用 环境,并说明他的高可用性?
按照要备份的数据集合的范围可分为完全备份、部分备份、增量备份、差异备份
按照数据备份方式可分为物理备份和逻辑备份,物理备份一般就是通过tar,cp等命令直接打包复制数据库的数据文件达到备份的效果,逻辑备份一般就是通过特定工具从数据库中导出数据并另存备份(逻辑备份会丢失数据精度)
按照数据库的状态可分为热备份、温备份、冷备份
热备份指的是当数据库进行备份时,数据库的读写操作均不是受影响
温备份指的是当数据库进行备份时,数据库的读操作可以执行, 但是不能执行写操作
冷备份指的是当数据库进行备份时,数据库不能进行读写操作, 即数据库要下线
MySQL备份工具:mysqldump、mysqlhotcopy 、kvm快照备份、tar工具备份、xtrabackup工具备份(只支持InnoDB存储引擎)等
MySQL的高可用方案,我们公司现在采用的是Heartbeat+DRBD的方案,也有推荐使用mycat的,还没有用过,这里就不展开说了。
8,什么是裸设备,他的好处是什么?,mysql支持裸设备吗?
裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。
好处:因为使用裸设备避免了再经过操作系统这一层,数据直接从Disk到数据库进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。当然,这是以磁盘的 I/O 非常大,磁盘I/O已经成为系统瓶颈的情况下才成立。如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。
mysql支持裸设备
9,如果给你一个100g的INNODB类型数据库,你会用什么备份方案来做备份。
Xtrabackup
1,Xtrabackup是什么
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
Xtrabackup有两个主要的工具:xtrabackup、innobackupex
1、xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
2、innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁,并且加入了一些使用的选项,如slave-info可以记录备份恢复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。
2,Xtrabackup可以做什么 :
在线(热)备份整个库的InnoDB、 XtraDB表
在xtrabackup的上一次整库备份基础上做增量备份(innodb only)
以流的形式产生备份,可以直接保存到远程机器上(本机硬盘空间不足时很有用)
MySQL数据库本身提供的工具并不支持真正的增量备份,二进制日志恢复是point-in-time(时间点)的恢复而不是增量备份。
Xtrabackup工具支持对InnoDB存储引擎的增量备份,工作原理如下:
(1)首先完成一个完全备份,并记录下此时检查点的LSN(Log Sequence Number)。
(2)在进程增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同时记录当前检查点的LSN。
首 先,在logfile中找到并记录最后一个checkpoint(“last checkpoint LSN”),然后开始从LSN的位置开始拷贝InnoDB的logfile到xtrabackup_logfile;接着,开始拷贝全部的数据文件.ibd;在拷贝全部数据文件结束之后,才停止拷贝logfile。
因为logfile里面记录全部的数据修改情况,所以,即时在备份过程中数据文件被修改过了,恢复时仍然能够通过解析xtrabackup_logfile保持数据的一致。
10,写一个简单的shell脚本,脚本运行时让CTRL+C无法中断的该shell脚本?
在脚本里加入trap "" SIGINT 或 trap "" 2 以忽略SIGINT信号
11、具体说说cacti/nagios 的安装过程?cacti如何监控mysql?
我在日常工作中都是使用脚本一键安装,以下引用原帖答案:
cacti安装步骤:首先安装好lamp环境(建议都使用编译安装)和snmp服务,rrdtool工具安装,然后建立cacti库和登录mysql账号,并赋权;其次下载并解压cacti到web server的htdocs或html目录下,确保敲入http://IP:port/cacti能被访问到,进而在web上安装cacti,修改web页面上的snmp团体字,确保跟snmpd.conf的团体字一致,然后再手动执行php poller.php看看能否在rra目录下生成.rrd文件,默认只监控本机资源,将php.poller.php命令写入到crontab中,每5分钟执行一次,如果需要监控远程主机,需要在对方主机安装snmp服务,并且保证snmp的团体字与监控主机上的snmp团体字是一致的;最后,添加其他监控主机,添加模板,安装插件等一系列工作。
nagios安装步骤:首先同样安装好lamp环境(建议使用编译安装),然后下载并安装nagios和nagios-plugin,整合apache和naigos,并创建web登录账号验证,确保敲入http://IP:port/nagios能正常访问并登录,远程主机安装nrpe或NClient++;最后添加配置远程主机信息,报警功能实现,添加所需的监控指标等工作。
cacti监控mysql:首先到cacti的论坛上下载cacti监控mysql的模板,然后导入到cacti中,然后添加主机,选择应用模板,最后等待5分钟,看看是否监控正常。
12、sed和awk命令的区别?
awk适合按列(域)操作,sed适合按行操作
awk适合对文件的抽取整理,sed适合对文件的编辑
如果文件是格式化的,即由分隔符分为多个域的,优先使用awk
awk更为强大,支持数组、循环等,甚至可以看作是一门编程语言,内部语法类似C语言
sed是一个流编辑器,它的强大之处在于可以以行的方式来脚本化处理文本,并且语法相对awk来说更为简单,它的功能就是增删改查,但它毕竟不是编程语言,没有循环、数组等逻辑,所以,sed通常和awk一起使用,它们刚好互补,一起使用构成了文本处理的两个利器
13、如何更改linux主机名?
编辑配置文件 /etc/sysconfig/network
更改HOSTSNAME,保存退出后重启生效;
14、登录linux,我们除了使用密码验证,还可以使用哪种方式?简述配置过程。
使用密钥登录,客户端生成公钥和私钥,客户端保存私钥,公钥复制到远程linux主机,登录时使用密钥登录,配置过程略
15、如何给grub加密码(明文、密文),密文加密又分成哪几种?
grub明文加密和密文加密唯一的区别在于password 加不加--md5参数,明文则不加,如果是密文,要加,而且需要先用命令grub-md5-crypt计算密码的md5值,用这个md5值代替明文的密码,编辑/etc/grub.conf
1) 单纯对GRUB界面加密,而不对被引导的系统加密 在timeout一行下面加一行: password --md5 PASSWORD
2) 对GRUB界面加密,同时对被引导的系统加密 在timeout一行下面加一行: password --md5 PASSWORD ,在title一行下面加一行: lock
3) 同时存在多个被引导系统,针对特定的系统实例分别加密(未对GRUB操作界面加密) 在title一行下面加一行: lock ,在lock一行下面紧贴着再加一行: password --d5 PASSWORD 注:lock不能单独使用。
16、如何用yum安装/删除一个软件包?如何查看某个软件包是否已经安装
yum install
yum localinstall 安装本地rpm包
yum remove
rpm -qa 软件包名 或 rpm -qa | grep
17、如何查看系统版本?(3个方法)
查看系统或内核版本:
cat /etc/redhat-release 或 cat /etc/centos-release
lsb_release -a
uname -a
cat /etc/issue
cat /proc/version
18、find 找出 当前目录下的 目录和普通文件? 找出当前目录下10天没有改变,大小大于4K的普通文件或目录
find . -type d -o -type f
find . -type d -o -type f -size +4k -mtime +10
19、在当前目录下创建一个名字为1的目录 的命令? 创建级联目录 ./2/3/的命令? 一条命令创建级联目录 ./1/2/3和./1/2/4?
mkdir 1
mkdir -p ./2/3/
mkdir -p ./1/2/{3,4}
20、cp一个目录中的文件需要什么权限,mv呢?touch呢?rm呢?
cp一个目录中的文件,需要对这个目录有x权限,对这个文件有r权限
mv、touch、rm,都需要对这个目录有w和x权限,对文件权限没有要求
21、用cat如何向文件里重定向字符串
cat >> test.txt << EOF (以EOF为结束符,可以换成别的)
>1111111111
>2222222222
>EOF
22、建立一个公共目录/opt/public,要求每个用户都可以创建文件和目录,但只能自己本人和root可以删除;
mkdir /opt/public
chmod 1777 /opt/public
1、如何检测某个端口所占用的进程
lsof -i :port
2、对于linux主机的cpu负载使用,什么情况下user的比例升高,什么情况下system的比例升高,请联系实际举例。
使用top命令可以查看cpu的负载使用
-us:用户进程消耗的CPU时间百分比
us的值比较高时,说明用户进程消耗的CPU资源多,如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速(比如PHP/PERL)
-sy:内核进程消耗的CPU时间百分比(sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因)
-wa:IO等待消耗的CPU时间百分比
wa的值高时,说明IO等待比较严重,这可能由于磁盘大量随机访问造成,也有可能磁盘出现瓶颈(块操作)
-id:CPU处于空闲状态时间百分比,如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us) 系统则面临着CPU资源的短缺
3、在不umount的情况下,如何重新设置mount的参数。
mount -o remount,rw /
4、不小心在系统下执行了chmod -x /bin/chmod 怎么办?
mv /bin/chmod /bin/chmod_backup
cp /bin/cp /bin/chmod
cat /bin/chmod_backup > /bin/chmod
5、linux文件的权限位x对目录和文件有何不同?
x权限对目录而言,表示这个用户可以进入该目录(浏览,即可以ls列出目录下的东西)
对文件而言,表示对文件有可执行权限
6、找出/taomee目录下的所有常规文件并设置权限755
find /taomee -type f | xargs chmod 755
7、如何查找某一文件被哪个进程打开?
比如查看/usr/bin/mysqld_safe这个文件是被哪个进程打开的,可以使用命令:
lsof /usr/bin/mysqld_safe
8、新增一块存储设备,lvm操作的命令如何写
1、对新的存储设备分区并格式化为8e格式
2、创建物理卷(PV)
3、将PV加入到卷组(VG)
4、创建逻辑卷(LV)
5、格式化罗技卷并挂载
参考:http://yujia2016.blog.51cto.com/59379/1712579
9、给主机host:172.16.0.2增加gateway10.0.0.1
route add -host 172.16.0.2 gw 10.0.0.1
10、socket和tcp访问mysql的区别?
TCP/IP 访问mysql:这种方式会在TCP/IP连接上建立一个基于网络的连接请求,一般是client连接跑在Server上的MySQL实例,2台机器通过一个TCP/IP 网络连接。(一般是mysql客户端跟服务端不在同一机器上)
socket访问mysql:UNIX域套接字并不是网络协议,所以只能在MySQL客户端和数据库实例在同一台服务器上使用,用户可以在配置文件中指定套接字文件。
二、shell
1、如何将一个文件中的taomee、******、peoplenet中的*内容进行替换成network(*的内容不同)
[root@Manager-01 ~]# cat 1.txt
taomee、sdegrt、peonetwork
[root@Manager-01 ~]# sed -ri 's#(.*)、.{6}、(.*)#\1、network、\2#g' 1.txt
[root@Manager-01 ~]# cat 1.txt
taomee、network、peonetwork
2、找出access.log中访问top 10的ip地址
awk '{print $1}' nginx.log | grep -v "^$" | sort | uniq -c | sort -nr | head
3、打印1-100奇数?打印1-100偶数?打印1-100的和?打印1-100的奇数和?打印1-100的偶数和?打印1-100的质数?
打印1-100奇数:for((i=1;i<=100;i+=2));do echo $i;done
打印1-100偶数:for((i=2;i<=100;i+=2));do echo $i;done
打印1-100和:sum=0;for((i=1;i<=100;i++));do let sum+=i;done;echo $sum
打印1-100的奇数和:sum=0;for((i=1;i<=100;i+=2));do let sum+=i;done;echo $sum
打印1-100的偶数和:sum=0;for((i=2;i<=100;i+=2));do let sum+=i;done;echo $sum
打印1-100的质数:for i in `seq 2 100`; do factor $i | awk -F'[: ]+' 'NF==2{print $1}';done
4、删除一个文件中行号为奇数的行
sed -n '1~2p' file 或 sed -n 'p;n' file
5、替换某一个文件的字符串
sed -i 's/111/222/g' test.txt
或vim test
:%s/111/222/g
6、exec和souce区别
所谓 source 就是让 script 在当前 shell 内执行、而不是产生一个 sub-shell 来执行。
exec 也是让 script 在同一个行程上执行,但是原有行程则被结束了。
他们的最大区别就是在于:原有行程会否终止。
7、iptables表和链
简称三表五链
filter:INPUT FOWARD OUTPUT
nat:OUTPUT PREROUTING POSTROUTING
mangle:INPUT FOWARD OUTPUT PREROUTING POSTROUTING
8、统计目录inode占用数目
for i in `find . -type d`;do ls -1i $i |awk -v sum=0 -v dir=$i '{sum+=!a[$1]++};END{print sum"\t"dir}';done |sort -n