Linux基础知识
1. 常见的Linux发行版本都有什么?
常见的Linux发行版本有Redhat、Centos、Debian、Ubuntu、Suse
2. 忘记用户登录密码
a、重启系统,在GRUB界面,选取忘记密码的系统,按e键进入编辑模式 b、选择Kernel…..按e键进行编辑 c、在编辑界面rhgbquiet后加空格,然后输入”single”或”1”回车 d、按b启动进入单用户模式 f、进入系统后passwd回车输入新密码(如果有selinux,先暂时关闭setenforce0)
3. 企业中Linux服务器系统分区标准是什么?(硬盘为300G,内存16G)
| 分区名称 | 分配容量 |
|---|---|
| /boot | 200M |
| /swap | 8G |
| / | 50G |
| /data | 剩下的全部空间 |
4. Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?
网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg-eth(代表数字) 要上外网需要:能够链接internet的网线(或无线)、有网卡 需要配置:IP、netmask、gateway、dns(自动或手动都ok,服务器一般自动)
5. 一般可以使用什么软件远程linux服务器?通过什么上传文件和下载文件?
远程连接linux的软件:xshell、SecureCRT、putty、vnc(图形化) 上传和下载文件:lrzsz、sftp、FileZilla
6. 现在给你三百台服务器,你怎么对他们进行管理?
管理3百台服务器的方式: 1)设定跳板机,使用统一账号登录,便于安全与登录的考量。 2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。 3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息记录。
7. 如何查看文件内容,命令有哪些?查看文件第1行到3行,查看文件最后一行。
查看文件内容:vim、cat、head、tail 查看第1到行:head -3 file 查看最后一行:tail -1 file**
8. Linux设置环境变量
暂时的:export MYNAME=”new name”
echo $MYNAME
new name
永久的:通过改变/etc/profile实现
EG: export CLASSPATH=./java_HOME/lib;$JAVA_HOME/jre/lib
更改文件后执行 source /etc/profile
9. linux系统里,您知道buffer和cache如何区分吗?
buffer和cache都是内存中的一块区域,当CPU需要写数据到磁盘时,由于磁盘速度比较慢,所以CPU先把数据存进buffer,然后CPU去执行其他任务,buffer中的数据会定期写入磁盘;当CPU需要从磁盘读入数据时,由于磁盘速度比较慢,可以把即将用到的数据提前存入cache,CPU直接从Cache中拿数据要快的多。
10. 如何查看当前系统都有哪些进程?
ps -aux 或者ps -elf
11. 如何查看系统都开启了哪些端口?
netstat -lnp
12. 某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
用户身份验证过程记录在/var/log/secure中,登录成功的信息记录在/var/log/wtmp。
13. $符号?
$0 这个程式的执行名字 $n 这个程式的第n个参数值,n=1..9 $* 这个程式的所有参数,此选项参数可超过9个。 $# 这个程式的参数个数 $$ 这个程式的PID(脚本运行的当前进程ID号) $! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号) $? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误) $- 显示shell使用的当前选项,与set命令功能相同 $@ 跟$*类似,但是可以当作数组用 awk -F {print$3} 脚本名
14. 常见有哪些监控指标?
1.服务器:Linux应用服务器。
具体包括CPU、Memory、Load、I/O、Disk等。
2.数据库:1.Mysql 2.Oracle。
具体包括缓存命中、索引、单条SQL性能、数据库线程数、数据池连接数等。
3.中间件:比如Nginx。具体包括线程数、连接数、日志输出等。
4.网络。具体包括防火墙、网卡、网线、吞吐量、吞吐率等。
5.应用服务。具体包括应用服务日志、线程运行状态(阻塞、等待、正常运行)等。
6.监控工具。具体包括用户执行情况、场景状态、事务响应时间、TPS、Load、CPU分析图表等。例如nmon工具
网络
1. 说说TCP/IP的七层模型
应用层 (Application): 网络服务与最终用户的一个接口。 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
表示层(Presentation Layer): 数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层) 格式有,JPEG、ASCll、DECOIC、加密格式等
会话层(Session Layer): 建立、管理、终止会话。(在五层模型里面已经合并到了应用层) 对应主机进程,指本地主机与远程主机正在进行的会话
传输层 (Transport): 定义传输数据的协议端口号,以及流控和差错校验。 协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
网络层 (Network): 进行逻辑地址寻址,实现不同网络之间的路径选择。 协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP
数据链路层 (Link): 建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议) 将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正
物理层(Physical Layer): 是计算机网络OSI模型中最低的一层 物理层规定:为传输数据所需要的物理链路创建、维持、拆除 而提供具有机械的,电子的,功能的和规范的特性
简单的说,物理层确保原始的数据可在各种物理媒体上传输。局域网与广域网皆属第1、2层 物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础 物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境 如果您想要用尽量少的词来记住这个第一层,那就是“信号和介质”
2. TCP/IP具体解释–三次握手和四次挥手
建立连接协议:三次握手 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。 第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED(建立)状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
终止连接协议:四次挥手 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
为什么建立连接是三次握手,而关闭连接却是四次挥手呢? 这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。
3. 简述DNS进行域名解析的过程?
用户要访问www.baidu.com,会先找本机的host文件,再找本地设置的DNS服务器,如果也没有的话,就去网络中找根服务器,根服务器反馈结果,说只能提供一级域名服务器.cn,就去找一级域名服务器,一级域名服务器说只能提供二级域名服务器.com.cn,就去找二级域名服务器,二级域服务器只能提供三级域名服务器.baidu.com.cn,就去找三级域名服务器,三级域名服务器正好有这个网站www.baidu.com,然后发给请求的服务器,保存一份之后,再发给客户端
MySQL
1. 如何重置mysql root密码
在已知MYSQL数据库的ROOT用户密码的情况下,修改密码的方法: 1、 在SHELL环境下,使用mysqladmin命令设置:
mysqladmin –u root –p password "新密码"
Enter password: # 输入旧密码
2、 在mysql>环境中,使用update命令,直接更新mysql库user表的数据:
mysql> update mysql.user set password=password('新密码') where user='root';
mysql> flush privileges;
注意:mysql语句要以分号;结束
3、 在mysql>环境中,使用grant命令,修改root用户的授权权限。
mysql> grant all on *.* to root@'localhost' identified by '新密码';
2. mysql数据备份工具
mysqldump工具 mysqldump是mysql自带的备份工具,目录在bin目录下面:/usr/local/mysql/bin/mysqldump 支持基于innodb的热备份,但是由于是逻辑备份,所以速度不是很快,适合备份数据比较小的场景 Mysqldump完全备份+二进制日志可以实现基于时间点的恢复。
基于LVM快照备份 在物理备份中,有基于文件系统的物理备份(LVM的快照),也可以直接用tar之类的命令对整个数据库目录 进行打包备份,但是这些只能进行泠备份,不同的存储引擎备份的也不一样,myisam自动备份到表级别 而innodb不开启独立表空间的话只能备份整个数据库。
tar包备份 percona提供的xtrabackup工具 支持innodb的物理热备份,支持完全备份,增量备份,而且速度非常快,支持innodb存储引起的数据在不同 数据库之间迁移,支持复制模式下的从机备份恢复备份恢复,为了让xtrabackup支持更多的功能扩展 可以设立独立表空间,打开 innodb_file_per_table功能,启用之后可以支持单独的表备份.
备份的策略有哪些?
全量备份
对整个系统包括系统文件和应用数据进行的完全备份。 优点:数据恢复所需时间短。 缺点:浪费大量的存储空间;备份所需时间较长。
增量备份
每次备份上一次备份(全或增或差)后增加和修改过的数据。 优点:节省存储空间,缩短备份时间。 缺点:数据恢复比较麻烦,需要进行多次数据恢复。
差分备份
每次备份上一次全量备份之后新增加的和修改过的数据。 优点:节省存储空间,缩短备份时间,数据恢复也比较方便,只需两次备份数据。
策略
操作系统和应用程序代码:先对所有系统做一次全备份,然后每周对关键系统做一次全备份;每当做过软件安装或系统升级后,应立即做一次全量备份。
3. mysql主从复制原理
- 主库对所有DDL和DML产生的日志写进binlog;
- 主库生成一个 log dump 线程,用来给从库I/O线程读取binlog;
- 从库的I/O Thread去请求主库的binlog,并将得到的binlog日志写到relay log文件中;
- 从库的SQL Thread会读取relay log文件中的日志解析成具体操作,将主库的DDL和DML操作事件重放。