Linux學習筆記(21~29)

續前文

21、Raid及mdadm命令

RAID

  • 獨立冗餘磁盤陣列
  • 條帶化技術
  • RAID level:磁盤組織方式不同,沒有上下之分 、
  • 可用性
    • 磁盤鏡像技術,mirror
    • 校驗碼

22、Linux網絡配置

  • Protocol,協議
    • 線路仲裁機制:MAC,Media Access Control
      • MAC地址,
      • 首部,header,報頭
      • CSMA/CD:Carrier Sende Multi Access Collision Detection載波偵聽多路訪問,衝突檢測
  • 主機接入網絡
    • 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
  • 命令
    • 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
      • -n
        • 以數字方式顯示各主機或端口信息
      • 立即生效,重啓失效。
  • 配置文件
    • 網絡:/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=
    • 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
          • route:路由,策略路由
          • tc:流量控制,高級路由

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

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

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
      • 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直接登陸
  • ssh
    • dropbear:嵌入式上使用ssh

27、常見故障排除

  • 流程
    • 確定問題的故障特徵
    • 重現故障
    • 使用工具收集進一步信息
    • 排除不可能的原因
    • 定位故障
      • 從簡單的問題入手
      • 一次嘗試一種方法(備份原文件,儘可能藉助於工具)
  • 故障類型
    • 管理員密碼丟失
    • 系統無法正常啓動
      • grub損壞(MBR損壞,grub配置文件損壞,)
      • 系統初始化故障(某文件系統無法正常掛載,驅動不兼容)
      • 服務故障
      • 用戶無法登陸(bash程序故障)
    • 命令無法運行
    • 編譯過程無法繼續(開發環境缺少基本組件)
  • 修復
    • MBR損壞
      • 緊急救援模式
        • boot.iso
        • 系統安裝盤
          • boot:linux rescue 緊急救援模式 /mnt/sysimage
            • 進入緊急救援
            • 進入grub
            • 設定根
          • 手動創建設備文件:mknod
  • 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
    • 根域名服務器
    • 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
        • 邏輯概念
    • BIND服務安裝配置
      • bind97
        • 配置文件:
          • /etc/named.conf,進程工作屬性,區域定義
          • /etc/rndc.key:remote name domain controller(rndc),密鑰文件,/etc/rndc.conf
          • 區域數據文件:/var/named
          • /etc/rc.d/init.d/named :啓停
  • DHCP:Dynamic Host Configuration Protocol
    • TCP/IP
      • IPADDR:
      • NETMASK
      • GATEWAY:可省
      • DNS:可省

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)
  • 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服務器,分離動靜
        • 源碼編譯
      • 執行進程服務:/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 添加文件
          • 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
      • 基於域名
      • 不同
        • DocumentRoot <Directory>目錄的屬性
        • ServerName
      • 客戶端動態,服務端動態
        • 服務器端動態:CGI
        • 動態網站
      • 虛擬主機
        • 定義:<VirtualHost HOST>
        • 需要註釋掉虛擬主機的DocumentRoot
        • 基於IP:IP1:80
        • 基於端口:IP:8080
        • 基於域名:IP:80(ServerName不同即可)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章