欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 08_03 _磁盘及文件系统管理详解之一 有大用

adminusers3-3.sh 修改后的代码

#!/bin/bash

#

DEBUG =0

ADD=0

DEL=0

for I in `seq 1 $#`; do

  if [ $# -gt 0 ] ; then

  case $1 in

    -v|--verbose)

      DEBUG=1

      shift;;

    --add)

      ADD=1

      ADDUSERS=$2

      shift 2;;

    --del)

      DEL=1

      DELUSERS=$2

      shift 2;;

    --help)

      echo "Usage `basename $0` --add USER_LIST --del USER_LIST -v|--verbose| -h|--help"

      exit 0;;

    *)

      echo "Usage `basename $0` --add USER_LIST --del USER_LIST -v|--verbose| -h|--help"

    exit 8;;

  esac

  fi

done


if [ $ADD == 1 ];then

   for I in `echo $ADDUSERS | sed 's@,@ @g'`; do

    if  id $I &> /dev/null; then

        [ $DEBUG -eq 1 ] && echo "$I exist ,can not add"

    else

        useradd $I

        [ $DEBUG -eq 1 ] && echo "$I user add success"

    fi

   done

fi


if [ $DEL == 1 ];then

   for I in `echo $DELUSERS | sed 's@,@ @g'`; do

    if  id $I &> /dev/null; then

        userdel -r $I

        [ $DEBUG -eq 1 ] && echo "$I delete success"

    else

        [ $DEBUG -eq 1 ] && echo "$I not exist. can delete $I"

    fi

   done

fi



[root@ebs-22618 ~]# echo $? (美元符问号,是上一次执行的退出码)



image.png


[root@ebs-22618 ~]# vim showlogged.sh

#!/bin/bash

#

declare -i SHOWNUM=0

declare -i SHOWUSERS =0


for I in `seq 1 $#`; do

  if [ $# -gt 0 ] ;then

    case $1 in

      -h|--help)

        echo "Usage: `basename $0` -h|--help -c|--count -v|--verbose"

        exit 0;;

    -v|--verbose)

        let SHOWUSERS=1

        shift;;

    -c|--count)

        let SHOWNUM=1

        shift;;

    *)

        echo "Usage: `basename $0` -h|--help -c|--count -v|--verbose"

        exit 8;;

    esac

  fi

done


if [ $SHOWUNM -eq 1 ];then

    echo "Logged users: `who | wc -l` ."

    if [ $SHOWUSERS -eq 1 ]; then

      echo "They are:"

      who

    fi

fi




[root@ebs-22618 ~]# ./showlogged.sh -h

Usage: showlogged.sh -h|--help -c|--count -v|--verbose

[root@ebs-22618 ~]# ./showlogged.sh --help

Usage: showlogged.sh -h|--help -c|--count -v|--verbose

[root@ebs-22618 ~]# echo $?

0

[root@ebs-22618 ~]# ./showlogged.sh --hel

Usage: showlogged.sh -h|--help -c|--count -v|--verbose

[root@ebs-22618 ~]# echo $?

8

[root@ebs-22618 ~]# ./showlogged.sh -c

Logged users: 1 .

[root@ebs-22618 ~]#

[root@ebs-22618 ~]# ./showlogged.sh --count

Logged users: 1 .

[root@ebs-22618 ~]#

[root@ebs-22618 ~]# ./showlogged.sh -v -c

Logged users: 1 .

They are:

root     pts/3        2018-06-15 20:23 (114.218.6.158)

[root@ebs-22618 ~]#



磁盘管理:

    U盘,光盘,软盘,硬盘,磁带机 

    (solid 固态硬盘)

image.png


image.png

image.png


image.png


同心圆 就是磁道


image.png

image.png


image.png


image.png

分区是逻辑边界

image.png


image.png

低级格式化

Partition

    文件系统

MBR:主引导记录(512字节)

    Master Boot Record

        446个bytes:BootLoader,程序

        64个节字

            16个bytes:标志一个分区

        2个字节:Magic Number  (魔术数)

                    标记MBR是否有效

image.png

最多4个主分区

主分区  扩展分区 逻辑分区


主分区可以有三个,扩展分区只能有一个

image.png


image.pngimage.png

image.png



image.png


image.png


image.png


image.png


image.png


image.png

image.png


image.png


image.png

image.png


image.png






# ls /etc


image.png


硬链接 : 相同的inode


image.png


image.png


软链接(符号链接) (权限是777 权限本质是无意义的,因为另一个文件不一定能访问)

inode 本来 指向的块编号 但软链接是指向另一个文件的路径

大小就是另一个文件的字符个数


ln [ -s -v ] SRC(已存在的) DEST目标路径(未存在的)  

image.png



image.png


剪切 mv 时 其实 文件本身及 inode 号不变,变的只是路径





ln 默认是创建硬链接

-s 创建软链接

-v 显示创建链接过程的信息 

image.png


image.png


硬链接:

1,只能对文件创建,不能应用于目录(因为可能循环引用,目录里的硬链接文件指向自己)

2),不能跨文件系统,因为不同的系统 inode 不共享

3),创建硬链接会增加文件被链接的次数


符号链接:(软链接)

    1),可应用于目录 

    2),可以跨文件系统

    3)不会增加被链接文件的链接次数

    4)其大小为指向的路径所包含的字符个数


du 每个文件的大小


 -s 总大小

 -h 显示人类友好的信息

image.png

image.png




df:报告文件系统磁盘空间使用情况


[root@ebs-22618 backup]# df

Filesystem     1K-blocks     Used Available Use% Mounted on

/dev/vda1       30831612  2959944  26298856  11% /

tmpfs             960980      524    960456   1% /dev/shm

/dev/vdb1       20510332 16196540   3265268  84% /home




image.png

image.png





























普通分类: