磁盘配额,程序包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘配额,程序包相关的知识,希望对你有一定的参考价值。


磁盘配额

 

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

  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]

本文出自 “12657170” 博客,请务必保留此出处http://12667170.blog.51cto.com/12657170/1930751

以上是关于磁盘配额,程序包的主要内容,如果未能解决你的问题,请参考以下文章

lvm与磁盘配额

在Linux上创建磁盘配额

linux中设备配额 磁盘加密

磁盘配额设置及使用

磁盘配额

Linux下磁盘配额