第1章 知識回顧:
1.磁盤組成
2.RAID級別
3.如何讓系統更安全
[root@oldboyedu50-lnb ~]# md5sum oldboy.txt
890b185727556f1be31d7fe5ee5ce4dc oldboy.txt
[root@oldboyedu50-lnb ~]# sha512sum oldboy.txt
c9a326ffb217c4dc7f72ccf02aba9abf9ec94ca40aa47d848f57741e313a7df52b80f8cca9130acc5930815a1728d93bd781b29d4598eb5cbcaf55ef6e2a7d98 oldboy.txt
4.如何防止系統中×××
5磁盤接口 磁盤組成
6如何進行計算
實例1-1 如何查看內存使用情況
[root@oldboyedu50-lnb ~]# free -h
total used free shared buffers cached
Mem: 1.8G 1.6G 195M 236K 106M 1.3G
-/+ buffers/cache: 189M 1.6G
Swap: 767M 0B 767M
實例1-2 磁盤分區
1.2 Linux啓動流程:
1. 開機自檢BIOS
2. MBR引導
3. GRUB菜單
4. 加載內核
5. 運行init進程 第1個進程
6. 讀取運行級別 /etc/inittab
7. /etc/rc.sysinit 系統初始化
8. /etc/rc3.d 根據運行級別 啓動對應服務(開機自啓動)
9. mingetty 登錄頁面
1.3 磁盤分區
1.磁盤的引導扇區 0磁頭 0磁道 1扇區
MBR引導 0頭0道1扇區前446字節
MBR (Master Boot Record) 主引導記錄 引導系統啓動
DPT (Disk Partition Table) 磁盤分區表 記錄着磁盤分區從哪裏開始到哪裏結束
1. 主分區(primary) 每個分區佔用16個字節的分區表
一般一定要有
存放數據
2. 擴展分區(extended) 無法直接使用的
最多1個
無法直接使用
3. 邏輯分區(logical)
存放數據
1.4 磁盤分區
[root@oldboyedu50-lnb ~]# fdisk -l |grep sd[a-c]:
Disk /dev/sda: 21.5 GB, 21474836480 bytes
Disk /dev/sdc: 213 MB, 213909504 bytes
Disk /dev/sdb: 213 MB, 213909504 bytes
fdisk 創建分區
-u √ 磁盤分區的時候以扇區爲單位默認是按照柱面
-c 關閉dos兼容模式
fdisk -cu /dev/sdb
fdisk內部命令
m 顯示幫助
n new 創建分區
p 顯示所有分區信息
d 刪除分區
w 保存並退出
q 退出不保存
實例1-3 創建一個10MB主分區
fdisk -cu /dev/sdb
Command (m for help): n
Command action #分區類型
e extended
p primary partition (1-4)
p
Partition number (1-4):
分區號碼
First sector (2048-417791, default 2048):
從哪裏開始(回車 使用默認)
Last sector, +sectors or +size{K,M,G} (2048-417791, default 417791): +10M
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8dde1fa5
Device Boot Start End Blocks Id System
/dev/sdb1 2048 22527 10240 83 Linux
實例1-4 創建10MB的主分區 創建一個使用所有容量的擴展分區 創建兩個50MB邏輯分區
[root@oldboyedu50-lnb ~]# fdisk -cu /dev/sdb
Command (m for help): p
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8dde1fa5
Device Boot Start End Blocks Id System
/dev/sdb1 2048 22527 10240 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e #創建擴展分區
Partition number (1-4): 2
First sector (22528-417791, default 22528):
Using default value 22528
Last sector, +sectors or +size{K,M,G} (22528-417791, default 417791):
Using default value 417791
Command (m for help): p
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8dde1fa5
Device Boot Start End Blocks Id System
/dev/sdb1 2048 22527 10240 83 Linux
/dev/sdb2 22528 417791 197632 5 Extended
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First sector (24576-417791, default 24576):
Using default value 24576
Last sector, +sectors or +size{K,M,G} (24576-417791, default 417791): +50M #大小50MB
Command (m for help): p
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8dde1fa5
Device Boot Start End Blocks Id System
/dev/sdb1 2048 22527 10240 83 Linux
/dev/sdb2 22528 417791 197632 5 Extended
/dev/sdb5 24576 126975 51200 83 Linux
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First sector (129024-417791, default 129024):
Using default value 129024
Last sector, +sectors or +size{K,M,G} (129024-417791, default 417791): +50M #大小50MB
Command (m for help): p
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8dde1fa5
Device Boot Start End Blocks Id System
/dev/sdb1 2048 22527 10240 83 Linux
/dev/sdb2 22528 417791 197632 5 Extended
/dev/sdb5 24576 126975 51200 83 Linux
/dev/sdb6 129024 231423 51200 83 Linux
實例1-5 增加硬盤200MB,硬盤創建一個分區掛載到/data目錄
第1個里程碑-創建分區
Command (m for help): p
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8dde1fa5
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-204, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-204, default 204):
Using default value 204
Command (m for help): p
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8dde1fa5
Device Boot Start End Blocks Id System
/dev/sdb1 1 204 208880 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@oldboyedu50-lnb ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8dde1fa5
Device Boot Start End Blocks Id System
/dev/sdb1 1 204 208880 83 Linux
第2個里程碑-通知系統sdb磁盤分區表變化
partprobe /dev/sdb
第3個里程碑-創建文件系統(格式化)
make filesystem
mkfs
#對每個房間裝修(磁盤分區)
mkfs.ext4 /dev/sdb1
第4個里程碑-關閉磁盤自動檢查
This filesystem will be automatically checked every 38 mounts or
這個磁盤分區會被自動檢查(沒掛載38次或每隔180天)
180 days, whichever comes first. Use tune2fs -c or -i to override.
自己創建的磁盤分區關閉磁盤檢查.
[root@oldboyedu50-lnb ~]# tune2fs -c 0 -i 0 /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
-c 0 關閉 每掛載多少次進行一次磁盤檢查
-i 0 關閉 每隔180天進行一次磁盤檢查
第5個里程碑-掛載
[root@oldboyedu50-lnb ~]# mkdir -p /data
[root@oldboyedu50-lnb ~]# mount /dev/sdb1 /data/
[root@oldboyedu50-lnb ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.5G 17G 9% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
/dev/sdb1 194M 1.8M 182M 1% /data
第6個里程碑-永久掛載
#方法1
/etc/rc.local
#方法2
/etc/fstab 開機自動掛載
UUID=cf634253-6c41-4771-87b7-e86afb9284a7 / ext4 defaults 1 1
UUID=8519938a-dccb-4eb5-bbbc-4fd22f9f99fe /boot ext4 defaults 1 2
UUID=f70549a5-ec74-4cd1-99ba-49eb175e712d swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
設備名稱(分區) 載點(目錄) 文件系統類型 掛載參數 是否進行備份 是否開機磁盤檢查
#/dev/cdrom /mnt iso9660 defaults 0 0
/dev/sdb1 /data ext4 defaults 0 0
實例1-6 故障案例: java程序佔用大量內存,開始使用swap,swap不足
創建一個文件成爲swap
[root@oldboyedu50-lnb ~]# free -h
total used free shared buffers cached
Mem: 1.8G 158M 1.7G 240K 11M 51M
-/+ buffers/cache: 95M 1.7G
Swap: 767M 0B 767M
1.創建一個100M的文件
[root@oldboyedu50-lnb ~]# dd if=/dev/zero of=/tmp/100m bs=1M count=100
input output block
file file size
[root@oldboyedu50-lnb ~]# file /tmp/100m
/tmp/100m: data
2.創建swap 讓這個文件成爲swap(格式化)
[root@oldboyedu50-lnb ~]# mkswap /tmp/100m
mkswap: /tmp/100m: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 102396 KiB
no label, UUID=531f48e2-be07-4f24-86e5-dfe9ed549b16
[root@oldboyedu50-lnb ~]# file /tmp/100m
/tmp/100m: Linux/i386 swap file (new style) 1 (4K pages) size 25599 pages
3.激活swap分區
swapon /tmp/100m
[root@oldboyedu50-lnb ~]# swapon /tmp/100m
[root@oldboyedu50-lnb ~]# free -h
total used free shared buffers cached
Mem: 1.8G 264M 1.6G 240K 11M 153M
-/+ buffers/cache: 98M 1.7G
Swap: 867M 0B 867M
4.永久增加
/etc/rc.local
/etc/fstab
#/tmp/100m swap swap defaults 0 0
print 顯示分區信息
parted /dev/sdc
mktable mklabel 創建磁盤分區表
gpt
msdos(mbr)
mkpart 創建分區
rm 刪除分區
q 退出不保存
實例1-7 企業創建分區
1.創建分區表
(parted) mktable gpt
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 214MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
2.創建分區
(parted) mkpart primary 0 10
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 214MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 10.0MB 9983kB primary
非交互式創建分區
parted /dev/sdc p
parted /dev/sdc mktable gpt
parted /dev/sdc mkpart primary 0 10 ignore
parted /dev/sdc mkpart primary 10 20
parted /dev/sdc p
第2章 服務器
2.1 物理服務器
物理服務器是指獨立服務器,也就是指物理上的單獨服務器,物理服務器的構成包括處理器、硬盤、內存、系統總線等,和通用的計算機架構類似,但是由於需要提供高可靠的服務,因此在處理能力、穩定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
2.2 雲服務器:
雲服務器(Elastic Compute Service, ECS)是一種簡單高效、安全可靠、處理能力可彈性伸縮的計算服務。其管理方式比物理服務器更簡單高效。用戶無需提前購買硬件,即可迅速創建或釋放任意多臺雲服務器
國內:阿里雲 騰訊 華爲(國企) ucloud
國外:AWS(亞馬遜)
2.3 命令記錄
dd 複製或轉換數據內容
[root@oldboyedu50-lnb ~]# dd if=/dev/sda of=/tmp/mbr.bin bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000194218 s, 2.6 MB/s
[root@oldboyedu50-lnb ~]# ll /tmp/mbr.bin
-rw-r--r-- 1 root root 512 Aug 16 08:53 /tmp/mbr.bin
od 查看二進制文件的內容
od -xa /tmp/mbr.bin
diff 比較文件內容
diff CentOS-Base.repo CentOS-Base.repo.backup
vimdiff CentOS-Base.repo CentOS-Base.repo.backup
清空yum緩存
第3章 配置linux yum源
3.1 查看系統當前的yum源
[root@oldboy50-01 ~]# yum repolist
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base CentOS-6 - Base - mirrors.aliyun.com 6,713
epel Extra Packages for Enterprise Linux 6 - x86_64 12,518
extras CentOS-6 - Extras - mirrors.aliyun.com 31
updates CentOS-6 - Updates - mirrors.aliyun.com 113
repolist: 19,375
3.2 把系統默認的yum源改爲阿里雲(從阿里雲下載軟件)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
3.3 增加yum源epel
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
3.4 安裝 cowsay sl
[root@oldboy50-01 ~]# yum -y install cowsay sl
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.7 kB 00:00
epel | 3.2 kB 00:00
Not using downloaded repomd.xml because it is older than what we have:
Current : Thu Aug 16 03:51:57 2018
Downloaded: Wed Aug 15 01:41:28 2018
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
Package cowsay-3.03-8.el6.noarch already installed and latest version
Package sl-5.02-1.el6.x86_64 already installed and latest version
Nothing to do
3.5 安裝iotop htop iftop
[root@oldboy50-01 ~]# yum -y install iotop htop iftop
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Package iotop-0.3.2-9.el6.noarch already installed and latest version
Package htop-1.0.3-1.el6.x86_64 already installed and latest version
Package iftop-1.0-0.14.pre4.el6.x86_64 already installed and latest version
Nothing to do
第4章 請寫出常見的查看系統性能的命令
監控項目:cpu,mem,disk,cpu溫度,磁盤IO,RAID,負載、網絡
cpu: lscpu /proc/cpuinfo
4.1 ps aux 中VSZ 與 RSS區別
虛擬內存=物理內存+swap
VSZ virutal size 進程所佔的虛擬內存大小(物理+swap)
RSS 進程所佔用的物理內存大小
查看raid信息工具:megacli ***
查看硬件信息工具:ipmitool *** (溫度 風扇轉數)
第5章 文件系統:
組織管理文件方法
文件在磁盤上面如何存放
不同的系統會有不同的文件系統
inode: 文件屬性
block: 文件內容/文件名
inode信息 block信息存放位置 superblock的地方 超級塊
dumpe2fs -h 只顯示超級塊的內容
5.1 常見的文件系統及應用場景
儘量使用系統默認的文件系統
reiserfs大量小文件業務首選reiserfs(100K以內), 單獨安裝。
xfs有的門戶的數據庫MySQL業務會選擇xfs。
ext4 視頻下載,流媒體,數據庫,小文件業務也OK,可以用默認的。
ext2 沒有日誌,藍汛、網宿的cache業務,CDN網站加速服務的。 緩存
Ext4/Reiserfs可以作爲SSD文件系統,但未對SSD做優化,不能充分發揮SSD性能,並影響SSD使用時間。
swap 交換分區