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网站加速服务。
一个分区只能一种文件系统。