DAY18
定時任務(wù)要領(lǐng):
* * * * *? /bin/sh /server/scripts/bak.sh &>/dev/null
如何調(diào)試定時任務(wù)?
1纬黎、查看錯誤日志*****
/var/log/cron
學(xué)會最小化排除:
先清空磷雇,>/var/log/cron
然后在測試和觀察。
2、增加執(zhí)行任務(wù)頻率調(diào)試任務(wù)? ? ? *****
把頻率調(diào)快陕贮。
3、把定時任務(wù)執(zhí)行時間比當(dāng)前時間拖后5分鐘
00 03執(zhí)行潘飘,當(dāng)前5:00肮之,咱們就把時間調(diào)整 05 05,有個5分鐘提前量。
4卜录、調(diào)整系統(tǒng)時間(測試環(huán)境還湊合)否則會造成別的任務(wù)混亂
00 03執(zhí)行戈擒,把系統(tǒng)時間調(diào)整到2:55。
5艰毒、通過腳本日志輸出調(diào)試定時任務(wù)
定時任務(wù)輸出
* * * * *? /bin/sh /server/scripts/bak.sh &>/tmp/bak.log
腳本輸出:
tar zcvf oldboy.tar.gz? ./data &>/tmp/tar.log
注意點:
有時候程序只能執(zhí)行一次筐高。一定要在測試環(huán)境測試好,然后直接復(fù)制到正式丑瞧。
代碼發(fā)布流程:
辦公室測試環(huán)境===>IDC機房測試環(huán)境===>IDC機房正式環(huán)境
防止在正式環(huán)境發(fā)生錯誤柑土,從而影響用戶體驗,業(yè)務(wù)穩(wěn)定嗦篱。
企業(yè)故障案例:No space left on device常見企業(yè)故障案例
磁盤滿的報錯冰单,原因往往是inode被占滿了。
df -i
因為定時任務(wù)沒有加&>/dev/null灸促,定時任務(wù)執(zhí)行的時候把輸出給系統(tǒng)root發(fā)郵件诫欠。
郵件服務(wù)器postfix服務(wù)默認(rèn)不開,這些給系統(tǒng)發(fā)的郵件就會堆在臨時目錄(大量小文件存在)
/var/spool/clientmqueue/? ? ? 6
/var/spool/postfix/maildrop/? 7
企業(yè)故障案例:程序通過手動可以執(zhí)行浴栽,放定時任務(wù)里不執(zhí)行荒叼。
export變量生產(chǎn)案例
定時任務(wù)在執(zhí)行腳本的時候,多數(shù)情況沒辦法加載環(huán)境變量典鸡,特別是/etc/profile被廓。
登錄后怎么操作都對,但是就是放到定時任務(wù)不行萝玷。
命令行:bash登錄方式
1.手工登錄后嫁乘,加載所有環(huán)境變量(~/.bash_profile,~/.bash_rc,/etc/profile,/etc/bashrc)
2.定時任務(wù)執(zhí)行腳本屬于非登錄狀態(tài)(/etc/bashrc)昆婿。
實踐檢驗,定時任務(wù)能否自動加載/etc/bashrc和/etc/profile文件蜓斧。
所有運維都會把變量放到此文件/etc/profile仓蛆,把這個文件里的變量定義
在執(zhí)行的腳本中 重新定義。
具體為crond執(zhí)行Shell時只能識別為數(shù)不多的系統(tǒng)環(huán)境變量挎春,普通環(huán)境變量一般是無法識別的看疙,如果在編寫的腳本中需要使用變量,最好使用export重新聲明下該變量直奋,以確保腳本正確執(zhí)行能庆。以后要將其作為一個開發(fā)基本規(guī)范寫上。
用戶管理知識:
用戶相關(guān)文件:
/etc/passwd 用戶所在文件
/etc/shadow 密碼所在文件
useradd oldboy 添加用戶實際上就是修改上述兩個文件
passwd oldboy? 改密碼實際上就是修改密碼所在文件
用戶組相關(guān)文件:
/etc/group? ? 用戶組所在文件
/etc/gshadow? 用戶組密碼所在文件(廢棄狀態(tài))
useradd oldboy 添加用戶實際上也會修改上述兩個文件(因為要創(chuàng)建同名的用戶組)
groupadd sa 添加用戶組就是修改上述兩個文件
md5sum 給文件設(shè)置指紋(計算和檢查MD5數(shù)字信息)
/etc/passwd文件:
Linux是命令行管理脚线,平時輸入ls,cp搁胆,誰識別,幫我們把我們想要的輸出呢邮绿?
這個工具就是bash(命令行解釋器)
用戶登錄:輸入命令丰涉,希望哪個解釋器解釋(結(jié)尾列決定)
/etc/passwd:bingbing:x:1004:1006::/home/bingbing:/bin/bash
CentOS7默認(rèn)解釋器是bash。
/etc/passwd里的解釋器
[root@oldboyedu ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
bash是sh的擴展斯碌,sh是bash的軟連接一死。
[root@oldboyedu ~]# ls -l /bin/sh
lrwxrwxrwx. 1 root root 4 Mar? 4 11:15 /bin/sh -> bash
/bin/bash? ? /server/scripts/bak.sh
[root@oldboyedu ~]# tail -1 /etc/shadow
bingbing? 用戶
:!!? ? ? 密碼
:17980? ? 最近更改密碼的時間
:0? ? ? ? 禁止修改密碼的天數(shù)
:99999? ? 用戶必須更改口令的天數(shù)
:7? ? ? ? 警告更改密碼的期限
: ? 在用戶密碼過期之后到禁用賬戶的天數(shù)
: ? 從1970年1月1日起,到用戶被禁用的天數(shù)
: ? 保留
/etc/group
/etc/gshadow
[root@oldboyedu ~]# useradd gongli -u 888 -s /sbin/nologin -M
[root@oldboyedu ~]# tail -1 /etc/passwd
gongli:x:888:1007::/home/gongli:/sbin/nologin
bingbing:x:1004:1006::/home/bingbing:/bin/bash
[root@oldboyedu ~]# useradd gongli1 -c "beautify woman" -d /tmp -e '2020/10/20'
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[root@oldboyedu ~]# tail -1 /etc/passwd
gongli1:x:1005:1008:beautify woman:/tmp:/bin/bash
[root@oldboyedu ~]# chage -l gongli1
Last password change : Mar 25, 2019
Password expires : never
Password inactive : never
Account expires : Oct 20, 2020? =================
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
給開發(fā)等人員添加用戶傻唾,盡量給截止時間投慈。
[root@oldboyedu ~]# useradd gongli2 -g incahome
[root@oldboyedu ~]# id gongli2
uid=1006(gongli2) gid=1004(incahome) groups=1004(incahome)
/etc/default/useradd文件 useradd命令的配置文件
默認(rèn)shell就是/bin/bash
為什么默認(rèn)的家目錄在home下
為什么默認(rèn)的家目錄/home/用戶名下面有很多隱藏文件,從哪來的冠骄。
就是/etc/default/useradd文件配置的伪煤。
[root@oldboyedu ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
修改方法:
useradd -D -s /bin/sh? 相當(dāng)于vim編輯/etc/default/useradd文件。
[root@oldboyedu ~]# useradd -D -s /bin/sh
You have new mail in /var/spool/mail/root
[root@oldboyedu ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@oldboyedu ~]# useradd chenglong1
You have new mail in /var/spool/mail/root
[root@oldboyedu ~]# tail -1 /etc/passwd
chenglong1:x:1007:1009::/home/chenglong1:/bin/sh
[root@oldboyedu ~]# chage -l chenglong1
Last password change : Mar 25, 2019
Password expires : never
Password inactive : never
Account expires : Oct 21, 2020
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
/etc/skel目錄凛辣,創(chuàng)建用戶默認(rèn)就會把此目錄下的文件拷貝到/home/用戶名下抱既。
/etc/skel 為每個用戶提供用戶環(huán)境變量的目錄。
[root@oldboyedu ~]# ls /etc/skel -A
.bash_logout? .bash_profile? .bashrc
===================================================
.bash_logout? .bash_profile? .bashrc 用戶環(huán)境變量
登錄系統(tǒng)后扁誓,命令行出現(xiàn)如下提示:為什么防泵?
[root@oldboyedu /home/chenglong1]# su - chenglong1
-sh-4.2$
-sh-4.2$
解答:用戶的環(huán)境變量缺失導(dǎo)致的。
執(zhí)行如下命令解決
-sh-4.2$ cp /etc/skel/.bash* .
-sh-4.2$ source ./.bash_profile ./.bashrc
[chenglong1@oldboyedu ~]$
[chenglong1@oldboyedu ~]$
-sh-4.2$ export PS1='[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\$'
[chenglong1@oldboyedu ~]$
添加用戶要用的文件
/etc/login.defs 了解
添加用戶要用的文件
/etc/login.defs? /etc/skel /etc/default/useradd
編輯/etc/passwd,通過注釋來刪除蝗敢。
#chenglong1:x:1007:1009::/home/chenglong1:/bin/sh
"/etc/passwd" 30L, 1362C written? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
[root@oldboyedu ~]# su - chenglong1
su: user chenglong1 does not exist
[root@oldboyedu ~]# useradd -u 9999 -s /bin/sh -M -g sa -c "老男孩" -e "2019/5/1" zongsheng
[root@oldboyedu ~]# tail -1 /etc/passwd
zongsheng:x:9999:1003:老男孩:/home/zongsheng:/bin/sh
[root@oldboyedu ~]# id zongsheng
uid=9999(zongsheng) gid=1003(sa) groups=1003(sa)
[root@oldboyedu ~]# chage -l zongsheng
Last password change : Mar 25, 2019
Password expires : never
Password inactive : never
Account expires : May 01, 2019
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
usermod -u 8888 -s /bin/bash -m /home/zongsheng -g incahome -c "男孩" -e "2020/5/1"
[root@oldboyedu ~]# usermod -u 8888 -s /bin/bash -g incahome -c "男孩" -e "2020/5/1" zongsheng
[root@oldboyedu ~]# chage -l zongsheng
Last password change : Mar 25, 2019
Password expires : never
Password inactive : never
Account expires : May 01, 2020
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
[root@oldboyedu ~]# id zongsheng
uid=8888(zongsheng) gid=1004(incahome) groups=1004(incahome)
[root@oldboyedu ~]# tail -1 /etc/passwd
zongsheng:x:8888:1004:男孩:/home/zongsheng:/bin/bash
You have new mail in /var/spool/mail/root
usermod -u 8888 -s /bin/bash -g incahome -c "男孩" -e "2020/5/1" zongsheng
usermod -m /home/zongsheng zongsheng
不交互設(shè)置密碼:
方法1:
[root@oldboyedu ~]# echo 123456|passwd --stdin oldgirl
Changing password for user oldgirl.
passwd: all authentication tokens updated successfully.
方法2:
[root@oldboyedu ~]# echo 123456 >pass
[root@oldboyedu ~]# cat pass
123456
[root@oldboyedu ~]# passwd --stdin oldgirl <pass
Changing password for user oldgirl.
passwd: all authentication tokens updated successfully.
[root@oldboyedu ~]# tail -4 /etc/passwd|awk -F ":" '{print $1":oldboy"}' >user.log
[root@oldboyedu ~]# cat user.log
gongli1:oldboy
gongli2:oldboy
chenglong1:oldboy
zongsheng:oldboy
chpasswd對密碼文件的要求是上述user.log
方法1:
[root@oldboyedu ~]# chpasswd<user.log
方法2:
[root@oldboyedu ~]# tail -4 /etc/passwd|awk -F ":" '{print $1":oldboy"}'|chpasswd
批量創(chuàng)建10個用戶捷泞,oldboy01-oldboy10,請設(shè)置和用戶名相同的密碼。
DAY 19
范例14-17:創(chuàng)建新用戶range,要求該用戶7天內(nèi)不能更改密碼寿谴,
60天以后必須修改密碼锁右,過期前10天通知用戶,過期后30天后禁止用戶登錄。
chage -m7 -M60 -W10 -I30 oldboy
聯(lián)系英文:
Options:
? -d, --lastday LAST_DAY? ? ? ? set date of last password change to LAST_DAY
? -E, --expiredate EXPIRE_DATE? set account expiration date to EXPIRE_DATE
? -h, --help? ? ? ? ? ? ? ? ? ? display this help message and exit
? -I, --inactive INACTIVE? ? ? set password inactive after expiration
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? to INACTIVE
? -l, --list? ? ? ? ? ? ? ? ? ? show account aging information
? -m, --mindays MIN_DAYS? ? ? ? set minimum number of days before password
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? change to MIN_DAYS
? -M, --maxdays MAX_DAYS? ? ? ? set maximim number of days before password
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? change to MAX_DAYS
? -R, --root CHROOT_DIR? ? ? ? directory to chroot into
? -W, --warndays WARN_DAYS? ? ? set expiration warning days to WARN_DAYS
[root@oldboyedu ~]# chage -l oldboy
Last password change : Oct 07, 2020
Password expires : never
Password inactive : never
Account expires : Oct 01, 2020
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
You have new mail in /var/spool/mail/root
[root@oldboyedu ~]# chage -m7 -M60 -W10 -I30 oldboy
[root@oldboyedu ~]# chage -l oldboy
Last password change : Oct 07, 2020
Password expires : Dec 06, 2020
Password inactive : Jan 05, 2021
Account expires : Oct 01, 2020
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 10
passwd -n70 -x600 -w100 -i300 oldboy
[root@oldboyedu ~]# passwd -n70 -x600 -w100 -i300 oldboy
Adjusting aging data for user oldboy.
passwd: Success
You have new mail in /var/spool/mail/root
[root@oldboyedu ~]# chage -l oldboy
Last password change : Oct 07, 2020
Password expires : May 30, 2022
Password inactive : Mar 26, 2023
Account expires : Oct 01, 2020
Minimum number of days between password change : 70
Maximum number of days between password change : 600
Number of days of warning before password expires : 100
-n, --minimum DAYS
? ? ? ? ? ? ? This? will? set? the? minimum password lifetime, in days, if the user's account supports password life‐
? ? ? ? ? ? ? times.? Available to root only.
-x, --maximum DAYS
? ? ? ? ? ? ? This will set the maximum password lifetime, in days, if the user's? account? supports? password? life‐
? ? ? ? ? ? ? times.? Available to root only.
-w, --warning DAYS
? ? ? ? ? ? ? This? will? set? the number of days in advance the user will begin receiving warnings that her password
? ? ? ? ? ? ? will expire, if the user's account supports password lifetimes.? Available to root only.
-i, --inactive DAYS
[root@oldboyedu ~]# su - oldboy -c pwd
/home/oldboy
[root@oldboyedu ~]# su - oldboy -c whoami
oldboy
怎么用su咏瑟。
1拂到、先登錄普通用戶,沒事不允許登錄root码泞。
只有執(zhí)行的任務(wù)需要root權(quán)限的時候才允許你登錄root谆焊。
系統(tǒng)維護(hù)通道。
用su管理浦夷,必須知道root密碼,安全隱患辜王。
10個運維劈狐,都得知道root密碼,安全隱患呐馆。
需求:
1肥缔、不用知道root密碼還能管理服務(wù)器。
2汹来、最小化管理服務(wù)器续膳,想關(guān)機,就只給你halt權(quán)限收班。
sudo命令:
可以以最小化的權(quán)限(單個命令)坟岔,執(zhí)行命令時擁有root用戶的權(quán)限
SUID 針對命令,任何用戶執(zhí)行命令都有root身份摔桦。? ? 任何用戶執(zhí)行某個命令:模糊
SUDO 針對用戶社付,給某個用戶以root身份執(zhí)行某個命令。指定用戶執(zhí)行某個命令:具體邻耕。
如何編輯配置sudo鸥咖?
sudo是一個提權(quán)的命令(對應(yīng)權(quán)限通過讀取/etc/sudoers(嚴(yán)格語法)文件實現(xiàn)的)
配置/etc/sudoers可以使用visudo命令,或vim /etc/sudoers(不推薦)
[oldboy@oldboyedu ~]$ ls /root
ls: cannot open directory /root: Permission denied
完成上面的動作兄世。
給oldboy用戶啼辣,針對ls設(shè)置權(quán)限。
visudo進(jìn)入編輯狀態(tài)御滩,100G
## Allow root to run any commands anywhere
root? ? ALL=(ALL)? ? ? ALL
oldboy? ALL=(ALL)? ? ? /usr/bin/ls,/bin/cp? #<===增加一行
用戶? ? ? ? 主機=(角色)? ? ? 命令
注意:
1鸥拧、路徑要全路徑:
which cp查
2、不要vim /etc/sudoers編輯削解,如果非要用編輯完visudo -c檢查語法
oldboy是管理員住涉,并且不要密碼:
oldboy? ALL=(ALL)? ? ? NOPASSWD: ALL
登錄后切到root運行。
[oldboy@oldboyedu ~]$ sudo su - root
Last login: Tue Mar 26 10:32:57 CST 2019 on pts/3
[root@oldboyedu ~]#
為了安全禁止root遠(yuǎn)程連接linux钠绍。
工作中如何登錄舆声?使用普通用戶登錄然后利用sudo提權(quán)到root。
Wecomle to oldboy training 58期。
[oldboy@oldboyedu ~]$ whoami
oldboy
[oldboy@oldboyedu ~]$ sudo ls /root
a.txt? c.txt? data1? etc? ? ? oldboy ? ? oldboy_b ? ? oldboy_soft_link? pass? test.txt ? user.log
b.txt? d? ? ? d.txt? grep.txt? oldboy_1.txt? oldboyedu.txt? oldboy.txt ? ? ? test? test.txt.ori
[oldboy@oldboyedu ~]$
[oldboy@oldboyedu ~]$
[oldboy@oldboyedu ~]$ sudo su -
Last login: Tue Mar 26 11:42:09 CST 2019 on pts/0
[root@oldboyedu ~]#
[root@oldboyedu ~]# su - oldboy
Last login: Tue Mar 26 10:44:08 CST 2019 on pts/3
[oldboy@oldboyedu ~]$ ls /root
ls: cannot open directory /root: Permission denied
[oldboy@oldboyedu ~]$ sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
? ? #1) Respect the privacy of others.
? ? #2) Think before you type.
? ? #3) With great power comes great responsibility.
[sudo] password for oldboy:
Matching Defaults entries for oldboy on oldboyedu:
User oldboy may run the following commands on oldboyedu:
? ? (ALL) /bin/ls
[oldboy@oldboyedu ~]$ sudo ls /root
a.txt? c.txt? data1? etc? ? ? oldboy ? ? oldboy_b ? ? oldboy_soft_link? pass? test.txt ? user.log
b.txt? d? ? ? d.txt? grep.txt? oldboy_1.txt? oldboyedu.txt? oldboy.txt ? ? ? test? test.txt.ori
[oldboy@oldboyedu ~]$ ls /root
ls: cannot open directory /root: Permission denied
[oldboy@oldboyedu ~]$
DAY 20
磁盤歷史和內(nèi)外部物理結(jié)構(gòu)介紹
發(fā)展趨勢? ? ? ? ? 解決辦法
體積更小? ? ? ? ? 存儲密度更高
速度更快? ? ? ? ? 讀寫更靈敏的磁頭媳握,主軸轉(zhuǎn)數(shù)更高碱屁,接口更先進(jìn)
容量更大? ? ? ? ? 存儲密度更高,介質(zhì)更好
使用更安全? ? ? ? 數(shù)據(jù)保存技術(shù)
磁盤的接口類型
IDE? SCCSI(這兩個淘汰了)? SATA 光纖FC SAS?
SSD接口有SATA? PCIE M2
SATA接口是SATA
SAS接口是SAS
磁盤選購小結(jié):
線上的業(yè)務(wù)蛾找,用SAS磁盤娩脾。
線下的業(yè)務(wù),用SATA磁盤打毛,磁帶庫
線上高并發(fā)柿赊,小容量的業(yè)務(wù),SSD磁盤
成本控制思想:根據(jù)數(shù)據(jù)的訪問熱度幻枉,智能分析分層存儲碰声。SATA+SSD
SAS:滿足容量的基礎(chǔ)? 性能中等
SATA理由:1.沒錢。 2.數(shù)據(jù)量少熬甫,數(shù)據(jù)不需要給用戶提供服務(wù)胰挑。 3. 用于備份。
容量性價比高椿肩。
SSD
特點:容量小? 價格貴 速度快瞻颂。
名詞
——————————
一個磁盤有多個盤面,盤面上會有一個讀寫磁頭郑象。(磁頭數(shù)=盤片個數(shù)*2)
不同的盤面的磁道被劃分稱為多個扇形區(qū)域贡这,每個區(qū)域就是一個扇區(qū)
磁盤在格式化時被分成許多同心圓,這些同心圓的軌跡叫做磁道 300-1024
不同盤面的相同半徑的磁道厂榛,叫做柱面藕坯。
一個柱面包含多個磁道,一個磁道包含多個扇區(qū)
數(shù)據(jù)信息記錄可表示為:某磁頭噪沙,某磁道炼彪,某扇面。
磁道:看起來是一個平面圓周形
扇區(qū):不同的磁道被直線分為多個弧形正歼,看起來就是圓弧或扇形 512字節(jié)
柱面:看起來是一個圓柱體
三維位置
————————————
0磁頭0磁道1扇區(qū)? 系統(tǒng)位置
容量計算
——————————————
磁盤大小·
512字節(jié)*每磁道扇區(qū)數(shù)=磁道大小
磁道大小*磁道數(shù)=盤面大小
盤面大小*磁頭數(shù)=磁盤容量
磁盤容量=盤面大小*磁頭數(shù)*磁道數(shù)=512*磁道數(shù)*每磁道扇區(qū)數(shù)
柱面大小=磁道大小*磁頭數(shù)
磁道大小=512*每磁道扇區(qū)數(shù)
磁盤容量=512字節(jié)*每磁道扇區(qū)數(shù)*柱面數(shù)*磁頭數(shù)
讀寫數(shù)據(jù)原理
——————————————
1.讀取同一個盤面的某一磁道
2.若仍未讀取完辐马,切換磁頭,讀取下一個盤面的相同半徑的磁道
3.未仍讀取完局义,切換磁頭到所有盤面的相同半徑的磁道完成喜爷。
4.若仍未讀取完,則切換其他不同半徑的磁道萄唇。
尋道:
按柱面為單位讀寫數(shù)據(jù)檩帐,
即先讀取同一個盤面的某一個磁道,
沒有讀完 就切換磁頭另萤,讀取下一個盤面的相同半徑的磁道湃密,
直到所有盤面相同半徑的磁道讀取完成之后诅挑,如果還沒有完成,就切換其他不同半徑的磁道泛源。
磁頭之間的切換是電子切換拔妥, 磁頭尋道是機械運動。
————————————————————————————————————————————————————————————————
企業(yè)案例:
不要用SATA磁盤做在線高并發(fā)服務(wù)的數(shù)據(jù)存儲或數(shù)據(jù)庫業(yè)務(wù)达箍。
某公司采用SATA做數(shù)據(jù)庫存儲盤没龙,宕機一個月。
5臺SATA盤(raid5) 換成了SAS(raid10)缎玫, 6個月沒出問題硬纤。
1.主庫選擇使用SAS raid10? 從庫SAS raid0
2.當(dāng)數(shù)據(jù)庫使用的引擎是MyISAM 換成Innodb
淘寶分級策略:
根據(jù)數(shù)據(jù)的訪問熱度,智能分析分層存儲赃磨。SATA+SSD
DAY21
Raid是廉價冗余磁盤陣列(Redundant Array of Inexpensive Disk)的簡稱, 有時也簡稱磁盤陣列(Disk Array)筝家。
RAID分為兩類:
軟RAID,系統(tǒng)層面實現(xiàn)的煞躬,性能差。
硬RAID逸邦,硬件層面實現(xiàn)的恩沛,性能好。
? ? ? ? 主板板載RAID:功能弱缕减,0雷客,1
獨立RAID卡:功能強,0,1,5,10 *****工作選擇桥狡。
LVM全稱(Logic Volume Management (Manager))邏輯卷管理,它的最大用途是可以【靈活的管理磁盤的容量】搅裙,讓磁盤分區(qū)可以隨意放大或縮小,便于更好的應(yīng)用磁盤的剩余空間裹芝,如果過于強調(diào)性能與備份部逮,那么還是應(yīng)該使用RAID功能,而不是LVM嫂易。
LVM是軟件層面實現(xiàn)的兄朋,性能太低。性能降低5-10%怜械。
買服務(wù)器插滿磁盤颅和,分區(qū)規(guī)劃好,永遠(yuǎn)都不需要LVM缕允。
RAID1又稱為Mirror或Mirroring(鏡像)峡扩,
它的宗旨是最大限度的保證用戶數(shù)據(jù)的可用性和可修復(fù)性。
RAID1的操作方式是把用戶寫入一個磁盤的數(shù)據(jù)百分之百地自動復(fù)制到另外
一個磁盤上障本,從而實現(xiàn)存儲雙份的數(shù)據(jù)教届。
RAID5描述 中庸
RAID5是一種存儲性能、數(shù)據(jù)安全和存儲成本兼顧的存儲解決方案。
RAID5需要三塊或以上的物理磁盤巍佑,可以提供熱備盤實現(xiàn)故障的恢復(fù)茴迁;
采用【奇偶校驗】,可靠性強萤衰,且只有同時損壞兩塊硬盤時數(shù)據(jù)才會完全損壞堕义,
只損壞一塊硬盤時,系統(tǒng)會根據(jù)存儲的奇偶校驗位重建數(shù)據(jù)脆栋,臨時提供服務(wù)倦卖;此時如果有熱備盤,系統(tǒng)還會自動在熱備盤上重建故障磁盤上的數(shù)據(jù)椿争;
分區(qū)知識:
回憶:
(1)什么是分區(qū)怕膛?
磁盤分區(qū)就相當(dāng)于給磁盤打隔斷。
(2)磁盤和分區(qū)在Linux里的命名秦踪。
IDE /dev/hda hdb
SCSI sda sdb
分區(qū)數(shù)字表示:sda1 sda2 sda3
(3)磁盤分區(qū)類型和特點:
1褐捻、主分區(qū)(primary)P
? 1)系統(tǒng)中必須要存在的分區(qū),系統(tǒng)盤選擇主分區(qū)安裝椅邓。
? 2)數(shù)字編號只能是1-4.sda1柠逞、sda2、sda3景馁、sda4板壮。
? 3)主分區(qū)最多四個,最少一個合住。
2绰精、擴展分區(qū)(extend)E
? 1)相當(dāng)于一個獨立的小磁盤。獨立的分區(qū)表透葛,不能獨立存在笨使。
? 2)有獨立的分區(qū)表。
? 3)不能獨立存在僚害,即不能直接存放數(shù)據(jù)阱表。
? 4)必須在擴展分區(qū)上建立邏輯分區(qū)才能存放數(shù)據(jù)。
? 5)占用主分區(qū)的編號(主分區(qū)+擴展分區(qū))之和最多4個贡珊。
? 6)擴展分區(qū)可以沒有最爬,最多只能有一個。
3门岔、邏輯分區(qū)(logic)L
? 2)數(shù)字編號只能是從5開始爱致。
? 3)存放于擴展分區(qū)之上。
? 4)存放任意普通數(shù)據(jù)寒随。
磁盤分區(qū)注意事項要點
一塊硬盤的分區(qū)方式只能為如下組合之一:
(1)任意多個主分區(qū)糠悯,但要求1≤主分區(qū)數(shù)量≤4帮坚。
例如:一個硬盤可以分為4個主分區(qū)3個主分區(qū)2個主分區(qū)或1個主分區(qū)。
(2)擴展分區(qū)可以和主分區(qū)組合互艾,但要求2≤(主分區(qū)+擴展分區(qū))數(shù)量≤4)试和。
例如:3個主分區(qū)+1個擴展分區(qū)或2個主分區(qū)+1個擴展分區(qū)或1個主分區(qū)+1個擴展分區(qū)。
當(dāng)總分區(qū)的數(shù)量大于4個的時候纫普,必須提前分一個擴展分區(qū)阅悍,擴展分區(qū)最多只能有一個。
(3)如果要分成四個磁盤分區(qū)的話昨稼,那么最多就是可以:
P + P + P + P
P + P + P + E
問題:如果給一個磁盤分6個分區(qū)有哪些方案节视,同時寫出分區(qū)/dev/sda(數(shù)字)。
3P+1E(3L)? 1 2 3 5 6 7
2P+1E(4L)? 12 5678
1P+1E(5L)? 1 56789
分區(qū)分完了假栓,空間還有剩余浪費掉空間寻行。
P + P + P + P
(4)磁盤分區(qū)工作原理:
磁盤是按柱面分區(qū)的。
磁盤分區(qū)登記的地點匾荆,磁盤分區(qū)表拌蜘。
磁盤分區(qū)表存放分區(qū)結(jié)果信息的。
磁盤分區(qū)表位置牙丽,0磁道0磁頭1扇區(qū)(512字節(jié))
占用1扇區(qū)的前446字節(jié)(系統(tǒng)引導(dǎo)信息的)后面的64字節(jié)(分區(qū)表)简卧,
剩下2個字節(jié)分區(qū)結(jié)束標(biāo)志。
磁盤分區(qū)表的容量是有限的剩岳,64字節(jié)贞滨,一個分區(qū)固定占16字節(jié)入热。
64/16=4分區(qū)(主分區(qū)+擴展分區(qū))
(5)磁盤分區(qū)實戰(zhàn)
磁盤分區(qū)關(guān)鍵就是修改64字節(jié)的的分區(qū)表而已拍棕。
磁盤分區(qū)常用命令fdisk,修改MBR分區(qū)表勺良,MBR格式绰播。
缺陷,被修改的磁盤大小不能大于2T尚困。
磁盤分區(qū)其他命令parted,gpt分區(qū)格式蠢箩,既能修改小于2T也能修改大于2T的磁盤。
小于2T就用fdisk
大于2T就用parted
[root@oldboyedu ~]# fdisk -l
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 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 /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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 label type: dos
Disk identifier: 0x000cd234
? Device Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
/dev/sda1? *? ? ? ? 2048? ? ? 526335? ? ? 262144? 83? Linux
/dev/sda2? ? ? ? ? 526336? ? 2099199? ? ? 786432? 82? Linux swap / Solaris
/dev/sda3? ? ? ? 2099200? ? 41943039? ? 19921920? 83? Linux
[root@oldboyedu ~]# fdisk /dev/sdb? #<==開始給sdb磁盤分區(qū)
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xbc9b0906.
Command (m for help): m? #<==查看分區(qū)的幫助信息事甜。
Command action
? a? toggle a bootable flag
? b? edit bsd disklabel
? c? toggle the dos compatibility flag
? d? delete a partition? ? ? ? ? ? #<==刪除一個分區(qū)谬泌。
? g? create a new empty GPT partition table
? G? create an IRIX (SGI) partition table
? l? list known partition types
? m? print this menu? ? ? ? ? ? ? #<==查看分區(qū)的幫助信息。
? n? add a new partition? ? ? ? ? #<==添加一個新分區(qū)逻谦。
? o? create a new empty DOS partition table
? p? print the partition table? ? #<==查看分區(qū)結(jié)果信息掌实。
? q? quit without saving changes? #<==退出不保存。
? s? create a new empty Sun disklabel
? t? change a partition's system id
? u? change display/entry units
? v? verify the partition table
? w? write table to disk and exit? #<==保存并退出邦马。
? x? extra functionality (experts only)
Command (m for help):
開始實踐:
如果給一個磁盤分6個分區(qū)有哪些方案贱鼻,同時寫出分區(qū)/dev/sda(數(shù)字)宴卖。
3P+1E(3L)? 1 2 3 5 6 7
2P+1E(4L)? 12 5678
1P+1E(5L)? 1 56789
用下面方案:
3P+1E(3L)? 1 2 3 5 6 7 每個150M
DAY 22
[root@oldboyedu ~]# parted /dev/sdb? #交互式開始分區(qū)
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
(parted) mklabel gpt? #修改分區(qū)格式為gpt? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No? Yes? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(parted) p? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt? #修改結(jié)果
(parted) mkpart primary 0 480? #創(chuàng)建第一個主分區(qū)480M。
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore #忽略提示邻悬。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(parted) mkpart primary 481 580 #創(chuàng)建第二個主分區(qū)100M症昏。
Warning: You requested a partition from 481MB to 580MB (sectors 939453..1132812).
The closest location we can manage is 481MB to 481MB (sectors 940031..940031).
Is this still acceptable to you?
Yes/No? Y? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I #忽略提示。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(parted) mkpart logic 581 600 #創(chuàng)建一個20M邏輯分區(qū)父丰。
(parted) p? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number? Start? End? ? Size? ? File system? Name? ? Flags
1? ? ? 17.4kB? 480MB? 480MB? ? ? ? ? ? ? ? primary
3? ? ? 481MB? 481MB? 512B? ? ? ? ? ? ? ? primary
2? ? ? 481MB? 580MB? 98.6MB? ? ? ? ? ? ? primary
4? ? ? 581MB? 600MB? 18.9MB? ? ? ? ? ? ? logic
(parted) rm 4? #刪除? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(parted) p? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
分區(qū)被parted搞了肝谭。
修改分區(qū)格式:
(parted) mklabel msdos
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No? Y? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(parted) p? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
創(chuàng)建分區(qū):
[root@oldboyedu ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
? p? primary (0 primary, 0 extended, 4 free)
? e? extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +100M
Partition 1 of type Linux and of size 100 MiB is set
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 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 label type: dos
Disk identifier: 0x000006b6
? Device Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
/dev/sdb1? ? ? ? ? ? 2048? ? ? 206847? ? ? 102400? 83? Linux
Command (m for help): n
Partition type:
? p? primary (1 primary, 0 extended, 3 free)
? e? extended
Select (default p): p
Partition number (2-4, default 2):
First sector (206848-2097151, default 206848):
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-2097151, default 2097151): +100M
Partition 2 of type Linux and of size 100 MiB is set
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 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 label type: dos
Disk identifier: 0x000006b6
? Device Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
/dev/sdb1? ? ? ? ? ? 2048? ? ? 206847? ? ? 102400? 83? Linux
/dev/sdb2? ? ? ? ? 206848? ? ? 411647? ? ? 102400? 83? Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@oldboyedu ~]# ls -l /dev/sdb*
brw-rw---- 1 root disk 8, 16 Mar 29 11:31 /dev/sdb
brw-rw---- 1 root disk 8, 17 Mar 29 11:31 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Mar 29 11:31 /dev/sdb2
[root@oldboyedu ~]# mkfs -t ext4 /dev/sdb1 #格式化ext4文件系統(tǒng) mkfs.ext4
其實關(guān)鍵就是生成一定數(shù)量的Inode和Block。
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done? ? ? ? ? ? ? ? ? ? ? ? ? ?
Writing inode tables: done? ? ? ? ? ? ? ? ? ? ? ? ? ?
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
掛載:? ? 開門础米、開窗住人使用
[root@oldboyedu ~]# mount? /dev/sdb1 /mnt #臨時掛載到/mnt
[root@oldboyedu ~]# df -h #查看掛載結(jié)果
Filesystem? ? ? Size? Used Avail Use% Mounted on
/dev/sda3? ? ? ? 19G? 1.9G? 18G? 10% /
devtmpfs? ? ? ? 980M? 5.0M? 975M? 1% /dev
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /dev/shm
tmpfs? ? ? ? ? 991M? 18M? 973M? 2% /run
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /sys/fs/cgroup
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/0
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/1000
/dev/sdb1? ? ? ? 93M? 1.6M? 85M? 2% /mnt #<====已掛載分苇。
[root@oldboyedu ~]# cat /proc/mounts? #查看掛載結(jié)果
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/sda3 / xfs rw,relatime,attr2,inode64,noquota 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=32,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=19277 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
/dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0
tmpfs /run/user/0 tmpfs rw,nosuid,nodev,relatime,size=202812k,mode=700 0 0
tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=202812k,mode=700,uid=1000,gid=1000 0 0
/dev/sdb1 /mnt ext4 rw,relatime,data=ordered 0 0 #<==已掛載。
[root@oldboyedu ~]# touch /mnt/oldboy? #<==測試屁桑。
[root@oldboyedu ~]# ls /mnt
lost+found? oldboy
[root@oldboyedu /mnt]# umount /mnt
umount: /mnt: target is busy.
? ? ? ? (In some cases useful info about processes that use
? ? ? ? the device is found by lsof(8) or fuser(1))
[root@oldboyedu /mnt]# pwd
/mnt
You have new mail in /var/spool/mail/root
[root@oldboyedu /mnt]# umount -lf /mnt? ? #<==強制卸載
[root@oldboyedu /mnt]# df -h
Filesystem? ? ? Size? Used Avail Use% Mounted on
/dev/sda3? ? ? ? 19G? 1.9G? 18G? 10% /
devtmpfs? ? ? ? 980M? 5.0M? 975M? 1% /dev
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /dev/shm
tmpfs? ? ? ? ? 991M? 18M? 973M? 2% /run
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /sys/fs/cgroup
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/0
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/1000
[root@oldboyedu ~]# mount /dev/sdb2 /opt? #沒有格式化沒法掛載
mount: /dev/sdb2 is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
[root@oldboyedu ~]# mkfs.xfs /dev/sdb2? #格式化xfs文件系統(tǒng)
meta-data=/dev/sdb2? ? ? ? ? ? ? isize=512? ? agcount=4, agsize=6400 blks
? ? ? ? =? ? ? ? ? ? ? ? ? ? ? sectsz=512? attr=2, projid32bit=1
? ? ? ? =? ? ? ? ? ? ? ? ? ? ? crc=1? ? ? ? finobt=0, sparse=0
data? ? =? ? ? ? ? ? ? ? ? ? ? bsize=4096? blocks=25600, imaxpct=25
? ? ? ? =? ? ? ? ? ? ? ? ? ? ? sunit=0? ? ? swidth=0 blks
naming? =version 2? ? ? ? ? ? ? bsize=4096? ascii-ci=0 ftype=1
log? ? ? =internal log? ? ? ? ? bsize=4096? blocks=855, version=2
? ? ? ? =? ? ? ? ? ? ? ? ? ? ? sectsz=512? sunit=0 blks, lazy-count=1
realtime =none? ? ? ? ? ? ? ? ? extsz=4096? blocks=0, rtextents=0
[root@oldboyedu ~]# mount -t xfs /dev/sdb2 /opt
You have new mail in /var/spool/mail/root
[root@oldboyedu ~]# df -h|grep opt
/dev/sdb2? ? ? ? 97M? 5.3M? 92M? 6% /opt
[root@oldboyedu ~]# touch /opt/oldgirl
[root@oldboyedu ~]# ls /opt
oldgirl
如何開機自動掛載医寿?
/etc/fstab 開機自動掛載
幾列? 6列
[root@oldboyedu ~]# cat /etc/fstab
UUID=3a3a295f-88f8-456d-94dc-1a3eeb517c02 /? ? ? ? ? ? xfs? ? defaults? ? ? ? ? 0? ? ? ? ? ? 0
UUID=fd2e0ca7-32be-425f-86a2-85c02b9ec5ea /boot? ? ? ? xfs? ? defaults? ? ? ? ? 0? ? ? ? ? ? 0
UUID=79a3924b-739e-48dc-ab0c-0444b9ac6591 swap? ? ? ? swap? ? defaults? ? ? ? ? 0? ? ? ? ? ? 0
設(shè)備? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 掛載點? 文件系統(tǒng)類型? 默認(rèn)掛載選項? 是否備份? 是否開機磁盤檢查
/dev/sdb2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /opt? ? ? ? xfs? ? defaults? ? ? ? ? 0? ? ? 0
mount -t xfs /dev/sdb2 /opt
[root@oldboyedu ~]# blkid
/dev/sdb1: UUID="a45b004f-2322-4dc4-a281-2a212dd2ab79" TYPE="ext4"
/dev/sdb2: UUID="7daf8142-b641-4b60-a287-4e08dfa18611" TYPE="xfs"
/dev/sda1: UUID="fd2e0ca7-32be-425f-86a2-85c02b9ec5ea" TYPE="xfs"
/dev/sda2: UUID="79a3924b-739e-48dc-ab0c-0444b9ac6591" TYPE="swap"
/dev/sda3: UUID="3a3a295f-88f8-456d-94dc-1a3eeb517c02" TYPE="xfs"
[root@oldboyedu ~]# tail -1 /etc/fstab
/dev/sdb2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /opt? ? ? ? ? ? ? ? ? ? xfs? ? defaults? ? ? ? 0 0
mount -a 可以將fstab里的信息掛載蘑斧。
放入/etc/rc.local 實現(xiàn)自動掛載 但不推薦靖秩。
/sbin/mount -t xfs /dev/sdb2 /opt
查看:
[root@oldboyedu ~]# df -h
Filesystem? ? ? Size? Used Avail Use% Mounted on
/dev/sda3? ? ? ? 19G? 1.9G? 18G? 10% /
devtmpfs? ? ? ? 980M? ? 0? 980M? 0% /dev
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /dev/shm
tmpfs? ? ? ? ? 991M? 9.6M? 981M? 1% /run
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /sys/fs/cgroup
/dev/sdb2? ? ? ? 97M? 5.3M? 92M? 6% /opt
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/0
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/1000
[root@oldboyedu ~]# df -i
Filesystem? ? ? Inodes IUsed? IFree IUse% Mounted on
/dev/sda3? ? ? 9960960 74572 9886388? ? 1% /
devtmpfs? ? ? ? 250820? 390? 250430? ? 1% /dev
tmpfs? ? ? ? ? 253514? ? 1? 253513? ? 1% /dev/shm
tmpfs? ? ? ? ? 253514? 724? 252790? ? 1% /run
tmpfs? ? ? ? ? 253514? ? 16? 253498? ? 1% /sys/fs/cgroup
/dev/sdb2? ? ? ? 51200? ? 4? 51196? ? 1% /opt
/dev/sda1? ? ? 131072? 332? 130740? ? 1% /boot
tmpfs? ? ? ? ? 253514? ? 1? 253513? ? 1% /run/user/0
tmpfs? ? ? ? ? 253514? ? 1? 253513? ? 1% /run/user/1000
[root@oldboyedu ~]# blkid
/dev/sdb1: UUID="a45b004f-2322-4dc4-a281-2a212dd2ab79" TYPE="ext4"
/dev/sdb2: UUID="7daf8142-b641-4b60-a287-4e08dfa18611" TYPE="xfs"
/dev/sda1: UUID="fd2e0ca7-32be-425f-86a2-85c02b9ec5ea" TYPE="xfs"
/dev/sda2: UUID="79a3924b-739e-48dc-ab0c-0444b9ac6591" TYPE="swap"
/dev/sda3: UUID="3a3a295f-88f8-456d-94dc-1a3eeb517c02" TYPE="xfs"
查看文件系統(tǒng)內(nèi)部細(xì)節(jié):
[root@oldboyedu ~]# dumpe2fs /dev/sdb1 #查看ext文件系統(tǒng)內(nèi)部細(xì)節(jié)
[root@oldboyedu ~]# dumpe2fs /dev/sdb1|egrep -i "size"
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem features:? ? ? has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Block size:? ? ? ? ? ? ? 1024
Fragment size:? ? ? ? ? ? 1024
Group descriptor size:? ? 64
Flex block group size:? ? 16
Inode size: ? ? ? ? ? 128
Journal size:? ? ? ? ? ? 4096k
[root@oldboyedu ~]# xfs_
xfs_admin? ? ? xfs_db? ? ? ? xfs_fsr? ? ? ? xfs_io? ? ? ? xfs_metadump? xfs_quota? ? ?
xfs_bmap? ? ? xfs_estimate? xfs_growfs? ? xfs_logprint? xfs_mkfile? ? xfs_repair? ?
xfs_copy? ? ? xfs_freeze? ? xfs_info? ? ? xfs_mdrestore? xfs_ncheck? ? xfs_rtcp? ? ?
[root@oldboyedu ~]# xfs_
[root@oldboyedu ~]# xfs_info /dev/sda1
meta-data=/dev/sda1? ? ? ? ? ? ? isize=512? ? agcount=4, agsize=16384 blks
? ? ? ? =? ? ? ? ? ? ? ? ? ? ? sectsz=512? attr=2, projid32bit=1
? ? ? ? =? ? ? ? ? ? ? ? ? ? ? crc=1? ? ? ? finobt=0 spinodes=0
data? ? =? ? ? ? ? ? ? ? ? ? ? bsize=4096? blocks=65536, imaxpct=25
? ? ? ? =? ? ? ? ? ? ? ? ? ? ? sunit=0? ? ? swidth=0 blks
naming? =version 2? ? ? ? ? ? ? bsize=4096? ascii-ci=0 ftype=1
log? ? ? =internal? ? ? ? ? ? ? bsize=4096? blocks=855, version=2
? ? ? ? =? ? ? ? ? ? ? ? ? ? ? sectsz=512? sunit=0 blks, lazy-count=1
realtime =none? ? ? ? ? ? ? ? ? extsz=4096? blocks=0, rtextents=0
[root@oldboyedu ~]# fsck
fsck? ? ? ? fsck.btrfs? fsck.cramfs? fsck.ext2? ? fsck.ext3? ? fsck.ext4? ? fsck.minix? fsck.xfs? ?
[root@oldboyedu ~]# fsck
fsck 磁盤檢查和修復(fù)
1、正常的磁盤不能操作竖瘾。
2沟突、卸載掛載點在操作
[root@oldboyedu ~]# fsck -a /dev/sdb1
fsck from util-linux 2.23.2
/dev/sdb1: clean, 12/25688 files, 8896/102400 blocks
[root@oldboyedu ~]# mount /dev/sdb1 /mnt
[root@oldboyedu ~]# fsck -a /dev/sdb1
fsck from util-linux 2.23.2
/dev/sdb1 is mounted.
e2fsck: Cannot continue, aborting.
[root@oldboyedu ~]# e2fsck /dev/sdb1
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb1: clean, 12/25688 files, 8896/102400 blocks
[root@oldboyedu ~]# fsck -a /dev/sdb1
fsck from util-linux 2.23.2
/dev/sdb1: clean, 12/25688 files, 8896/102400 blocks
[root@oldboyedu ~]# xfs_repair /dev/sdb2
xfs_repair: /dev/sdb2 contains a mounted filesystem
xfs_repair: /dev/sdb2 contains a mounted and writable filesystem
fatal error -- couldn't initialize XFS library
[root@oldboyedu ~]# umount /opt
[root@oldboyedu ~]# xfs_repair /dev/sdb2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
? ? ? ? - zero log...
? ? ? ? - scan filesystem freespace and inode maps...
? ? ? ? - found root inode chunk
Phase 3 - for each AG...
? ? ? ? - scan and clear agi unlinked lists...
? ? ? ? - process known inodes and perform inode discovery...
? ? ? ? - agno = 0
? ? ? ? - agno = 1
? ? ? ? - agno = 2
? ? ? ? - agno = 3
? ? ? ? - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
? ? ? ? - setting up duplicate extent list...
? ? ? ? - check for inodes claiming duplicate blocks...
? ? ? ? - agno = 0
? ? ? ? - agno = 1
? ? ? ? - agno = 2
? ? ? ? - agno = 3
Phase 5 - rebuild AG headers and trees...
? ? ? ? - reset superblock...
Phase 6 - check inode connectivity...
? ? ? ? - resetting contents of realtime bitmap and summary inodes
? ? ? ? - traversing filesystem ...
? ? ? ? - traversal finished ...
? ? ? ? - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done
==============================指定塊大小和inode大小格式===========================================
[root@oldboyedu ~]# mkfs -t ext4 -b 4096 -I 512 /dev/sdb3
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
38400 inodes, 38400 blocks
1920 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=39845888
2 block groups
32768 blocks per group, 32768 fragments per group
19200 inodes per group
Superblock backups stored on blocks:
32768
Allocating group tables: done? ? ? ? ? ? ? ? ? ? ? ? ? ?
Writing inode tables: done? ? ? ? ? ? ? ? ? ? ? ? ? ?
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[root@oldboyedu ~]# dumpe2fs /dev/sdb3|egrep -i "size"
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem features:? ? ? has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Block size:? ? ? ? ? ? ? 4096
Fragment size:? ? ? ? ? ? 4096
Group descriptor size:? ? 64
Flex block group size:? ? 16
Inode size: ? ? ? ? ? ? ? 512
Required extra isize:? ? 28
Desired extra isize:? ? ? 28
Journal size:? ? ? ? ? ? 16M
文件刪除原理
no space left on device.
swap作用,內(nèi)存不夠時候捕传,用來充當(dāng)內(nèi)存惠拭,一般內(nèi)存1.5倍。大于8G給8G
將來JAVA服務(wù)庸论,內(nèi)存泄漏职辅。。聂示。
swap就會占用域携。。鱼喉。操作系統(tǒng)性能下降
[root@oldboyedu ~]# free -m
? ? ? ? ? ? ? total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available
Mem:? ? ? ? ? 1980? ? ? ? 143? ? ? ? 1689? ? ? ? ? 9? ? ? ? 146? ? ? ? 1671
Swap:? ? ? ? ? 767? ? ? ? ? 0? ? ? ? 767
增加swap分區(qū) 100M
[root@oldboyedu ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
? p? primary (3 primary, 0 extended, 1 free)
? e? extended
Select (default e): p
Selected partition 4
First sector (718848-2097151, default 718848):
Using default value 718848
Last sector, +sectors or +size{K,M,G} (718848-2097151, default 2097151): +150M
Partition 4 of type Linux and of size 150 MiB is set
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 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 label type: dos
Disk identifier: 0x000006b6
? Device Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
/dev/sdb1? ? ? ? ? ? 2048? ? ? 206847? ? ? 102400? 83? Linux
/dev/sdb2? ? ? ? ? 206848? ? ? 411647? ? ? 102400? 83? Linux
/dev/sdb3? ? ? ? ? 411648? ? ? 718847? ? ? 153600? 83? Linux
/dev/sdb4? ? ? ? ? 718848? ? 1026047? ? ? 153600? 83? Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@oldboyedu ~]# partprobe /dev/sdb
[root@oldboyedu ~]# mkswap /dev/sdb4
Setting up swapspace version 1, size = 153596 KiB
no label, UUID=2d1ac352-4cc0-4727-8318-5526a3c309c2
[root@oldboyedu ~]# swapon -a /dev/sdb4
You have new mail in /var/spool/mail/root
[root@oldboyedu ~]# free -m
? ? ? ? ? ? ? total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available
Mem:? ? ? ? ? 1980? ? ? ? 144? ? ? ? 1673? ? ? ? ? 19? ? ? ? 162? ? ? ? 1658
Swap:? ? ? ? ? 917? ? ? ? ? 0? ? ? ? 917