磁盘配额,程序包

简介:

磁盘配额

 

  文件服务器:共享存储空间,让用户能够随时存储数据

  FTP

  SMB

  网盘

 

  磁盘配额:主要是针对这类文件服务器进行用户的磁盘空间使用限制而提出的。

  磁盘配额的设定对象:

    1.能够实施读写操作的块设备

    2.要有正确的文件系统

 

  磁盘配额限制哪些人的访问行为:

    1.用户

      为指定的用户限制磁盘使用量

        1.磁盘空间(块)  一个block的限制,代表1KB的存储空间

        2.inode的使用量

    2.

      限制指定组中所有成员的磁盘使用量的总和

 

  磁盘配额的类型:

    soft limit:软限制

      当用户的磁盘使用量达到了软配额限制,将会启动宽限期倒计时,在倒计时归零之前,用户可以正常使用剩余的配额量,但一旦倒计时归零,用户将不能继续使用磁盘空间,除非将数据进行清除,低于软限制,而后可以继续使用磁盘空间

    hard limit:硬限制

      用户能够使用的磁盘空间的真正上限

 

  一般来讲,软限制要比硬限制的数值少一些

 

  在Linux中默认的宽限期是七天

 

  需要一个用户记录用户和组的磁盘使用量和配额量的数据文件

  aquota.user

  aquota.group

 

  如果想要让分区或者卷能够支持磁盘配额的设定,需要单独的挂载选项:

    usrquota, grpquota

 

  1. ~]# mount -o userquota,grpquotaDEVICE MOUNT_POINT

  2./etc/fstab

    DEVICE MOUNT_POINT FSTYPE defaults,usrquota,grpquota 0 0

 

  quotacheck

    can a filesystem for disk usage, create,check and repair quota files

    -g --group 创建 检测和修复组配额文件

    -u --user 检测和修复用户配额文件

    -c --create-files 经检测,如果没有用户配额文件和或组组配额文件,就安装用户给定的选项来进行创建

    -v --verbose 显示整个操作过程的详细信息

    -a, --all 所有在/etc/fstab文件中包含了与配额有关的挂载选项的设备上,是否有对应选项的配额文件

 

用于编写配额内容的命令

  edquota

    -u, --user 编写用户配额,默认的功能

    -g, --group 编写组配额

    -t, --edit-period 设置超出软限制的宽限期,默认7天,可以选择秒,分钟,小时,天等时间单位

 

  使配额功能生效:

    quotaon ,quotaoff --开启和关闭配额功能

 

      例: quotaon|quotaoff/dev/sdb1

 

  查看配额的使用情况

    quota -- display disk usage and limits

    repquota --summarize quotas for afilesystem  只有root用户才能使用

 

  注意:

    root不受磁盘配额限制

 

 

 

linux的程序包管理:

  程序=指令+数据

  程序=算法+数据结构

 

  应用程序存在形式:

    1.源代码形式:包含了整个应用程序的编程语言的所有代码的文本文件

    2.二进制:将源代码经过一系列的转换操作之后得到的可以直接执行的文件

 

  使用源代码安装应用程序:

    预处理(预处理器)-->编译(编译器)-->汇编(汇编器)-->链接(连接器)-->可以直接执行的二进制文件

 

  POSIX:POS portable operating system 可移植操作系统

    API:application programinterface 应用编程接口

    ABI: application binary interface 应用二进制接口

 

  库级别的兼容,库级别的虚拟化:

    cywin:在Windows系统中能够模拟Linux的共享库

    winE:在Linux系统中模拟Windows的库

 

  应用级编程语言:

    java/python/perl/ruby/PHP/GO

      java:hadoop2,hbase,ELK,(JVM)

      python:Openstack,saltstack,(PVM)

  系统级编程语言:

    C/C++

 

  源代码编译:需要有编译开发环境支持

    C/C++:编译开发环境:预处理器,编译器,头文件,开发库文件

    java/python:编译开发环境:预处理器,编译器,开发库文件

 

  通常情况下源代码文件是多个,因此这些文件之间存在着一定的关联关系,我们称这种关联关系为依赖关系

 

  autoconf

  automake

 

  软件项目构建工具:

    C/C++:make

    java:maven

    python:buildout

 

  程序包管理器:在指定的系统中进行程序的安装,卸载,升级,查询校验等工作。

 

  不同的Linux发行版本,有着不同的程序包管理器

    Debian:dpt,Debian package toolkits, dpkg工具, .deb后缀名的包文件

    Redhat:rpm,Rrdhat Package Manager,rpm工具, .rpm后缀名

      rpm成为Linux的程序包管理器的行业标准

      rpm是使用Perl语言编写的,用C语言重新rpm

      rpm is package manager

    S.u.S.E: rpm, .rpm后缀

        Gentoo:采用了FreeBSD的portage的程序包管理机制,emerge的工具

       ArchLinux:pacman

 

  以centos为例,rpm程序包管理器的相关内容

    centos的程序包管理器:

      程序包的命名规则:

        源代码包:

          software_name-VERSION.tar.gz

          VERSION: major.minor.release

            major:主版本号,通常代表重大功能改进的版本分支

            minor:次版本号,通常代表在某个版本的分支中的某个功能发生变化

            release:发行版本号,修复某些bug或者对某段代码进行了优化

 

        rpm程序包:

          源码包:

            software_name-VERSION.src.rpm

          二进制包:

           software_name-VERSION-[release].[os].arch.rpm

              VERSION:major.minor.release

              [release]:rpm封包的发行版本号

              [os]:软件所支持的操作系统版本,el6,el7,suse11...

              arch:硬件平台架构类型,i386,i686

 

    在制作rpm程序包的时候,通常其制作者会采用分包技术来构建rpm程序包

 

    根据程序的不同功能,构建多个程序包

 

    被分包的程序包一般分为两类:

      主程序包:software_name-VERSION-[release].[os].arch.rpm

      附属功能包:software_name-VERSION-function-[release].[os].arch.rpm

 

      一般来讲,主程序包和附属功能包具有相同的版本号,发行版本号,操作系统及兼容平台的标识

 

      所以,主程序包往往被所有的附属程序功能包所依赖,不安装主程序包就不能安装附属功能包。

 

      function:devel,utils,libs,tools,manual...

 

      程序包管理的前端工具:

        RHEL| Centos系统的前端管理工具:yum,yellow dog update midifier

          yum在实施软件的安装,升级,卸载等工作的时候,会开启事务。

            事务:将整个操作过程视为一个整体,要么全执行,要么全不执行

 

        Debian系的前端工具:apt-get,apt-cache

          apt-get:实现安装卸载等功能

          apt-cache:实现基于关键字进行搜索功能,管理本地缓存的及缓存的元数据

 

        suse前端工具:zypper

 

  rpm程序包管理器:

    1.rpm命令行工具:

    2.yam工具:

 

  rpm命令行工具:

    功能:

      1.将编译好的应用程序的各个组成文件打包成一个或多个程序包文件

      2.软件包的安装,卸载,升级,查询,校验及数据库管理功能

 

  rpm程序包中文件的组成清单:

    1.程序的文件

    2.文件清单

    3.在软件安装或卸载是运行的脚本文件,共分为四类:

      preinstall:在正式的安装操作开始之前所运行的脚本,%pre

      postinstall:在安装完成后所执行的脚本,%post

      preuninstall:在正式卸载操作开始前所运行的脚本,%preun

      postuninstall:在卸载完成后所执行的脚本,%postun

 

  rpm数据库(公共):

    已经安装好的程序包名称及版本

    /var/lib/rpm

 

获取程序包的途径:

  1.系统的发行版的光盘

  2.官方的文件服务器或者镜像站点

    http://mirrors.aliyun.com

        http://mirrors.sohu.com

        http://mirrors.163.com

        https://mirrors.tuna.tsinghua.edu.cn

        http://mirrors.hust.edu.cn

  3.某个项目的官方站点

  4.第三方组织制作的rpm程序包站点

    Fedora EPEL:红帽官方的社区组织,在镜像站点中也包括EPEL镜像

    搜索引擎:

      http://pkgs.org

      http://rpmfind.net

      http://rpm.pbone.net

  5.自己制作

 

建议:获得程序包后,实施完整性检查

  来源合法性:

    通过程序提供者的数字签名加密数据,我们通过其公共钥进行解密验证

  程序包的完整性:

    sha-1校验码

 

  rpm命令行工具:

    安装,卸载,升级(降级),查询,文件校验,验证,数据库管理维护

 

    rpm命令的通用选项:

      -v:显示详细信息,仅仅显示安装的软件名

      -vv:显示非常详细的操作信息

 

    安装:

      rpm {-i|--install} [install-options]PACKAGE_FILE ..

      install-options

        -h --hesh:用五十个#来表示安装进度

        --test:并不是真正的安装软件包,仅仅是测试是否在安装时能够正常完成。dry run模式

        --nodeps:忽略因为依赖关系导致的安装错误,不建议使用

        --replacefiles:在安装软件包时,软件包中的文件会直接将原来的安装的文件替换

        --replacepkgs:无需卸载软件包而重新安装

             --noscripts:不运行任何脚本

             --nopre

             --nopost

             --nosignature:不考虑软件包的来源是否合法;

             --nodigest:不考虑软件包是否完整;

 

例:~]# rpm -ivh php-mysql-5.3.3-40.el6_6.x86_64.rpmphp-pdo-5.3.3-40.el6_6.x86_64.rpm

    升级:

       rpm {-U|--upgrade} [install-options]PACKAGE_FILE ...

         如果选择被安装的程序事先并未安装,则全新安装,如果已经安装了旧版本,则可以升级安装

       rpm {-F|--freshen} [install-options]PACKAGE_FILE ...

         仅仅只能对已经安装的低版本的程序包进行升级安装

         --oldpackage:降级安装,用老版本的程序包替换新版本的程序包

         --force:强制升级

 

    注意:

      1.强烈建议,不要对内核进行升级操作,Linux可以支持多内核,可以直接安装新版本的内核,在启动界面可手动切换

      2.升级安装可能会带来文件的变化,因此,系统默认不会直接更改之前安装过的软件的配置文件,新程序包中的配置文件会被重命名,通常会是:FINENAME.remnew

 

    卸载:

       rpm {-e|--erase} [--allmatches][--nodeps] [--noscripts]

         [--notriggers] [--test] PACKAGE_NAME...

       --allmatches:卸载所有匹配指定名称的程序包的各个版本

       --nodeps:卸载时忽略依赖关系,不建议使用

       --test:测试卸载,dry run模式

 

    查询:

      rpm {-q|--query} [select-options][query-options]

           [select-options]

               PACKAGE_NAME:直接给出程序包名

               -a,--all:查询所有已经安装的程序包名;

               ~]# rpm -qa | grep mysql

               -f,--file FILE:查找指定的文件是由哪个程序包提供的;

               -p,--package PACKAGE_FILE:对还没有安装的程序包文件中执行查询操作

               --whatprovides CAPABILITY:查询指定的CAPABILITY是由哪个程序包提供的

             --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个程序包所依赖

 

            [query-options]

                --changelog:查询rpm程序包的changelog;

                -c,--configfiles:查询指定程序包中有哪些是配置文件;

               -d,--docfiles:查询指定程序包中有哪些文档文件;

               -i,--info:查询程序包相关的信息,包括版本号,发行号,大小等;

               -l,--list:列表显示程序包安装会生成哪些文件

               --provides:列出指定程序包提供的所有的CAPABILITY;

               -R,--requires:查询指定程序包的依赖关系;

               --scripts:查看程序包所携带的脚本的内容;

 

    具体使用方法:

        -qf FILE

        -qc|-ql|-qd|-qi PACKAGE_NAME

        -qpl|-qpc|-qpd|-qpi PACKAGE_FILE

 

    校验:

        rpm {-V|--verify} [select-options] [verify-options]

            S file Size differs

            M Mode differs (includes permissions and file type)

            5 digest (formerly MD5 sum) differs

            D Device major/minor number mismatch

             L readLink(2) path mismatch

            U User ownership differs

            G Group ownership differs

            T mTime differs

            P caPabilities differ

 

    认证:

       rpm --import /PATH/TO/KEY_FILE

       rpm -K /PATH/TO/PACKAGE_FILE

 

    数据库管理:

        数据库的初始化和重建

        /var/lib/rpm

 

        rpm {--initdb|--rebuilddb}

            [--dbpath DIRECTORY]




本文转自 Runs_ 51CTO博客,原文链接:http://blog.51cto.com/12667170/1930751,如需转载请自行联系原作者

相关文章
|
Linux
11.8 Linux查询已建立好的磁盘配额(quota和repquota命令)
对于建立好的磁盘配额,还需要有效的查询配额的手段,这样才能知道系统中到底有哪些分区设定了哪些配额。
250 0
11.8 Linux查询已建立好的磁盘配额(quota和repquota命令)
11.2 磁盘配额启动前的准备工作
前面我们已经谈到,使用磁盘配额的前提,是必须要内核以及文件系统支持才行,这里假设大家使用的就是支持磁盘配额的内核,那么接下来就是要配置文件系统,使其支持配额限制。
99 0
11.2 磁盘配额启动前的准备工作
|
存储 Linux
11.1 磁盘配额是什么
磁盘配额(Quota)就是 Linux 系统中用来限制特定的普通用户或用户组在指定的分区上占用的磁盘空间或文件个数的。
170 0
11.1 磁盘配额是什么
|
存储 Linux 数据库
|
开发工具 数据库