linux 下的磁盘配额管理

文件系统

ext 2  3  4

swap


iso9660

vfat  (fat32)

jfs  gfs

MBR 主引导记录  512B(BOOTLOADER 446B   PARTION 64B   MAGIC 2B)

1.分区  ,格式化   ,挂载

 fdisk -l  查看磁盘现有分区
 磁盘id 83 表示是ext2/ext3 82表示是swap
 最多4个主分区 1个扩展分区


 fdisk   磁盘文件 (fdisk /dev/sda)  【对磁盘进行分区

  m  帮助
  n  创建

  d  删除
  t  改id

  w  保存退出

  q  不保存推出

  t  改变类型id
  p  显示已有分区


sfdisk 备份分区表
sfdisk -d /dev/sda >/root/sda.out  对分区表进行备份

 /proc/内存和内核存储目录
 ps -aux |less 查看所有进程
 [root@localhost /]# cat /proc/partitions  查看磁盘信息

 init 6 重启
 

  partproble  磁盘文件 (partprobe /dev/sda)  【对分区进行识别 
  (cat  /proc/partitions)

 


2.格式化
 mkfs -t ext3  /dev/sda5 对sda5磁盘进行格式化为ext3

ext2   mkfs -t ext2      mke2fs      mkfs.ext2  将磁盘格式化为ext2

ext3   mkfs  -t   mkfs.ext3  将磁盘格式化为ext3


vfat   mkfs.vfat   将磁盘格式化为vfat

swap   mkswap  将磁盘格式化为swap

3.挂载 
[root@localhost /]# mount /dev/sda5 /mnt/5  将sda5挂载到/mnt/5


 a。临时   mount  -t 文件系统类型  -o 选项1,选项n  分区文件   挂载点 

          mount  查看
          df -h   -T   查看挂载文件及其类型


磁盘配额

1.vim  /etc/fstab  建立自动挂载   usrquota,grpqouta

2.重启 init 6   或者 mount  -a
3.quotacheck  -a扫描所有分区 

                      -u磁盘用户占用空间 

                      -g组占用空间 

                      -v详细信息 

                      -c忽略旧文件
[root@localhost ~]# quotacheck -augvc

4.edquota  -u  用户帐号
                 -g  组帐号
                 -p  帐号1   帐号2  将帐号1的限制复制给帐号2
[root@localhost 6]# edquota -u user1


5.quotaon   分区文件     【激活edquota -u user1

[root@localhost 6]# quotaon /dev/sda6


6.vim /etc/rc.d/rc.local  编辑开机启动项


[user1@localhost 6]$ dd if=/dev/zero of=f2.user1 bs=1M count=10

 

脚本实现磁盘配额

1.显示分区  (编号   分区文件    大小)

2.提示输入做配额的分区

3.判断 在/etc/fstab,该分区是否挂载  若存在 sed 正行替换

sed `s&/dev/sda6.*&/dev/sda6 /mnt/6 auto defaults,usrquota 0 0&` /etc/
fstab

    不存在   echo  。。。。。>>  /etc/fstab

4.mount  -a

5.quotacheck  -a  -u  -g  -v  -c

6.edquota  -u  用户帐号
           -g  组帐号
           -p  帐号1   帐号2

7.quotaon   分区文件

8.vim /etc/rc.d/rc.local


vim disk.sh

#!/bin/bash
#display partion table
echo "**********************"
fdisk -l |grep -v "^$" |grep -v -i -E "disk|head|unit|device"|grep -v ? " |awk 'BEGIN {OFS="\t"} {print $1,$4/1000}'
echo"**********************"

#test fstab
read -p "please select partion:" PARTION
if grep $PARTION /etc/fstab;then
MOUNTPOINT=`grep $PARTION /etc/fstab|awk '{print $2}'`
sed -i '$&'$PARTION'.*&'$PARTION' '$MOUNTPION' auto defaults,usrquota 0 0&' /etc/fstab
else
read -p "please select mountpoint:" MOUNTPOINT
mkdir -p $MOUNTPOINT
echo "$PARTION $MOUNTPOINT auto defaults,userquota 0 0">>/etc/fstab
fi         
#test partion format
if dumpe2fs $PARTION;then
mount -a   
quotachek -augvc
else
mkfs -t ext3 $PARTION
mount -a
quotachek -augvc
fi

#creat user quota
read -p "please input a quota user:" ACCOUNT
if grep $ACCOUNT /etc/passwd;then

edquota -u $ACCOUNT
fi
sleep 3

quotaon $PARTION
echo "quotaon $PARTION" >>/etc/rc.d/rc.local
                                                          

 

 


[root@localhost ~]# fdisk -l |grep -v "^$" |grep -v -i -E "disk|head|unit|device" |grep -v "*" 去掉带有device,“*”号的行
[root@localhost ~]# fdisk -l |grep -v "^$" |grep -v -i -E "disk|head|unit|device" |grep -v "*" |awk 'BEGIN {OFS="\t"}{print $1,$4/1000}'去掉带有device,“*”号的行并打印出第一、四行


vfs 

ext2  3 4
swap 虚拟内存
vfat
iso9660 光盘系统

网络文件系统  nfs  samba

gfs 全局文件系统


ln-s
软连接不占空间,可跨分区,查询方便
ln
硬链接占空间,不可跨分区


调整参数

tune2fs

-j  创建日志

-J  调整日志选项 

    size=journal-size 设置日志大小

   device=external-journal 指明系统日志在哪个分区

tune2fs  -J siza=8  /dev/sda8 将磁盘日志更改为8M

-c  调整挂在的次数
tune2fs  -c   0  /dev/sda8 设置最大挂载次数为0

-i  调整时间间隔
tune2fs –i 30 /dev/sda8 每隔30天扫瞄一次

-m 调整保留快百分比
tune2fs  -m 10 /dev/sda8 调整保留块大小为10%

-l  查看
tune2fs –l /dev/sda8查看信息

-L volume-label 查看卷标

dumpe2fs  查看详细信息
dumpe2fs /dev/sda8 查看磁盘是否格式化
[root@localhost ~]# mkfs -t ext2 /dev/sda5 将磁盘sda5格式化为ext2文件
[root@localhost ~]# fuser -km /mnt/7 结束/mnt/7上的所有用户
[root@localhost ~]# fuser -v /mnt/7  查看/mnt/7上的用户信息

 


挂载


1.临时挂载
  mount  -t  文件系统类型  -o 选项1,选项n  分区文件  挂在点

     选项
     ro,(rw)
[root@localhost ~]# mount -o remount,ro /dev/sda5 重新挂载/dev/sda5并设置权限不可写入
[root@localhost ~]# mount -o remount,rw /dev/sda5 可写入

    (exec),noexec 执行
[root@localhost 5]# mount -o remount,rw,noexec /dev/sda5
不可执行
    (suid),nosuid
[root@localhost 5]# mount -o remount,rw,nosuid /dev/sda5
nosuid只能以自己的身份执行

     (dev)可在该分区创建设备文件   nodev 可以创建但不能使用
[root@localhost ~]# ll /dev/sd* 查看设备
 
      defaults=
      mknode
[root@localhost ~]# mknod /mnt/5/qq b 22 0 在/mnt/5下创建一个qq块设备

[root@localhost ~]# uname -r 查看内核版本

2.4 每种设备一个文件

2.4 之后   udev  (hotplug)  /sys  --->/dev

 [root@localhost ~]# mount -t ext2 /dev/sda5 /mnt/5 将/dev/sda5重新挂载为ext2格式

 

2.永久挂载(自动)

/etc/fstab 永久挂在位于的目录

分区标识/卷标     挂载点     文件系统类型      参数  dump的频率   fsck的顺序


对分区进行标识

1.标识 (文件   /dev/sda7)

2.卷标 

[root@localhost 5]# e2label /dev/sda2 查看/dev/sda2的卷标
[root@localhost 5]# e2label  /dev/sda5   data     将/dev/sda5/卷标设为data
[root@localhost ~]# mount LABEL=data /mnt/5 将/dev/sda5挂在到/mnt/5下

  blkid 
[root@localhost 5]# blkid /dev/sda5 查看/dev/sda5的uuid

 blkid  分区 
  findfs LABEL=<label>|UUID=<uuid>

[root@localhost 5]# findfs LABEL=/  根据卷标查看它代表哪个分区
 

3.uuid 

dxdiag 查看计算机系统信息(在windows系统下使用)
free -m 以M查看内存
top 查看虚拟内存

交换分区

 a.使用分区
   id  82  虚拟文件系统id为82
fdisk /sev/sda
t 为磁盘重新设置id
82 设置id为82
w 保存退出

[root@localhost ~]# partprobe /dev/sda 对/dev/sda重新识别
[root@localhost ~]# cat /proc/partitions 查看内核参数


格式化指令   mkswap  ---》swpon  (临时)  

[root@localhost ~]# mkswap /dev/sda5 格式化分区
[root@localhost ~]# swapon /dev/sda5 增加到现有虚拟内存中
[root@localhost ~]# swapoff /dev/sda5 重虚拟内存中移除
[root@localhost ~]# swapon -s 查看虚拟内存所分布的分区

    永久(/etc/fstab)
vim /etc/fstab
/dev/sda8   swap    swap    defaults    0 0

 b.使用文件

  dd  if=/dev/zero  of=文件  bs=尺寸  count=数量
[root@localhost ~]# dd if=/dev/zero of=/swapfile bs=1M count=500
新建一个文件大小为500M输入到/dev/zero输出到/swapfile


目录
bin 存放可执行文件,所有用户都可执行
sbin 放二进制程序指令,只有管理员能执行
boot 挂在点.存放内核文件
home 用户的家目录
media 可插拔的设备挂载点,自动挂在目录
misc 杂项目录,存放混乱文件
opt 额外文件存放目录
proc 内存和内核镜像

[root@localhost ~]# ll /lib/modules/2.6.18-164.el5/ 查看内核所支持的所有模块
[root@localhost ~]# du -sh /lib/modules/2.6.18-164.el5/ 查看内核所有文件大小

[root@localhost boot]# vim /etc/grub.conf 编辑内核文件
[root@localhost boot]# ll /lib/modules/2.6.18-164.el5/ 查看额外的驱动


[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm 安装http服务
[root@localhost Server]# rpm -qc httpd 查看可配置文件
[root@localhost Server]# rpm -q --scripts httpd 查看安装过程执行的脚本
[root@localhost Server]# rpm -e httpd  卸载http服务

[root@localhost Server]# vim /etc/ld.so.conf 存放做系统调用应该查看那些文件

设置选项,使其他人无法ping通自己的方法
[root@localhost ~]# cd /proc/
[root@localhost proc]# cd net
[root@localhost proc]# cd ipv4
[root@localhost  ipv4]# echo "1" > icmp_echo_ignore_all

 

存储的特性:   1.效率   2.冗余

动态磁盘   1.简单卷  能动态的延伸尺寸
           2.跨区卷  2-32  效率一般   无冗余
           3.带区卷 (raid 0) 2-32    成员使用空间相同   数据等分64k  同时写入多个成员

                                      效率高   无冗余 容量只和

           4.镜像卷 (raid  1)  2  50% 冗余   写的效率 一般   读取 快

           5.raid 5卷   3-32   利用率 n-1/n   写入 慢   读取(正常 快)(不正常  慢)


linux    raid  0    1    5   6   10


硬件raid   raid 卡(scsi接口)  /dev/sd


软件raid  /dev/md0 1  2 驱动

[root@localhost ~]# cat /proc/mdstat 查看多设备状态
mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb{1,2} 创建一个sdb1,sdb2
mdadm --detail /dev/md0 查看/dev/md0详细状态信息
mdadm --fail /dev/md0 /dev/sdb1 将损坏磁盘/dev/sdb1设置为失效
mdadm --add /dev/md0 /dev/sdb3 增加一个新的成员sdb3
mdadm --remove /dev/md0 /dev/sdb1 删除成员sdb1
mdadm -S /dev/md0 停止设备/dev/md0的运行
mdadm -A /dev/md0 /dev/sdb2 /dev/sdb3 重新激活sdb2,sdb3
mdadm --detail --scan 对设备信息扫描
mdadm --detail --scan >>/etc/mdadm.conf 将扫描信息输入到/etc/mdadm.conf
cat /etc/mdadm.conf 查看扫描信息
mdadm -A -s 更据/etc/mdadm.conf 内的扫描信息进行激活

raid 实现的两种方法

1.硬件raid   raid  卡  scsi 

2.软件raid  (os)  /dev/md0   mdadm  

raid 5
mdadm -Cv /dev/md1 -a yes -l 5 -n 3 -x 1 /dev/sdb{5,6,7,8}自动创建sda5,sda6,sda7,sda8 3个有用一个空余设备文件


lvm  逻辑卷管理器

 动态改变分区大小    灵活
创建、

pvcreate 物理卷
pvcreate /dev/sdb{9,10,11} 创建物理卷sdb9,sdb10,sdb11

vgcreate 卷组
vgcreate testvg /dev/sdb9 /dev/sdb10 创建卷组test并将sdb9,sdb10加入进去

lvcreate 逻辑卷
lvcreate -L 400M -n testlv testvg 在testvg上创建大小400M名为testlv的逻辑卷

查看
pvdisplay 物理卷查看
pvdisplay /dev/sdb9 查看sdb9信息

vgdisplay 卷组查看

lvdisplay 逻辑卷查看


改变大小
物理卷无法拓展
vgextend 卷组拓展
vgextend testvg /dev/sdb11 新增物理拓展卷sdb11
vgreduce 卷组缩减
lvextend  逻辑卷拓展
lvextend -L +50M /dev/testvg/testlv 将/dev/testvg/testlv拓展50M
resize2fs /dev/testvg/testlv 重新执行到磁盘文件中
lvreduce  逻辑卷缩减

移除
lvremove 先拆除逻辑卷
lvremove /dev/testvg/testlv 删除逻辑卷/dev/testvg/testlv
vgremove 在拆除卷组
vgremove testvg 删除卷组testvg
pvremove 最后在拆除物理卷
pvremove /dev/sdb{9,10,11} 删除物理卷
缩小】

1.卸载
umount /mnt/testlv/ 取消挂载


2.强制文件系统扫描  e2fsck  -f  (fsck)
e2fsck -f /dev/testvg/testlv 对文件进行扫描

3.resize2fs 
resize2fs /dev/testvg/testlv 350 将文件系统缩减为350M
4.lvreduce
lvreduce -L 100M /dev/testvg/testlv 将系统减少到100M

备份
dd if=inputfile of=outfile bs=blocksize count=number
if:输入文件或设备
of:输出文件或设备
bs:设定outfile文件的块大小,默认为一个扇区512B
count:outfile占用的块数
dd if=/dev/hda1 of=/home/hda1.bak
备份分区hda1为hda1.bak,需要恢复时将if和of反过来即可


快照 --》备份
pvcreate /dev/sdb{9,10} 创建物理卷
vgcreate testvg /dev/sdb{9,10} 创建卷组并将物理卷sdb9,sdb10加入
lvcreat -L 300M -n testlv testvg  创建大小为300M名为testlv的逻辑卷
mkfs -t ext3 /dev/testvg/testlv
mount /dev/testvg/testlv  /mnt/testlv/
cd /mnt/testlv/
cp /etc/passwd ./
cp /etc/inittab ./

lvcreat -L 10M  -s -n snap-lv /dev/testvg/testlv 创建快照名snap-lv
mkdir /mnt/snap
mount  -o ro ,remount/dev/testvg/snap-lv /mnt/snap/ 以ro的方式对快照进行挂载

dump 备份

dump -Ou /dev/testvg/snap-lv -f /tmp/dump.19 对文件件/dev/testvg/snap-lv进行完全备份命名为dump.19
restore -r -f /tmp/dump.19  回复备份数据dump.19内的备份文件

sfdisk 备份分区表
sfdisk -d /dev/sda >/root/sda.out  对分区表进行备份

本文出自 “新手报到” 博客,转载请与作者联系!

你可能感兴趣的:(linux,linux,职场,休闲,磁盘配额)