續前文
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