@mrz1
2017-12-14T07:29:13.000000Z
字数 9672
阅读 1661
笔记
cat /etc/mtab``df``lsblk``mount
-t vsftype:指定要挂载的设备上的文件系统类型 (通常不用写;设备能自己识别)
-r: readonly,只读挂载
-w: read and write, 读写挂载(一般不谢 默认)
-n: 不更新/etc/mtab,mount不可见
-a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L 'LABEL': 以卷标指定挂载设备
-U 'UUID': 以UUID指定要挂载的设备
-B, --bind: 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async:异步模式(默认)
sync:同步模式,内存更改时,同时写磁盘
atime/noatime:包含目录和文件(适合网站文件不更新)
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载,是否支持-a选项
exec/noexec:是否支持将文件系统上运行应用程序(是否禁用可运行脚本)
dev/nodev:是否支持在此文件系统上使用设备文件
suid/nosuid:是否支持suid和sgid权限
remount:重新挂载(即时生效)
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备,/etc/fstab使用
acl:启用此文件系统上的acl功能
loop: 使用loop设备(contos7不需要;添加loop设备/boot/grub/grub.conf,kernel最后添加max_loop=100;默认100个)
defaults:相当于rw, suid, dev, exec, auto, nouser, async
stat 文件 // 查看三个时间
mount -o noatime /dev/sdb2 /mnt/sdb2 atime 时间不会更新
centos6 安装系统后,手工分区ext文件系统无ACL功能
tune2fs -o acl /dev/sdb2 //加acl 永久生效
tune2fs -o ^acl /dev/sdb2 //取消acl
mount -o remount,acl /mnt/sdb2 //加acl 临时生效
[root@centos6 ~]#umount /dev/sdb2 //有用户正在使用 无法删除
umount: /mnt/sdb2: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@centos6 ~]#lsof /mnt/sdb2/ // 查看当前是谁在使用
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 3005 root cwd DIR 8,18 4096 2 /mnt/sdb2
[root@centos6 ~]#fuser -v /mnt/sdb2 // 查看当前是谁在使用
USER PID ACCESS COMMAND
/mnt/sdb2: root 3005 ..c.. bash
[root@centos6 ~]#w //查看当前谁在登录使用
07:40:23 up 59 min, 2 users, load average: 0.07, 0.03, 0.01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.109.1 07:14 0.00s 0.60s 0.09s w
root pts/1 192.168.109.1 07:35 3:21 0.05s 0.05s -bash
[root@centos6 ~]#echo Please get out > /dev/pts/1 //发消息给pts/1 请离开
[root@centos6 ~]#fuser -km /mnt/sdb2 // 强势踢走使用的用户
USER PID ACCESS COMMAND
/mnt/sdb2: root 3005 ..c.. bash
配置文件系统体系
被mount、fsck和其它程序使用
系统重启时保留文件系统体系
可以在设备栏使用文件系统卷标
使用mount -a 命令挂载/etc/fstab中的所有文件系统
1 创建分区
fdisk n
t
82
2 文件系统
mkswap /dev/sdd1 -L SWAP_SDD1
3 配置文件修改优先级
vim /etc/fstab
UUID=2979b3c4-c0c5-44b1-bf21-a213f90d80a0 swap swap pri=10 0 0
4 生效
swapon -a
swapon -s 查看
5 删除 swap
1)swapoff /dev/sdd1 先禁用它
2)vim /etc/fstab
删除对应行
3)fdisk /dev/sdd 删除分区
创建ISO文件
cp /dev/cdrom /root/centos7.iso
mkisofs -r -o /root/etc.iso /etc //把一个目录打包成iso
两个包下载下来制作yum源可以,但制作iso文件缺少但是驱动不了;
官方脚本制作ISO 脚本(这个是centos6的。因为contos7都已经安装好了,不需要) https://wiki.centos.org/zh-tw/TipsAndTricks/CDtoDVDMedia?highlight=%28mkdvd%29
过程-下载缺少包-之后 --help查看帮助
内存空间使用状态:
free [OPTION]
-m: 以MB为单位
-g: 以GB为单位
[root@centos7 ~]#free
total used free shared buff/cache available
Mem: 1075496 648732 74716 8004 352048 204696
Swap: 2097148 576 2096572
total(总)used(已经)free(剩余)shared(共享)buff/cache(缓冲与缓存)available(真正可用)
文件系统空间占用等信息的查看工具:
df[OPTION]... [FILE]...
-H 以1000为单位
-T 文件系统类型
-h: human-readable
-i:inodes instead of blocks
-P: 以Posix兼容的格式输出
查看某目录总体空间占用状态:
du [OPTION]... DIR
-h: human-readable
-s: summary (总大小)
--max-depth=N (层级)
dd命令:convert and copy a file
用法:dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 复制单元大小
count=#: 复制多少个bs
of=file 写到所命名的文件而不是到标准输出
if=file 从所命名文件读取而不是从标准输入
bs=size 指定块大小(既是是ibs也是obs)
ibs=size 一次读size个byte
obs=size 一次写size个byte
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n只拷贝n个记录
conv=conversion[,conversion...] 用指定的参数转换文件
转换参数:
ascii 转换EBCDIC 为ASCII
ebcdic 转换ASCII 为EBCDIC
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件(必须有文件)
noerror 出错时不停止
notrunc 不截短输出文件
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
备份MBR:
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MBR中的bootloader:
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,实现如下:
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
备份:
dd if=/dev/sdx of=/dev/sdy
将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/image
将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx | gzip >/path/to/image.gz
备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
恢复:
dd if=/path/to/image of=/dev/sdx
将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
将压缩的备份文件恢复到指定盘
拷贝内存资料到硬盘(/dev/mem内存)
dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件
从光盘拷贝iso镜像
dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件
销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行
得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小
测试硬盘写速度dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
测试硬盘读速度dd if=/root/1Gb.file bs=64k | dd of=/dev/null
修复硬盘
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生,且这个过程是安全高效的
创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项
写一个脚本,完成如下功能:
(1)列出当前系统识别到的所有磁盘设备
(2)如磁盘数量为1,则显示其空间使用信息否则,则显示最后一个磁盘上的空间使用信息
将CentOS6的CentOS-6.8-x86_64-bin-DVD1.iso和CentOS-6.8-x86_64-bin-DVD2.iso两个文件,合并成一个CentOS-6.8-x86_64-Everything.iso文件,并将其配置为yum源
1. 新建分区
2. 建立文件系统
3. mkdir /mnt/home
4. mount /dev/sda6 /mnt/home 挂载
5. cp -av /home/* /mnt/home 复制
6. tar cvf /app/home.tar /home 打包 scp remote 发送到远程
7. init 1 断开网络,自己在远程就不要执行。通知用户
8. rm -rf /home/*
9. vim /etc/fstab UUID=a0b529ef-85f3-49ce-89d2-3469ad16692c /home ext4 defaults 0 0
10. mount -a
11. umount /mnt/home
12. init -5 换到原有模式
13. 发送通知 迁移完毕
1. 启用配额功能
修改磁盘配额 UUID=a0b529ef-85f3-49ce-89d2-3469ad16692c /home ext4 usrquota,grpquota 0 0
mount -o remount /home/ 重新挂载生效
2. 创建配额数据库
quotacheck -cug /home/ 创建数据库
[root@centos6 home]#getenforce
Permissive
如果创建失败 查看下它是否是Permissive,不是修改/etc/sysconfig/selinux或者/etc/selinux/c onfig当时不会生效;执行 setenforce 0 立即生效
3. 启用数据库
[root@centos6 home]#quotaon /home/ //启用
[root@centos6 home]#quotaon -p /home/ //查看数据库是否启用
group quota on /home (/dev/sda6) is on
user quota on /home (/dev/sda6) is on
4. 指定用户空间限制
edquota fei
Filesystem blocks soft hard inodes soft hard
/dev/sda6 922844 800000 1000000 206 215 219
所有者是谁 占得空间就是谁的 前面是空间 后面是文件个数
edquota -p fei zhang 复制fei 设置zhang的空间配额
setquota fei 100000 200000 100 200 设置fei 配额;非交互式式命令
[root@centos6 home]#repquota /home/ //默认文件超过限额7天没事,超过七天就不能创建了
Block grace time: 7days; Inode grace time: 7days
设置组的配额
edquota -g 组名
删除配额
quotaoff /home 禁用
删除数据库
删除UUID=a0b529ef-85f3-49ce-89d2-3469ad16692c /home ext4 usrquota,grpquota 0 0
mount -o remount /home/ 重新挂载生效
综述
在内核中执行
以文件系统为单位启用
对不同组或者用户的策略不同
根据块或者节点进行限制
执行软限制(soft limit)
硬限制(hard limit)
初始化
分区挂载选项:usrquota、grpquota
初始化数据库:quotacheck
为用户设定配额执行
开启或者取消配额:quotaon、quotaoff
直接编辑配额:edquota username
在shell中直接编辑:setquota usename 4096 5120 40 50 /foo
定义原始标准用户edquota -p user1 user2
报告配额状态报告
用户调查:quota username
配额概述:repquota /mountpoint
其它工具:warnquota
RAID:Redundant Arrays of Inexpensive(Independent)Disks(廉价的磁盘阵列)
1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)"A Case for Redundant Arrays of Inexpensive Disks"
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
提高IO能力:磁盘并行读写
提高耐用性;磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同
读、写性能提升;
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2
它代表了所有RAID级别中最高的存储性能。RAID-0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
特点:使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。
缺点:是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。
最少三块
只能坏一块
RAID-4:多块数据盘异或运算值存于专用校验盘
校验位只放在最后一个硬盘 但是坏的几率大,企业淘汰了之后就是RAID-5
读、写性能提升
可用空间:(N-1)*min(S1,S2,...)
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3, 3+(利用率n分之n-1)不太重要东西用
校验位是随机在每块硬盘都有
读、写性能提升
可用空间:(N-2)*min(S1,S2,...)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+(利用率n分之n-2)
四块硬盘两块放校验位(磁盘利用率低比5)
读性能提升、写性能略有下降;
可用空间:1*min(S1,S2,...)
有冗余能力
最少磁盘数:2, 2N(利用率50%)
防止物理损坏,不防止操作;两个硬盘数据一样删除都删除始终同步。
最少磁盘数:4, 4+(利用率50%)(有钱企业)(三分之二的失败几率)
多块磁盘先实现RAID0,再组合成RAID1
读、写性能提升
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块(容错率高于RAID-01)
最少磁盘数:4, 4+(利用率50%)(有钱企业)(三分之一的失败几率)
多块磁盘先实现RAID5,再组合成RAID0
JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用可用空间:sum(S1,S2,...)
可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
第一步:创建分区
准备硬盘大小相等
硬盘分区fdist /dev/sda
n +10G 做RAID记得改ID
t 7(7的意思是sda7) L fd
w
dd if=/dev/sda7 of=/dev/sdc bs=q count=512
partx -a /dev/sda ...同步
第二步:创建RAID
mdadm -C /dev/md0 -a yes -l 0 -c 32 -n 3 /dev/sd{a7,b1,c1}
-C: 创建模式
-a {yes|no}:自动创建目标RAID设备的设备文件
-l #:指明要创建的RAID的级别
-c CHUNK_SIZE: 指明块大小
-n #: 使用#个块设备来创建此RAID
mdadm -D /dev/md0 //查看创建过程详细
cat /proc/mdstat //也可以看RAID
blkid 查看的话 有两个uuid 第一个是raid的总id第二个是子id
mdadm -Ds > /etc/mdadm.conf //生成这个文件这样开机的话才能找到这个设备
第二步:创建RAID系统
mkfs.ext4 /dev/md0 //创建系统
vim /etc/fatab 编辑 --->uuid 挂载点 ext4 defaults 0 0
创建挂载点 -->挂载 --> 完成