定時任務、用戶管理、磁盤介紹

1、階段知識回顧java

服務器硬件,提高用戶的體驗(大型網站門戶網站數據放在內存,中小型企業放在磁盤)儘可能把請求往前推:memcached,redisnode

Buffer與Cache區別:mysql

buffer:觀看視頻的時候 轉圈,數據放在你的內存,存放這些數據的空間buffer區域 緩衝區,bufferinglinux

cache:提升觀看速度 ,主要是用來給用戶讀取在內存中的區域cache,緩存區。web

寫buffer 讀cache面試

寫緩衝 讀緩存redis

radis卡:sql

查看端口是否開啓:telnet,netstat -lntp ,ss -lntupshell

ps -ef :正在運行的進程。數據庫

安裝常見軟件:

[root@oldboy-01 ~]# yum install tree telnet nc nmap lrzsz dos2unix -y

nc與telnet用法基本相同。

nmap -p22 10.0.0.201 查看端口是否開啓

lrzssz :rz:上傳

sz:下載,sz /etc/hosts

永久修改主機名:/etc/sysconfig/network,修改配置文件。

修改主機名解析:/etc/hosts

幫助命令:

man ls,ls --help

vim 相關知識:

光標移動:

左下右上:hjkl

gg:第一行

G:最後一行,100G

光標移動到行尾:$

光標移動到行首:0或者^

vim編譯模式:

當前行下一行插入一行並進入編輯:o

光標位置至行尾刪除並進入編輯:C

光標位置至行尾位置刪除,不進入編輯:D,$d

光標移動至行尾,並進入編輯模式:A

複製光標所在行:yy

黏貼:p,屢次黏貼3p,4p

刪除/剪切:dd

刪除當前行至文件尾部:dG

vim常見故障:

編輯模式查找:/

繼續向下查找:n

繼續向上查找:N

撤銷當前的操做:u

撤銷剛纔的操做:ctrl+r

2、定時任務

(一)定時任務介紹

crond

atd:一次性

ana:不是7x24小時服務器

crond:

[root@oldboy-01 ~]# rpm -qa | grep cronie
cronie-1.4.4-16.el6_8.2.x86_64
cronie-anacron-1.4.4-16.el6_8.2.x86_64
[root@oldboy-01 ~]# rpm -ql cronie
/etc/cron.d
/etc/cron.d/0hourly
/etc/cron.deny
/etc/pam.d/crond
/etc/rc.d/init.d/crond
/etc/sysconfig/crond
/usr/bin/crontab
/usr/sbin/crond
/usr/share/doc/cronie-1.4.4
/usr/share/doc/cronie-1.4.4/AUTHORS
/usr/share/doc/cronie-1.4.4/COPYING
/usr/share/doc/cronie-1.4.4/ChangeLog
/usr/share/doc/cronie-1.4.4/INSTALL
/usr/share/doc/cronie-1.4.4/README
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/man/man8/cron.8.gz
/usr/share/man/man8/crond.8.gz
/var/spool/cron
[root@oldboy-01 ~]#

系統的定時任務:系統會自動運行裏面的內容,系統中毒的時候。

/etc/cron.hourly

/etc/cron.daily

/etc/cron.weekly

/etc/cron.monthly

系統定時任務+logrotate命令完成對日誌的日誌切割/日誌輪詢。

/etc/crontat #系統定時任務的配置文件之一。

用戶定時任務:

[root@oldboy-01 ~]# crontab -l

編輯模式:

[root@oldboy-01 ~]# crontab -e

定時任務存放的位置:

[root@oldboy-01 ~]# cat /var/spool/cron/root #root用戶名

確認crond正在運行:

方法1:

[root@oldboy-01 ~]# /etc/init.d/crond status

方法2:

[root@oldboy-01 ~]# ps -ef | grep crond

查看是否開機自啓動:

[root@oldboy-01 ~]# chkconfig | grep cron

crontab -r #刪除全部定時任務,沒有提示確認。

crontab 命令:有語法檢查功能。

crontab -e :==vim /var/spool/cron/root

crontab -l :==cat /var/spool/cron/root

定時任務的日誌文件:

/var/log/cron

定時任務黑名單,哪些用戶禁止使用定時任務:

/etc/cron.deny#用戶的名字寫進去

(二)定時任務格式

什麼時間作什麼事?

格式:時間 命令

時間:分、時、日、月、星期(0-6)

避免日和星期同時寫入。

定時任務中特殊符號:

星號(*):表示每的意思。

斜線(/n):每隔n

crontab中命令使用絕對路徑

[root@oldboy-01 ~]# crontab -e
#print name to file by cyc
*/3 * * * * /usr/sbin/ntpdate ntp1.aliyun.com

查看日誌:

[root@oldboy-01 ~]# tail -f /var/log/cron

減號(-):表示範圍 :

00 09-11 * * * cmd,整時運行;* 09-11 * * cmd,每分鐘運行

逗號(,):不連續的範圍,如:7,9,11等。

例子:* * * * * echo oldboy >> /oldboy.txt #每分鐘將名字追加到oldboy.txt中。

定時任務注意事項:

①測試號命令

②命令放入腳本中

③測試腳本

④檢查結果

(三)定時任務九局箴言

①定時任務以前加註釋

②使用腳本替代命令定時任務。腳本通常放在,/server/scripts。使用sh命令進行執行。

③定時任務date中的%百分號。默認表示換行,因此須要在%號前加撬棍。date +%F

④運行腳本使用,/bin/sh

⑤定時任務中命令或者腳本結果(正確錯誤)定向到黑洞(>/dev/null 2>&1),或者定向到文件:>/oldboy.txt 2>&1。

若是不定向:

郵件的軟件沒有開啓:大量小文件放在:[root@oldboy-01 ~]# ll /var/spool/postfix/maildrop/

郵件的軟件開啓:會有 you have new mail in /var/spool/mail/root

快捷鍵:A,光標移動到行尾,並進入編輯模式。DG:刪除當前行至文件尾部。

⑥避免沒必要要的程序及命令輸出。如:tar zcf,tar zcvf

⑦打包壓縮使用相對路徑(切換到目標目錄的上一級打包目錄)

cd /進入到被打包目錄的上一級目錄

cd /

tar zcf /tmp/ser-$(date +%F).tar.gz /etc/services

cd / && tar zcf /tmp/ser-$(date +%F).tar.gz /etc/services

⑧定時任務腳本中程序文件,儘可能使用絕對路徑

⑨系統與命令位置有關的環境變量問題

定時任務運行腳本的時候能夠識別的path只有/usr/bin 和/bin

定時任務腳本中的ifconfig ip ntpdate 提示command not found

解決方法:

使用絕對路徑,/sbin/ifconfig 使用絕對路徑。

在腳本開頭從新定義一個PATH。export PATH=/usr/local/sbin ...//

/bin /sbin

/usr/bin /usr/sbin

/usr/local/bin /usr/local/sbin

JAVA tomcat 裏面通常須要從新定義path環境變量

ifconfig eth0 | awk -F '[ :]+' 'NR==2{print $4}'

java環境變量:在腳本開頭添加export的環境變量。

rm -f #刪除大量文件會報錯。

須要:ls | xargs rm -f

(三)用戶管理

(1)開機自啓動

①/etc/rc.local

②經過chkconfig

如何讓腳本放在chkconfig

①腳本放在/etc/init.d/oldboyd

vim /etc/init.d/oldboyd

添加頭:#chkconfig: 2345 99 99

echo oldboy

②增長腳本執行權限

chmod +x /etc/init.d/oldboyd

③chkconfig --add oldboyd

④查看:chkconfig | grep oldboyd

chkconfig 背後的故事

s--stop

k--kill

[root@oldboy-01 maildrop]# chkconfig iptables on
[root@oldboy-01 maildrop]# ll /etc/rc3.d/ | grep ipt
lrwxrwxrwx. 1 root root 18 Dec 18 00:36 S08iptables -> ../init.d/iptables
[root@oldboy-01 maildrop]# chkconfig iptables off
[root@oldboy-01 maildrop]# ll /etc/rc3.d/ | grep ipt
lrwxrwxrwx. 1 root root 18 Dec 18 00:37 K92iptables -> ../init.d/iptables
[root@oldboy-01 maildrop]#

驗證:

[root@oldboy-01 maildrop]# ls -l /etc/rc3.d/ | grep ipt
lrwxrwxrwx. 1 root root 18 Dec 18 00:37 K92iptables -> ../init.d/iptables
lrwxrwxrwx. 1 root root 20 Dec 18 00:43 S08iptables -> /etc/init.d/iptables
[root@oldboy-01 maildrop]# chkconfig | grep ipt
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@oldboy-01 maildrop]# mv /etc/rc3.d/K92iptables /tmp/
[root@oldboy-01 maildrop]# mv /etc/rc3.d/S08iptables /tmp/
[root@oldboy-01 maildrop]# chkconfig | grep ipt
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@oldboy-01 maildrop]# ls -l /etc/rc3.d/ | grep ipt
[root@oldboy-01 maildrop]# 
[root@oldboy-01 maildrop]# 
[root@oldboy-01 maildrop]# ln -s /etc/init.d/iptables /etc/rc3.d/S08iptables
[root@oldboy-01 maildrop]# chkconfig | grep ipt
iptables        0:off   1:off   2:off   3:on    4:off   5:off   6:off
[root@oldboy-01 maildrop]#

cat /etc/init.d/iptables

08開機順序

92關機順序

(2)用戶管理

用戶分類:

root:uid,0

虛擬用戶:uid,1-499

用戶的命令解釋器:/sbin/nologin

普通用戶:uid>500

用戶相關文件:

/etc/passwd 用戶信息

/etc/shadown 用戶密碼信息

/etc/group 用戶的用戶信息

/etc/gshadow 用戶組密碼信息

[root@oldboy-01 maildrop]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@oldboy-01 maildrop]# tail -2 /etc/passwd
qemu:x:107:107:qemu user:/:/sbin/nologin
lisi:x:1011:1011::/home/lisi:/bin/bash
[root@oldboy-01 maildrop]#

第一列:用戶

第二列:密碼,x

第三列:uid,1011

第四列:gid,1011

第五列:用戶說明信息(手工添加默認空,系統添加用戶有),添加的用戶空的,root是root

第六列:家目錄,:/home/lisi

第七列:用戶使用的命令解釋器,shell,/bin/bash,/sbin/nologin(虛擬用戶)

[root@oldboy-01 maildrop]# cat /etc/shells 
/bin/sh
/bin/bash      默認
/sbin/nologin  虛擬機用戶
/bin/dash      ubuntu
/bin/tcsh      unix
/bin/csh       unix 升級版

/etc/default/useradd:添加用戶的時候默認信息

[root@oldboy-01 ~]# ls -la /etc/skel/

drwxr-xr-x. 2 root root 4096 Nov 2 2018 .

drwxr-xr-x. 84 root root 12288 Dec 15 16:29 ..

-rw-r--r--. 1 root root 18 Mar 23 2017 .bash_logout #用戶退出會運行這裏的命令

-rw-r--r--. 1 root root 176 Mar 23 2017 .bash_profile #/etc/profile

-rw-r--r--. 1 root root 124 Mar 23 2017 .bashrc #/etc/bashrc

/etc/skel:

新用戶的老家的模板(新用戶家目錄的樣子)

請問以下登陸環境故障的原理及解決辦法?

-bash-4.1$

解決辦法:

①cp /home/oldboy/.bash* ~

②cp /etc/skel/.bash* ~

用戶管理之添加和刪除用戶:

點(當前目錄),星號(*)全部

useradd :

-u:指定uid

-s:指定使用的shell,默認/bin/bash,能夠手工設置/sbin/nologin

-M:表示不建立家目錄,通常建立虛擬用戶使用

-g:指定用戶屬於組(組名字)添加用戶的時候,默認建立一個用戶名同樣的組

-c:建立用戶指定用戶信息

添加一個用戶oldboy666指定uid爲888禁止用戶登陸系統,不建立家目錄。

[root@oldboy-01 ~]# useradd -s /sbin/noloin -u 888 oldboy666 -M 
[root@oldboy-01 ~]# id oldboy666
uid=888(oldboy666) gid=1013(oldboy666) groups=1013(oldboy666)
[root@oldboy-01 ~]#

[root@oldboy-01 ~]# userdel oldboy666

後者在/etc/passwd 相應的用戶名加註釋

userdel -r :刪除用戶全部信息

usermod:修改用戶信息

-s:修改用戶使用的shell

-g:修改用戶組

-G:修改用戶屬於多個組

[root@oldboy-01 ~]# usermod -c 'xuniyonghu' zhangsan666
[root@oldboy-01 ~]# grep zhangsan666 /etc/passwd
zhangsan666:x:1012:1012:xuniyonghu:/home/zhangsan666:/bin/bash
[root@oldboy-01 ~]# 
[root@oldboy-01 ~]# usermod -g oldboy zhangsan666
[root@oldboy-01 ~]# id zhangsan666
uid=1012(zhangsan666) gid=500(oldboy) groups=500(oldboy)
[root@oldboy-01 ~]#
[root@oldboy-01 ~]# usermod -G root,alex888,alex666 zhangsan666
[root@oldboy-01 ~]# id zhangsan666
uid=1012(zhangsan666) gid=500(oldboy) groups=500(oldboy),0(root),1013(alex666),1014(alex888)
[root@oldboy-01 ~]#

設置用戶密碼:

方法1:
passwd oldboy
方法2
[root@oldboy-01 ~]# echo '123' | passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
[root@oldboy-01 ~]# history -c

密碼保存工具:keepass,

用戶管理之如何加強系統安全性和指紋驗證

①最小化安裝

②保護好root,進制root遠程登陸

修改遠程鏈接端口22

/var/log/secure 登陸日誌分析

③文件權限:

給系統經常使用命令+i

系統配置文件+a

④給文件或者命令作一個指紋

[root@oldboy-01 oldboy]# md5sum oldboy.txt
9cd0ec3f04d4b8ed2d752663b91bdc80  oldboy.txt
[root@oldboy-01 oldboy]# echo 'zhangsan' >> oldboy.txt
[root@oldboy-01 oldboy]# md5sum oldboy.txt
890e6d1a7a855c028d1186c3f0e3aa6e  oldboy.txt
[root@oldboy-01 oldboy]# md5sum oldboy.txt > polic.log
[root@oldboy-01 oldboy]# cat polic.log 
890e6d1a7a855c028d1186c3f0e3aa6e  oldboy.txt
[root@oldboy-01 oldboy]# md5sum -c polic.log
oldboy.txt: OK
[root@oldboy-01 oldboy]# echo 'zhangsa1n' >> oldboy.txt
[root@oldboy-01 oldboy]# md5sum -c polic.log
oldboy.txt: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
[root@oldboy-01 oldboy]# 
放入定時任務+md5sum定時檢測

面試題:

chown:修改文件或者目錄全部者和屬於的用戶組

-R:遞歸修改文件和目錄的全部者和用戶組

chown oldboy oldboy.txt#只修改文件的全部者

chown oldboy.oldboy oldboy.txt #修改用戶的全部者和所屬主

用戶組相關:

groupadd

建立用戶組

-g指定用戶組的gid數字

添加一個虛擬用戶mysql,指定用戶uid gid 都是999

方法1
[root@oldboy-01 /]# useradd -s /sbin/nologin -u 997 -M mysql
[root@oldboy-01 /]# id mysql
uid=997(mysql) gid=997(mysql) groups=997(mysql)
方法2
[root@oldboy-01 /]# groupadd -g 996 mysql1
[root@oldboy-01 /]# useradd -s /sbin/nologin -M -u 996 -g mysql mysql1
[root@oldboy-01 /]# id mysql1
uid=996(mysql1) gid=997(mysql) groups=997(mysql)
[root@oldboy-01 /]#

查詢用戶信息:

id 用戶

/etc/group :查看用戶裏的用戶

w:

[root@oldboy-01 /]# w
 02:33:33 up 1 day, 12:42,  1 user,  load average: 0.08, 0.08, 0.01
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         Wed01    0.00s  0.27s  0.01s w
[root@oldboy-01 /]#

第一行:

第一列:當前系統時間

第二列:系統運行時間

第三列:遠程鏈接用戶數量

第四列:系統負載信息

第二行:

第一列:遠程登陸用戶名字

第二列:tty

第三列:從哪裏登陸的

最後一列:用戶在作什麼。

查詢系統性能命令:

w

uptime

top:uptime,free h,ps -ef,M,P

htop

iotop:顯示系統中每一個進程使用的磁盤io

iftop:查看網絡流量

last:查看用戶登陸信息

lastlog:系統中全部用戶最近登陸信息

Linux尚方寶劍(sudo)

ll /var/log/secure

su與su - :表示切換用戶的時候更新環境變量

如何使用:

[oldboy@oldboy-01 ~]$ 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:

配置sudu:

[root@oldboy-01 ~]# visudo
  93 oldboy  ALL=(ALL)    /bin/ls,/bin/touch
 [root@oldboy-01 ~]#visudo -c

使用步驟:

[root@oldboy-01 ~]# su - oldboy
[oldboy@oldboy-01 ~]$ sudo -l
[sudo] password for oldboy: 
Matching Defaults entries for oldboy on this host:
    !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME
    HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME
    LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
    LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
    LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS
    _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User oldboy may run the following commands on this host:
    (ALL) /bin/ls, (ALL) /bin/touch
[oldboy@oldboy-01 ~]$ sudo ls /root/
access.log   etc.bak.gz      luffy.city     oldboy.txt-hard
anaconda-ks.cfg  ifcfg-eth0      oldboy-2017-10-20  oldboy.txt.hard
data         install.log         oldboy.txt     oldboy.txt-soft
etc.bak2.gz  install.log.syslog  oldboy.txt.bak
[oldboy@oldboy-01 ~]$ sudo touch /root/alex.txt
[oldboy@oldboy-01 ~]$ sudo ls /root/alex.txt
/root/alex.txt
[oldboy@oldboy-01 ~]$

visudo ==vim /etc/sudoers

受權命令:oldboy ALL=(ALL) /bin/ls, /bin/touch

C:刪除光標位置至行尾,並進入編輯模式。

A:進入行尾,並進入編輯模式。

若是受權全部:

oldboy ALL=(ALL) /bin/,而且排除su

94 oldboy ALL=(ALL)     /bin/*, !/bin/su
#根據ls -/bin  查看可使用的命令。

正常sudo須要密碼,在權限前增長:(NOPASSWD:),能夠不用使用輸入密碼。

(四)記錄用戶的操做記錄

①齊治的堡壘機:商業

②gateone web跳板機

③py開發的開源跳板機

Jumpserver部署

crazyEYC

④shell跳板機

3、磁盤

(一)磁盤結構

(1)磁盤基礎

分類:機械硬盤,固態硬盤

磁盤外部結構:盤片,主軸,磁頭

磁盤接口:

SAS:服務器標配。生成環境。15k轉數。

SATA:家庭電腦多用,容量大,價格便宜。性能要求不高,容量不大,線下服務。

SCSI:速度較快,造價較高。

PCI-E:通常爲固態硬盤,較快。較貴。大規模讀寫。高併發。

5400:rpm,每分鐘轉數。

磁盤內部組成:磁頭,磁道,扇區

盤面數量==磁頭數量,主要用來讀寫速度。

磁道:主要存放數據,以主軸爲圓心的的區域。

扇區:一個磁盤上最小存儲數據單位。默認512字節。

柱面:相同的盤面組成圓柱體。柱面的數量和磁道的數量相等。

磁頭讀取數據是按照柱面進行讀寫。磁頭的切換從0磁盤切換爲1磁頭。磁道的變化(尋道)

單元塊:表示一個柱面的大小。

(2)機械磁盤和固態硬盤區別

機械硬盤:容量大的價格低,抗打擊能力弱,讀寫速度慢,數據恢復容易,無限壽命。

固態機械硬盤:容量小价格貴,抗打擊能力強,讀寫速度快,數據恢復難,讀寫次數1-2萬次左右。

注意:重要數據放在機械硬盤。

(3)磁盤大小計算

[root@oldboy-01 ~]# fdisk -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
255磁頭,63扇區/磁道         1305柱面
Units = cylinders of 16065 * 512 = 8225280 bytes
單元塊大小==柱面大小
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00015468

磁盤大小:柱面大小*柱面數量,柱面由磁道大小組成。

每一個柱面的大小=磁盤的大小*磁頭的數量

磁道的大小=扇區的大小*每一個磁道扇區大小

總結:512x63x255x1305字節byte

bit位,1Byte=8bits

單位換算:1KB=1024Byte

公式計算:

[root@oldboy-01 ~]# awk 'BEGIN{print 8225280*1305/1024/1024/1024}'
9.99681
[root@oldboy-01 ~]#

(二)raid卡

(1)raid卡基礎知識

磁盤冗餘陣列:

得到更大的容量

得到更高的性能

得到更強的安全性

陣列卡:

基礎raid卡

高級raid卡

(2)raid級別:

級別    最少硬盤    安全冗餘    可用容量        性能          使用場景        舉例

Raid0 1 最低 全部之和 讀寫最快 不要求安全只要求速度 數據庫從庫
Raid1 只能2塊 100% 一半 寫入慢,讀取正常 只追求安全,不追求速度 系統盤
Raid5 至少3(校驗) 最多損壞一塊 損失一塊盤的容量 寫入速度慢,讀取正常 要求安全,不要求速度 普通數據庫
Raid10 4 能夠損壞一半 損失全部硬盤一半的容量 讀寫速度很快 對於安全和速度都要的 數據庫主庫,存儲

raid5+spare:raid5+熱備盤,平時不用,損壞時候當即頂上。

raid10:兩個raid1,將兩個raid1作raid0。

(3)磁盤分區:

磁盤分區表:

位置:0磁頭0磁道1扇區:前446字節mbr主引導記錄

64字節的分區表

55AA表示的是結束標記

64字節分區表:主分區-擴展分區-邏輯分區

3個主分區,1個擴展分區(若是想使用,須要在擴展分區下建立邏輯分區)

存儲數據只有兩個分區:主分區和邏輯分區。

主分區:存放數據分區,最多有4個。

擴展分區:沒法直接使用,最多隻能有一個,必需要在擴展分區中建立邏輯分區纔可以使用。

邏輯分區:存放數據分區。

(4)磁盤命名:

sas/sata/scsi接口:以sd開頭

第一塊sas硬盤:sda

第三塊sas硬盤:sdc

分區命名:主分區,邏輯分區:1-4

邏輯分區:從5開始

磁盤格式化工具:fdisk(小於2個t),parted(大於2個t)

ctrl+u:刪除光標位置至行首。

建立磁盤分區過程:

[root@oldboy-01 ~]# fdisk -l | grep '/dev/sd[a-c]'
Disk /dev/sda: 10.7 GB, 10737418240 bytes
/dev/sda1   *           1          26      204800   83  Linux
/dev/sda2              26         124      786432   82  Linux swap / Solaris
/dev/sda3             124        1306     9493504   83  Linux
Disk /dev/sdb: 106 MB, 106954752 bytes
Disk /dev/sdc: 106 MB, 106954752 bytes
[root@oldboy-01 ~]# fdisk -cu /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x5e6202b7.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   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): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-208895, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-208895, default 208895): +30M

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   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): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
First sector (63488-208895, default 63488): 
Using default value 63488
Last sector, +sectors or +size{K,M,G} (63488-208895, default 208895): 
Using default value 208895

Command (m for help): n  
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First sector (65536-208895, default 65536): 
Using default value 65536
Last sector, +sectors or +size{K,M,G} (65536-208895, default 208895): +30M

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders, total 208896 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: 0x5e6202b7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048       63487       30720   83  Linux
/dev/sdb2           63488      208895       72704    5  Extended
/dev/sdb5           65536      126975       30720   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@oldboy-01 ~]# ls -l /dev/sdb*
brw-rw---- 1 root disk 8, 16 Dec 24 01:05 /dev/sdb
brw-rw---- 1 root disk 8, 17 Dec 24 01:05 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Dec 24 01:05 /dev/sdb2
brw-rw---- 1 root disk 8, 21 Dec 24 01:05 /dev/sdb5
[root@oldboy-01 ~]#

(5)磁盤分區:

[root@oldboy-01 ~]# fdisk -cu /dev/sdb

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders, total 208896 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: 0x5e6202b7

   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 sector (2048-208895, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-208895, default 208895): 
Using default value 208895

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders, total 208896 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: 0x5e6202b7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      208895      103424   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@oldboy-01 ~]# ls -l /dev/sdb*
brw-rw---- 1 root disk 8, 16 Dec 24 01:09 /dev/sdb
brw-rw---- 1 root disk 8, 17 Dec 24 01:09 /dev/sdb1

通知系統磁盤分區:

[root@oldboy-01 ~]# partprobe /dev/sdb

建立文件系統:

[root@oldboy-01 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25896 inodes, 103424 blocks
5171 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1992 inodes per group
Superblock backups stored on blocks: 
    8193, 24577, 40961, 57345, 73729

Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

關閉磁盤自動檢查功能:

[root@oldboy-01 ~]# 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
[root@oldboy-01 ~]#

-c:關閉每掛載多少次進行磁盤檢查功能

-i:關閉每一個180天就進行磁盤檢查功能

磁盤分區掛載:

[root@oldboy-01 ~]# mount /dev/sdb1 /mnt/
[root@oldboy-01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  1.9G  6.5G  23% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdb1        94M  1.6M   88M   2% /mnt
[root@oldboy-01 ~]#

(6)永久開機自動掛載:

方法1:

將命令(mount /dev/sdb1 /mnt/)放入:/etc/rc.local

方法2:

/etc/fstab

vim /etc/fstab
/dev/sdb1               /mnt                    ext4    defaults        0 0

(8)磁盤分區小結:

第一步:建立分區並通知系統分區表變化:fdisk,partprobe

第二步:格式化建立文件系統並關閉磁盤檢查

mkfs.ext4 /dev/sdb1

tune2fs -c 0 -i 0 /dev/sdb1

第三步:掛載和自動掛載

mount /dev/sdb1 /mnt

開機自動掛載:

/etc/rc.local

/etc/fstab

注意:卸載,umount /mnt

磁盤分區實戰

fdisk:

磁盤大小小於2TB

fdisk支持MBR

parted:

主要用於給磁盤大於2TB的進行分區

基於GPT分區表

print:顯示磁盤分區表信息

mklabel:建立磁盤分區表

gpt

msdos(mbr)

mkpart:建立分區

rm:刪除分區

q:退出不保存

建立分區:

[root@oldboy-01 ~]# parted /dev/sdc 
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                                
Error: /dev/sdc: unrecognised disk label                                  
(parted) mklabel gpt
(parted) p                                                                
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

建立磁盤:

[root@oldboy-01 ~]# parted /dev/sdc 
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                                
Error: /dev/sdc: unrecognised disk label                                  
(parted) mklabel gpt
(parted) p                                                                
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart primary 0 30
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: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  30.0MB  30.0MB               primary

(parted) mkpart primary 30 60
(parted) p                                                                
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  30.0MB  30.0MB               primary
 2      30.4MB  59.8MB  29.4MB               primary

(parted) q                                                                
Information: You may need to update /etc/fstab.                           

[root@oldboy-01 ~]# parted /dev/sdc
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) q                                                                
[root@oldboy-01 ~]# parted /dev/sdc p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  30.0MB  30.0MB               primary
 2      30.4MB  59.8MB  29.4MB               primary

[root@oldboy-01 ~]#

(9)案例:java環境內存不足

建立控件文件塊:
[root@oldboy-01 ~]# dd if=/dev/zero of=/tmp/100m bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0815905 s, 129 MB/s
查看文件類型:
[root@oldboy-01 ~]# file /tmp/100m 
/tmp/100m: data
將文件類型變成swap:
[root@oldboy-01 ~]# 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 = 10236 KiB
no label, UUID=dc24e68c-5375-42ed-9199-5d8c0ca2968d
查看文件類型:
[root@oldboy-01 ~]# file /tmp/100m
/tmp/100m: Linux/i386 swap file (new style) 1 (4K pages) size 2559 pages
[root@oldboy-01 ~]# free -h
             total       used       free     shared    buffers     cached
Mem:          980M       344M       636M       248K        51M       109M
-/+ buffers/cache:       183M       797M
Swap:         767M         0B       767M
增長系統的swap生效:
[root@oldboy-01 ~]# swapon /tmp/100m
[root@oldboy-01 ~]# free -h
             total       used       free     shared    buffers     cached
Mem:          980M       346M       634M       248K        51M       109M
-/+ buffers/cache:       185M       795M
Swap:         777M         0B       777M
查看swapon
[root@oldboy-01 ~]# swapon -s
Filename                Type        Size    Used    Priority
/dev/sda2                               partition   786428  0   -1
/tmp/100m                               file        10236   0   -2
[root@oldboy-01 ~]#

永久生效:

方法1:/etc/rc.local

swapon /tmp/100m

方法2:/etc/fstab

/tmp/100m swap swap defaults 0 0

linux特色:會把使用過的命令和數據臨時存放在內存中,cache和buffer

linux文件系統:inode,blok,superblock

查看文件的superblock:

[root@oldboy-01 ~]# dumpe2fs /dev/sda3

常見的文件系統:

openSUSElinux默認的文件系統:ReiserFS文件系統

大量小文件。

IBM的AIX使用的jfs日誌文件系統。

centos7採用XFS文件系統。

mysql業務會選擇xfs。

centos6採用ext4文件系統。

視頻下載,流媒體,數據庫,小文件業務。

centos5採用ext3文件系統。

ext2:沒有日誌,藍汛的cache業務,CDN網站加速服務。

一個分區只能一種文件系統。

相關文章
相關標籤/搜索