• Linux文件系统管理


    1、文件系统构成

      /usr/bin、/bin:存放所有用户可以执行的命令

      /usr/sbin、/sbin:存放只有root可以执行的命令

      /home:用户缺省宿主目录

      /proc:虚拟文件系统,存放当前内存镜像

      /dev:存放设备文件

      /lib:存放系统程序运行所需的共享库

      /lost+found:存放一些系统出错的检查结果

      /tmp:存放临时文件

      /etc:系统配置文件

      /var:包含经常发生变动的文件,如邮件、日志文化、计划任务等

      /usr:存放所有命令、库、手册页等

      /mnt:临时文件系统的安装点

      /boot:内核文件及自举程序文件保存位置

      1)常用命令

        查看分区情况:df

    [root@localhost ~]# df
    文件系统                 1K-块      已用      可用 已用% 挂载点
    /dev/sda1              5039616    623020   4160596  14% /
    tmpfs                   515396         0    515396   0% /dev/shm
    /dev/sda5              1007896     44760    911936   5% /home
    /dev/sda2              5039616   1737788   3045828  37% /usr
    [root@localhost ~]# df -h
    文件系统              容量  已用  可用 已用%% 挂载点
    /dev/sda1             4.9G  609M  4.0G  14% /
    tmpfs                 504M     0  504M   0% /dev/shm
    /dev/sda5             985M   44M  891M   5% /home
    /dev/sda2             4.9G  1.7G  3.0G  37% /usr
    [root@localhost ~]# df -m
    文件系统                 1M-块      已用      可用 已用% 挂载点
    /dev/sda1                 4922       609      4064  14% /
    tmpfs                      504         0       504   0% /dev/shm
    /dev/sda5                  985        44       891   5% /home
    /dev/sda2                 4922      1698      2975  37% /usr
    [root@localhost ~]# 

        查看文件、目录大小:du

    [root@localhost ~]# du -h /etc/services
    628K    /etc/services
    [root@localhost ~]# du -sh /etc
    27M     /etc
    [root@localhost ~]# 

        检测修复文件系统:fsck、e2fsck(单用户模式执行)

        判断文件类型:file

      2)使用光驱

        挂载光驱

    [root@localhost ~]# mount /dev/cdrom /mnt/cdrom
    mount: block device /dev/sr0 is write-protected, mounting read-only
    [root@localhost ~]#

        如果没有/mnt/cdrom目录,先手工创建该目录。

        查看挂载信息

    [root@localhost ~]# df -h
    文件系统              容量  已用  可用 已用%% 挂载点
    /dev/sda1             4.9G  609M  4.0G  14% /
    tmpfs                 504M     0  504M   0% /dev/shm
    /dev/sda5             985M   44M  891M   5% /home
    /dev/sda2             4.9G  1.7G  3.0G  37% /usr
    /dev/sr0              3.5G  3.5G     0 100% /mnt/cdrom
    [root@localhost ~]#

        卸载光驱

    [root@localhost ~]# umount /mnt/cdrom

        或者

    [root@localhost ~]# eject

      3)添加磁盘或分区

        现在用虚拟机添加了一块硬盘sdb,重启系统后查看新添加的硬盘是否被识别:

    [root@localhost ~]# dmesg | grep sdb
    sd 2:0:1:0: [sdb] 10485760 512-byte logical blocks: (5.36 GB/5.00 GiB)
    sd 2:0:1:0: [sdb] Write Protect is off
    sd 2:0:1:0: [sdb] Mode Sense: 61 00 00 00
    sd 2:0:1:0: [sdb] Cache data unavailable
    sd 2:0:1:0: [sdb] Assuming drive cache: write through
    sd 2:0:1:0: [sdb] Cache data unavailable
    sd 2:0:1:0: [sdb] Assuming drive cache: write through
     sdb:
    sd 2:0:1:0: [sdb] Cache data unavailable
    sd 2:0:1:0: [sdb] Assuming drive cache: write through
    sd 2:0:1:0: [sdb] Attached SCSI disk
    [root@localhost ~]#

        3.1)分区:fdisk

          查看新添加的硬盘信息

    [root@localhost ~]# fdisk -l /dev/sdb
    
    Disk /dev/sdb: 5368 MB, 5368709120 bytes
    255 heads, 63 sectors/track, 652 cylinders
    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: 0x00000000
    
    [root@localhost ~]# 

          对硬盘进行分区

          fdisk  /dev/sdb

          常用命令:

          m  帮助

          p  显示分区表

          n  添加新分区

          t  改变分区文件系统类型

          d  删除分区

          w  保存退出

          q  不保存退出

    [root@localhost ~]# fdisk /dev/sdb
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0x118c05b0.
    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)
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    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): p

        3.2)创建文件系统(格式化):mkfs

    [root@localhost ~]# mkfs.ext4 /dev/sdb1
    mke2fs 1.41.12 (17-May-2010)
    文件系统标签=
    操作系统:Linux
    块大小=4096 (log=2)
    分块大小=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    160960 inodes, 642592 blocks
    32129 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=658505728
    20 block groups
    32768 blocks per group, 32768 fragments per group
    8048 inodes per group
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376, 294912
    
    正在写入inode表: 完成                            
    Creating journal (16384 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成
    
    This filesystem will be automatically checked every 31 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    [root@localhost ~]# 

        3.3)尝试挂载:mount

          把/dev/sdb1挂载到/web空目录

          先创建/web目录

    [root@localhost ~]# mkdir /web

          挂载

    [root@localhost ~]# mount /dev/sdb1 /web

          查看是否挂载成功

    [root@localhost ~]# df -h
    文件系统              容量  已用  可用 已用%% 挂载点
    /dev/sda1             4.9G  609M  4.0G  14% /
    tmpfs                 504M     0  504M   0% /dev/shm
    /dev/sda5             985M   44M  891M   5% /home
    /dev/sda2             4.9G  1.7G  3.0G  37% /usr
    /dev/sdb1             2.5G   68M  2.3G   3% /web
    [root@localhost ~]# 

         3.4)写入配置文件:/etc/fstab

    [root@localhost ~]# more /etc/fstab
    
    #
    # /etc/fstab
    # Created by anaconda on Wed Dec  5 04:36:40 2012
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=1782302e-7804-4b32-9e59-04aac3651342 /                       ext4    defaul
    ts        1 1
    UUID=e5ec7966-8a82-438a-b929-962d375bb1e5 /home                   ext4    defaul
    ts        1 2
    UUID=926c0281-29b0-4ab0-9483-c1066462d508 /usr                    ext4    defaul
    ts        1 2
    UUID=ac208436-48b7-4bfa-b25d-758af1ea9019 swap                    swap    defaul
    ts        0 0
    tmpfs                   /dev/shm                tmpfs   defaults        0 0
    devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
    sysfs                   /sys                    sysfs   defaults        0 0
    proc                    /proc                   proc    defaults        0 0
    [root@localhost ~]#

        由以下部分组成

        物理分区名/卷标  挂载点  文件系统  缺省设置  是否检测  检测顺序

          proc      /proc   proc    defaults  1/0    0/1/2

        把我们刚新加的分区配置进去,让系统引导的时候自动加载 

    [root@localhost ~]# vi /etc/fstab
    
    
    #
    # /etc/fstab
    # Created by anaconda on Wed Dec  5 04:36:40 2012
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=1782302e-7804-4b32-9e59-04aac3651342 /                       ext4    defaults        1 1
    UUID=e5ec7966-8a82-438a-b929-962d375bb1e5 /home                   ext4    defaults        1 2
    UUID=926c0281-29b0-4ab0-9483-c1066462d508 /usr                    ext4    defaults        1 2
    UUID=ac208436-48b7-4bfa-b25d-758af1ea9019 swap                    swap    defaults        0 0
    tmpfs                   /dev/shm                tmpfs   defaults        0 0
    devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
    sysfs                   /sys                    sysfs   defaults        0 0
    proc                    /proc                   proc    defaults        0 0
    /dev/sdb1               /web                    ext4    defaults        1 2
    ~
    ~
    "/etc/fstab" 17L, 936C written
    [root@localhost ~]#


     2、磁盘配额

      1)开启分区配额功能

        1.1)编辑/etc/fstab文件,在挂载属性上加上标志:usrquota(用户配额)或grpquota(用户组配额)

        假如/home这个分区,限制每个用户只能使用50M的空间:

        加载用户配额设置

    [root@localhost ~]# vi /etc/fstab
    
    
    #
    # /etc/fstab
    # Created by anaconda on Wed Dec  5 04:36:40 2012
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=1782302e-7804-4b32-9e59-04aac3651342 /                       ext4    defaults        1 1
    UUID=e5ec7966-8a82-438a-b929-962d375bb1e5 /home                   ext4    defaults        1 2
    UUID=926c0281-29b0-4ab0-9483-c1066462d508 /usr                    ext4    defaults        1 2
    UUID=ac208436-48b7-4bfa-b25d-758af1ea9019 swap                    swap    defaults        0 0
    tmpfs                   /dev/shm                tmpfs   defaults        0 0
    devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
    sysfs                   /sys                    sysfs   defaults        0 0
    proc                    /proc                   proc    defaults        0 0
    /dev/sdb1               /web                    ext4    defaults,usrquota       1 2
    ~
    "/etc/fstab" 17L, 945C written
    [root@localhost ~]#

        临时开启分区配额功能

    [root@localhost ~]# mount -o remount,usrquota /home

        1.2)创建配额数据库:quotacheck -cvu /home

    [root@localhost ~]# quotacheck -cvu /web
    quotacheck: Mountpoint (or device) /web not found or has no quota enabled.
    quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option.
    [root@localhost ~]# quotacheck -cvu /home
    quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
    quotacheck: Scanning /dev/sda5 [/home] done
    quotacheck: Cannot stat old user quota file: 没有那个文件或目录
    quotacheck: Old group file not found. Usage will not be substracted.
    quotacheck: Checked 387 directories and 1626 files
    quotacheck: Old file not found.
    [root@localhost ~]# 

        /home下已经有了aquota.user这个文件

    [root@localhost ~]# ls /home
    aquota.user  lixunxuan   luixaofeng  luxh01  luxh03  luxh05      yekai
    cnblogs001   lost+found  luxh        luxh02  luxh04  luxiaofeng
    [root@localhost ~]# 

        1.3)启动配额功能

    [root@localhost ~]# quotaon /home
    [root@localhost ~]#

        如果要关闭配额功能

    [root@localhost ~]# quotaoff /home
    [root@localhost ~]#

        1.4)编辑用户配额

          edquota 用户名

    [root@localhost ~]# edquota luxh01
    
    Disk quotas for user luxh01 (uid 1001):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/sda5                         8          0       51200          2        0        0
    ~

        blocks soft  hard 限制用户能使用的空间大小

        inodes  soft  hard  限制用户能创建多少个文件

        查看luxh01用户的配额信息

    [root@localhost ~]# quota luxh01
    Disk quotas for user luxh01 (uid 1001): 
         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
          /dev/sda5       8       0   51200               2       0       0        
    [root@localhost ~]# 

       查看所有用户的配额信息

    [root@localhost ~]# repquota /home
    *** Report for user quotas on device /dev/sda5
    Block grace time: 7days; Inode grace time: 7days
                            Block limits                File limits
    User            used    soft    hard  grace    used  soft  hard  grace
    ----------------------------------------------------------------------
    root      --   26936       0       0           1964     0     0       
    luxh      --       8       0       0              2     0     0       
    lihuai    --      36       0       0              9     0     0       
    luixaofeng --      32       0       0              8     0     0       
    lixunxuan --      32       0       0              8     0     0       
    luxiaofeng --      32       0       0              8     0     0       
    luxh01    --       8       0   51200              2     0     0       
    luxh02    --       4       0       0              1     0     0       
    luxh03    --       4       0       0              1     0     0       
    luxh04    --       4       0       0              1     0     0       
    luxh05    --       4       0       0              1     0     0       
    cnblogs001 --      32       0       0              8     0     0       
    
    
    [root@localhost ~]# 

        复制用户配额信息:

        edquota -p 模板用户 复制用户1 复制用户2

    [root@localhost ~]# edquota -p luxh01 luxh02 luxh03

    3、备份

      1)cp命令备份举例

        备份目录

        cp -Rpu 备份目录 目标目录

          -p  保持备份目录及文件属性

          -u  增量备份   

    [root@localhost ~]# cp -p /etc/inittab /backup/inittab_20130103.bak

        远程备份可以用scp

      2)tar命令打包备份

        备份/etc目录,可以同时备份多个目录

    [root@localhost ~]# tar -zcf /backup/etc_20130103.tar.gz /etc

        还原/etc目录,默认还原到打包文件源目录

    [root@localhost ~]# tar -zxf /backup/etc_20130103.tar.gz

        只还原指定的文件,如/etc/passwd,注意,在命令中要写成etc/passwd,解压到当前目录。

    [root@localhost ~]# tar -zvf /backup/etc_20130103.tar.gz etc/passwd
  • 相关阅读:
    area标签的使用,图片中某一个部分可以点击跳转,太阳系中点击某个行星查看具体信息
    使用window.localStorage,window.localStorage记录点击次数
    js判断是否是在微信浏览器中打开
    点击按钮回到页面顶端的几种方式
    一行代码实现F11的功能,即让浏览器窗口全屏
    容器居中
    判断某个窗口是否是活动窗口(当前正在使用、操作的窗口)
    对数组每项进行处理、判断的几种方法
    form文件上传、下载,获取返回值
    scss基本使用及操作函数
  • 原文地址:https://www.cnblogs.com/luxh/p/2841978.html
Copyright © 2020-2023  润新知