续前文
21、Raid及mdadm命令
RAID
- 独立冗余磁盘阵列
- 条带化技术
- RAID level:磁盘组织方式不同,没有上下之分 、
- 可用性
- 磁盘镜像技术,mirror
- 校验码
22、Linux网络配置
- Protocol,协议
- 线路仲裁机制:MAC,Media Access Control
- MAC地址,
- 首部,header,报头
- CSMA/CD:Carrier Sende Multi Access Collision Detection载波侦听多路访问,冲突检测
- 线路仲裁机制:MAC,Media Access Control
- 主机接入网络
- IP
- 手动指定
- DHCP:Dynameic Host Configuratiion Protocol
- 169.254.*.*:随机配置,只能本地通信,获取不到ip
- 地址属于内核
- NETMASK
- GETWAY
- HOSTNAME
- DNS1
- DNS2
- DNS3
- 路由
- 接口
- lo:本地回环
- 以太网网卡:ethX
- pppX:点对点连接
- RHEL6定义网卡命名方式: # cat /etc/udev/rules.d/70-persistent-net.rules
- IP
- 命令
- ifconfig
- 查看网络配置
- -a:显示所有接口的配置信息
- # ifconfig ethX IP/MASK [UP|DOWN]:设置网络地址,子网掩码写长度,启用禁用 。
- 立即生效,但重启网络服务或主机都失效/etc/init.d/network {start|stop|restart|status}
- 禁用服务
- route
- add:添加
- -host:主机路由
- -net:网络路由
- -net 0.0.0.0 默认路由 # route add default gw 192.168.10.1
- # route add -net 10.0.0.0/8 gw 192.168.10.1
- del:删除
- -host
- # route del -net 10.0.0.8/8
- -net
- -host
- -n
- 以数字方式显示各主机或端口信息
- 立即生效,重启失效。
- add:添加
- ifconfig
- 配置文件
- 网络:/etc/sysconfig/network
- 接口:/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME
- DEVICE=:关联的设备名称,与INTERFACE_NAME一致
- BOOTPROTO=:引导协议,静态static或none,dhcp
- IPADDR=:ip地址,
- NETMASK=:子网掩码
- GATWAY=:设定默认网关
- ONBOOT=:开机时是否自动激活此网络接口
- HWADDR=:可省
- USERCTL=:是否允许普通用户启用或关闭此设备
- PEERDNS=:是否在BOOTPROTO为dhcp时接受由DHCP服务器指定的DNS地址
- 不会立即生效,重启永久生效;/etc/init.d/network {start|stop|restart|status}
- 路由:/etc/sysconfig/network-scripts/route-ethX-----vim
- 格式一:dest via NEXTHOP
- 192.168.10.0/24 via 10.10.10.254
- 格式二
- ADDRESS0=
- NEXTMASK0=
- GATEWAY0=
- 格式一:dest via NEXTHOP
- DNS /etc/resolv.conf
- nameserver DNS_IP_1
- nameserver DNS_IP_2
- nameserver DNS_IP_3
- 指定本地解析
- /etc/hosts
- 格式:目标主机ip 主机名 [别名]
- hostname HOSTNAME
- 临时
- 永久:/etc/sysconfig/network
- HOSTNAME=
- RHEL5图形界面:
- # export LANG-en,setup
- iproute2
- ip
- link:配置网络接口属性
- show:# ip link show
- -s:显示统计信息
- set DEVICE {}
- addr:协议地址
- add
- # ip addr add 10.2.2.2/8 dev eth0 [label eth0:0]
- # ifconfig eth0:0 172.16.200.12 实现一块儿网卡多个ip,临时
- # vim /etc/sysconfignetwork-scripts/ifcfg-ethX:X DEVICE=ethX:X 永久
- del
- ip addr del ip/masklength
- show
- # ip addr show dev DEV to PREFIX
- flush
- 清空地址
- # ip addr flush dev DEV to PREFIX
- add
- route:路由,策略路由
- tc:流量控制,高级路由
- link:配置网络接口属性
- ip
23、软件包管理
- 应用程序:
- 程序,Architecture
- /etc,/bin,/sbin,/lib:系统启动相关,不能挂载额外分区,必须在根文件系统的分区上
- /usr 单独分区,重装不影响,操作系统的核心功能
- /usr/local:第三方软件安装位置(/opt)
- /proc,/sys:不能单独分区,默认空
- /dev:设备,不能单独分区,udev
- /home:新创建用户的家目录,建议单独分区
- /root:管理员root的家目录,不单独分区
- /var:系统运行的补充,系统管理更加规范,日志,建议单独分区,
- /boot:内核,initrd(initramfs)
- 内核:POST-->BIOS(HD)-->MBR(bootloader)-->内核
- /proc/cpuinfo
- 工具
- 前端:Yellowdog Update Modifier(yum),apt-get
- 后端:RPM,dpt
- 命令
- rpm
- # rpm -ivh package_name | http: // website. name/path/pkgname.rpm ......:安装软件并显示安装进度
- -qa:列出已经安装的软件
- -q packname :查看有无安装packname
- -ql packname:查看软件提供的所有目录和文件
- -qi packname:列出软件的相关说明数据
- -qc packname:列出软件的设置文件
- -qf /path/command:查看命令是由哪个软件提供
- -qR packname:查看安装此软件需要的帮助
- -Va:查看哪些软件被更改过
- --rebuilddb:重建数据库
- yum
- search:搜索软件名称
- list:
- updates:列出可供本机更新的软件
- info:列出软件功能
- install:安装软件
- update:更新软件
- remove:删除功能
- /etc/yum.repos.d/:容器所在目录
- repolist all:列出yum server所使用的容器有哪些
- clean
- grouplist:组件功能
- groupinfo
- groupinstall
- update全系统自动更新
- -y:选择yes
- rpm
24、进程管理
相关命令
- ps:process state
- BSD风格
- systemV,SysV风格:加横线_
- a:BSD风格,显示所有与终端有关的进程
- u:显示进程由哪个用户启动
- x:与终端无关的进程
- 进程的分类
- 与终端相关的进程
- 与终端无关
- -e:显示所有线程 -A
- -l:长格式
- -F:额外的,-f
- -o:显示指定的属性
- pstree:显示进程树
- pgrep:以grep风格找符合条件的进程
- -u username
- pidof:find the process ID of a running program
- top: Display Linux tasks
- 监控系统性能
- -d:指定刷新时长
- -b:批模式
- -n # :批模式下指定显示几屏
- 进程间通信(IPC,Inter Process Communication)
- 共享内存
- 信号:signal
- 1:SIGHUP,不重启重新读配置文件
- 2:SIGINT:中断
- 9:SIGLILL,杀死
- 15:SIGTERM,终止
- 指定信号
- kill -1
- kill -SIGKILL
- kill -KILL
- 杀死进程:kill 进程id(默认15信号)
- killall command
- kill %jobID:终止某作业
- semaphore
- 调整优先级别
- renice nice PID
- 启动时指定nice值
- nice -n NI COMMAND
- fg
- 打开进程后,CTRL+z放到后台,fg调到前台
- 前到后:CTRL+z ,命令后加 &,
- # fg [ jobID ]
- bg
- 让后台的停止的作业继续在后台运行
- # bg [ jobID ]
- jobs
- 查看后台的所有作业,作业号不同于进程号
- +:命令将默认操作的作业
- -:命令将第二个默认的操作的作业
- 查看后台的所有作业,作业号不同于进程号
- vmstat:系统状态查看命令
- # vmstat #1 #2 :指定刷新频率和显示条数
- uptime
- /proc/meminfo:当前系统内存信息
25、日志系统
- 日志系统:syslog(syslog-ng开源)
- 信息详细程序:日志级别
- 子系统:facility,设施
- 动作:action
- syslog服务:
- syslogd:负责系统,非内核 /sbin/init
- 位置:/var/log/messages,系统标准错误日志信息,非内核产生引导信息,各子系统产生的信息
- 日志滚动message message.1 ....... 日志切割过程(# logrates)
- /var/log/maillog:邮件相关
- /var/log/secure:登陆日志
- klogd:负责内核 kernel --> 物理终端(/dev/console)-->/var/log/dmesg
- # dmesg 启动init前的记录
- # chkconfig --list syslog 查看服务
- 配置文件 : /etc/syslog.conf
- syslogd:负责系统,非内核 /sbin/init
26、SSH
- telnet
- C/S
- TCP
- 23
- ssh
- C/S
- TCP
- 22
- 通信加密,主机加密
- 非对称加密Secret key,Public key
- 密钥交换
- 认证方式
- 基于口令认证
- 基于密钥认证
- 软件:openSSH
- 服务器端:sshd /tec/ssh/sshd_config
- 客户端:ssh /etc/ssh/ssh_config
- ssh-keygen:密钥生成器
- ssh-copy-id:将公钥传输至远程服务器
- scp:跨主机安全复制工具
- 命令
- # ssh ip
- # ssh ip -p port -l username ‘ command’
- scp:文件复制
- # scp SRC DEST 若是目录-r,-a
- # scp USERNAME@HOST:/path/to/somefile /path/to/local
- # scp /path/to/local USERNAME@HOST:/path/to/somefile
- # scp SRC DEST 若是目录-r,-a
- ssh-keygen
- 客户端生成密钥
- # ssh-keygen -t rsa 保存在 ~/.ssh/id_rsa id_rsa.pub 再将公钥复制到远程主机的家目录下.ssh/authorized_keys或者.ssh/authorized_keys2
- .ssh/ 700
- ssh-copy-idc
- 复制公钥到远程主机
- -i:指定本地公钥保存位置
- # ssh-copy-id -i ~/.ssh/id_rsa.pub USERNAME@HOST
- -f path/to/KEY_FILE
- -P '':指定加密私钥的密码
- netstat -tnl:查看网络中以tcp协议运行的监听服务并以数字显示端口
- -r: 显示路由表
- -n:数字合适
- -t:tcp相关
- -u:udp相关
- -l:listening
- -p:process
- sshd
- 配置文件:/etc/ssh/sshd_config 端口,协议,密码登陆开关
- Port:端口
- Protocol:协议
- ListenAddress:提供服务的地址
- KeyRegenerationInterval:密钥更新时间
- ServerKeyBits:服务器端密钥长度
- SyslogDFacility:日志相关
- LoginGraceTime:宽容期限,输账号与密码的间隔时间
- PermitRootLogin:是否允许root直接登陆
- 配置文件:/etc/ssh/sshd_config 端口,协议,密码登陆开关
- ssh
- dropbear:嵌入式上使用ssh
27、常见故障排除
- 流程
- 确定问题的故障特征
- 重现故障
- 使用工具收集进一步信息
- 排除不可能的原因
- 定位故障
- 从简单的问题入手
- 一次尝试一种方法(备份原文件,尽可能借助于工具)
- 故障类型
- 管理员密码丢失
- 系统无法正常启动
- grub损坏(MBR损坏,grub配置文件损坏,)
- 系统初始化故障(某文件系统无法正常挂载,驱动不兼容)
- 服务故障
- 用户无法登陆(bash程序故障)
- 命令无法运行
- 编译过程无法继续(开发环境缺少基本组件)
- 修复
- MBR损坏
- 紧急救援模式
- boot.iso
- 系统安装盘
- boot:linux rescue 紧急救援模式 /mnt/sysimage
- 进入紧急救援
- 进入grub
- 设定根
- 手动创建设备文件:mknod
- boot:linux rescue 紧急救援模式 /mnt/sysimage
- 紧急救援模式
- MBR损坏
- sudo
- 某个用户能够以另外一个用户的身份通过某主机执行某命令
- 配置文件:/etc/dudoers who which_host=(runas) command
- 别名:用户别名,主机别名,命令别名;别名大写英文字母
28、服务配置
- 服务
- DNS:域名解析
- 软件支持(构建标准):BIND,Berkeley Internet Name Domain
- SSL/TLS:http openssl,CA,Digital Certificate,PKI
- HTTP:Apache,LAMP,Nginx,LNMP(LEMP),Mysql,PHP,varnish
- CDN(内容分发服务):DNS(View),varnish
- File Server:NFS,SMB/CIFS,FTP
- Netfilter:iptables(filter,nat,mangle,raw),tcp wrapper
- NSSwitxh(网络服务转换):framework,platform,PAM
- SMTP/POP3/IMAP4:Mail Server
- SELinux:Security Enhanced Linux C2-->SELinux-->B1
- MySQL:
- DNS:Domain Name Service
- nsswith:提供名称解析的平台
- 库:libnss_files.solibness_dns.so
- stub resolver:名称解析器,软件,
- ICANN:互联网名称分配
- TLD:顶级域名(一级域)
- 组织域:.com .org .net .cc
- 国家域:.cn .tw .hk .iq .ir .jp
- 反向域:IP-->FQDN
- TLD:顶级域名(一级域)
- 根域名服务器
- DNS服务器类型
- 主DNS服务器:数据修改
- 辅助DNS服务器:请求数据同步(拉取)
- serial number
- refresh time
- retry time
- expire time
- nagative answer TTL
- 缓存DNS服务器
- 转发器:不缓存,只转发
- 资源记录类型
- SOA(Start Of Authority)
- NS(Name Server):ZONE NAME -->FQDN
- MX(MAIL EXCHANGE):ZONE NAME -->FQDN
- A(address):FQDN-->IPv4
- AAAA:FQDN-->IPv6
- PTR(pointer):IP-->FQDN
- 区域和域
- 区域:Zone
- 物理概念
- 域:Domain
- 逻辑概念
- 区域:Zone
- BIND服务安装配置
- bind97
- 配置文件:
- /etc/named.conf,进程工作属性,区域定义
- /etc/rndc.key:remote name domain controller(rndc),密钥文件,/etc/rndc.conf
- 区域数据文件:/var/named
- /etc/rc.d/init.d/named :启停
- 配置文件:
- bind97
- DHCP:Dynamic Host Configuration Protocol
- TCP/IP
- IPADDR:
- NETMASK
- GATEWAY:可省
- DNS:可省
- TCP/IP
29、HTTP服务
- HTTP:HyperText Transfer Protocol
- HTTP方法
- GET,POST
- PUT,DELETE
- 动态效果
- Java,Applet,JRE
- 非html格式,而是编程语言开发的脚本,脚本接收参数在服务器运行一次,运行完成生成HTML,再发给客户端
- php解释器
- 动态网页:包含静态内容和动态内容
- 动态内容部分才需要运行
- 缓存机制
- 阻塞
- 轮询
- HTTP报文
- 请求报文
- 响应报文
- Web服务器的主要操作
- 建立连接:接受或拒绝客户端的连接请求
- 接收请求:通过网络读取HTTP请求报文
- 处理请求:解析请求报文并做出相应的动作
- 访问资源:访问请求报文中的相关资源
- 构建响应:使用正确的首部生成HTTP响应报文
- 发送响应:向客户端发送生成的响应报文
- 记录日志:将已完成的HTTP事务记录写入日志文件
- httpd机制
- 单线程
- 多线程
- 长连接
- 事件驱动,通知(水平触发,边缘触发)
- 常用客户端
- IE
- Firefox
- Chrome
- Opera
- Safari
- WEB服务器www.netcraft.com
- Apache httpd
- IIS
- nginx
- lighttpd
- thttpd
- 应用程序服务器
- IIS
- tomcat(Apache,JSP,open source)
- Websphere(IBM,JSP,commodity)
- Weblogic(Oracle,JSP,commodity)
- JBoss(RedHat)
- HTTP方法
- httpd安装配置
- apache:ASF,httpd.apache.org
- 特性
- 事先创建进程
- 按需维持适当的进程
- 模块设计,核心比较小,各种功能模块儿添加(包括php)
- 支持运行时配置,支持单独编译模块
- 支持多种方式的虚拟主机配置
- Socket IP:Port
- 基于ip的虚拟主机
- 基于端口的虚拟主机
- 基于域名的虚拟主机
- 支持https:mod_ssl模块
- 支持用户认证
- 支持基于IP或主机的访问
- 支持每目录访问
- 支持URL重写
- 安装
- 方式
- rpm包
- /etc/httpd:工作根目录,相当于软件安装目录
- /etc/httpd/conf:配置文件目录,主:httpd.conf
- /tec/httpd/modules:模块儿目录
- /etc/httpd/logs-->/var/log/httpd:日志目录,access_log,err_log
- /var/www:提供访问的目录,静态与动态
- html/,cgi-bin/,
- cgi:Common Gateway Interface,web服务器与应用程序服务器交互的协议
- 开发动态网页:perl,python,java(servlet,JSP),php
- fastcgi:专门的进程与应用服务器交互(分离web服务器与应用程序服务器),搭在web服务器,分离动静
- 源码编译
- rpm包
- 执行进程服务:/etc/sbin/httpd (MPM:prefork)事先启动空闲模式(由主导进程创建)
- 服务脚本:/etc/rc.d/init.d/httpd
- Port:80/tcp ssl 443/tcp
- 数据库服务
- api:
- 流程
- # yum -y install httpd
- # rpm -ql httpd | less 查看生成的文件
- # service httpd start 启动进程
- # ps aux | grep httpd 查看进程
- # vim /etc/httpd/conf/httpd.conf 编辑配置文件
- LoadRunner:测试压力工具 MPM多处理模块儿(默认prefork模式)
- # httpd -l:列出支持的模块儿
- /etc/httpd/conf/httpd.conf
- DocumentRoot "/var/www/html"
- Options在<Directory "/var/www/html">中定义
- AllowOverride:允许覆盖
- 用户认证:AuthConfig
- # htpasswd 添加文件
- 用户认证:AuthConfig
- Order:定义访问控制机制:主机,ip名
- # elinks url:纯文本打开网页
- 每个用户自己的家目录提供访问
- <IfModule>
- UserDir public_html
- 用户在自己的家目录下建立文件夹public_html即可通过ip/~username访问文件夹下的文件
- Alias:路径别名
- 方式
- PV,UV
- 访问量记录
- apache虚拟主机
- apache:服务器,Host,物理主机
- 服务于多个不同的站点
- 中心主机,虚拟主机不会同时
- 基于IP
- IP1:80
- IP2:80
- 基于端口
- IP:80
- IP:8080
- 基于域名
- www.example.com
- www.a.org
- www.b.cn
- NameVirtualHost apache2.2
- 不同
- DocumentRoot <Directory>目录的属性
- ServerName
- 客户端动态,服务端动态
- 服务器端动态:CGI
- 动态网站
- 虚拟主机
- 定义:<VirtualHost HOST>
- 需要注释掉虚拟主机的DocumentRoot
- 基于IP:IP1:80
- 基于端口:IP:8080
- 基于域名:IP:80(ServerName不同即可)
- 基于IP