报告虚拟内存统计信息
命令语法格式
vmstat [options] [delay [count]]
命令描述
命令vmstat报告有关进程,内存,分页,块IO,捕获,磁盘,CPU活动的信息。
生成的第一份报告给出了自上次重启以来的平均值。在一个简单的延时后,给出其他报告。 在任何一种情况下,进程和内存报告都是即时的。
命令行选项
-a, –active 给定2.5.41内核或更好的内核,显示活动和非活动内存。
-f, –forks 开关-f显示自引导以来的fork数。 这包括fork,vfork,clone系统调用,相当于创建的任务总数。 每个进程由一个或多个任务表示,具体取决于线程使用情况。 此显示不重复。
-n, –one-header 仅显示标题一次,而不是定期显示。
-s, –stats 显示各种事件计数器和内存统计信息的表。 此显示不重复。
-D, –disk-sum 报告一些有关磁盘活动的摘要统计信息。
-S, –unit character 在1000(k),1024(K),1000000(m)或1048576(M)字节之间切换输出。 请注意,这不会更改swap(si/so)或block(bi/bo)字段。
-t, –timestamp 为每一行添加时间戳。
-w, –wide 宽输出模式(对于具有较高内存量的系统非常有用,其中默认输出模式会受到不必要的列断裂影响)。 输出宽度超过每行80个字符。
指定模式
-m, –slabs 显示slab分配器相关信息。
-d, –disk 报告磁盘统计信息(需要2.5.70或更高版本)。
-p, –partition device 有关分区的详细统计数据(需要2.5.70或以上)。
其他选项
-V, –version 显示版本信息并退出。
-h, –help 显示帮助信息并退出。
命令行参数
delay 更新之间的延迟,以秒为单位。 如果未指定delay参数,则仅打印一个报告,其中包含自引导以来的平均值。
count 更新的次数。如果没有count,如果定义delay时,默认值为无限输出。
各模式下字段描述
VM
Procs r:可运行进程的数量(正在运行或等待运行时)。 b:不间断睡眠中的进程数。
Memory swpd:使用的虚拟内存量。 free:空闲内存量。 buff:用作缓冲区的内存量。 cache:用作缓存的内存量。 inact:非活动内存量。 (-a选项) active:活动内存量。 (-a选项)
Swap si:从磁盘交换的内存量(/s)。 so:交换到磁盘的内存量[……]
「vmstat(8)」-
「w(1)」-
显示当前登录的用户,以及正在执行的操作
命令语法格式
w [options] user […]
命令描述
命令w显示有关计算机上当前用户及其进程的信息。标题行按当前时间、系统运行的时间、当前登录的用户数、过去1,5,15分钟的系统负载平均值的此顺序显示。
为每个用户显示以下条目:登录名,tty名称,远程主机,登录时间,空闲时间,JCPU,PCPU,当前进程的命令行。
「JCPU」是附加到tty的所有进程使用的时间。 它不包括过去的后台作业,但包括当前正在运行的后台作业。
「PCPU」是当前进程使用的时间,在“what”字段中命名。
命令支持的选项及含义
-h, –no-header 不打印头部。即不再输出第一行(即时间及平均负载)和第二行(即列名)。
-u, –no-current 在找出当前进程和cpu时间时忽略用户名。为了证明这一点,执行“su”,然后执行“w”和“w -u”。
-s, –short 简短输出,不打印登录时间、JCPU、PCPU时间。
-f, –from 显示FROM(远程主机)列。实际上FROM列是不显示ide,而有些发行版在编译的时候,默认是显示FROM列的。
-i, –ip-addr 在FROM列中显示IP地址。默认显示的是主机名。
-o, –old-style 使用以前的输出风格:如果IDLE时间小于一分钟,则显示空白。
-V, –version 显示版本信息并退出。
–help 显示帮助信息并退出。
user 显示指定用户的信息。
命令输出说明
# w
22:10:15 up 1:53, 2 users, load average: 0.00, 0.01, 0.03
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 :0 20:23 1:46m 0.05s 0.04s wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant
root pts/1 :0 20:23 7.00s 0.07s 0.00s w
头部的内容依次为:当前时间,系统运行时间,当前用户数,在过去的1、5、15分钟内系统的平均负载。
接下来信息中:
USER:当前登录的用户名。
TTY:tty的名称。
FROM:远程的Hostname。
LOGIN@:[……]
「watch(1)」-
周期执行命令,并全屏显示输出
命令语法格式
watch [options] command
命令描述
命令watch反复运行命令,显示其输出和错误(第一次屏幕显示)。 这使您可以观察程序的输出随时间的变化。 默认情况下,命令每2秒运行一次,watch将一直运行直到被中断。
命令支持的选项及含义
-d, –differences [permanent] 突出显示连续更新之间的差异。如果使用了可选参数permanent,则永久性显示高亮部分,这样的话可以看到从第一次开始都发生了那些变化。
-n, –interval seconds 指定更新间隔。不允许小于0.1。默认情况下,程序每2秒运行一次。watch将一直运行到被中断。
-p, –precise 精确地每隔interval秒尝试运行command,重点是精确的。尝试运行ntptime,并注意小数秒的值,你会发现几乎是相同。没有使用该选项的时候,你会发现小数秒的增幅会很大。
-t, –no-title 不显示开头的时间、命令、空白行等内容,仅仅显示输出。
-b, –beep 当命令以非零退出时,发出声音进行提示。
-e, –errexit 命令执行出错的时候,停止更新界面,并在按键后退出。
-g, –chgexit 当命令的输出发生变化的时候,退出。
-c, –color 如果输出中有ANSI颜色字符串及样式序列,则对其进行显示。可以对比这两条命令的输出:
# watch -n 1 “echo ‘\033[01;31m#####\033[00m'”
# watch -n 1 -c “echo ‘\033[01;31m#####\033[00m'”
有关ANSI颜色代码可以参考:http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html
-x, –exec 将命令传递给exec(2)执行,而不是使用sh -c执行命令,减少需要使用额外的引号来获得期望的效果。
-h, –help 显示帮助信息并退出。
-v, –version 显示版本信息并退出。
注意事项
使用POSIX选项处理(即,选项处理在第一个非选项参数处停止)。这意味着command之后的标志不会被watch本身解释。
终端调整大小后,屏幕将无法正确重新绘制,直到下一次计划更新。所有–differences突出显示的内容在该更新时也会丢失。
从程序输出中删除非打印字符。如果要查看它们,请使用“cat -v”作为命令管道的一部分。
组合字符应该在屏幕最后一列的字符上显示的字符[……]
「PSmisc :: Small utilities that use the /proc filesystem」
Psmics,该软件包包含了用于显示运行中的进程的信息的程序。
包含的命令列表
fuser 报告正在使用指定文件或者指定文件系统的进程的进程ID。
killall 通过进程名来结束进程;它向所有正在运行任何命令的进程发送一个信号。
peekfd Peek at file descriptors of a running process, given its PID
prtstat Prints information about a process
pstree Displays running processes as a tree
pstree.x11 Same as pstree, except that it waits for confirmation before exiting
参考文献
The PSmisc Website: http://psmisc.sourceforge.net[……]
「fuser(1)」-
使用文件或套接字来识别进程
命令语法格式
fuser [-fuv] [-a|-s] [-4|-6] [-c|-m|-n space] [ -k [-i] [-M] [-w] [-SIGNAL] ] name …
fuser -l
fuser -V
命令描述
命令fuser显示所有正在使用指定文件或文件系统的进程。在默认的显示模式中,每个文件名后面都跟着一个字符,该字符表示访问类型:
c,当前目录。
e,正在运行的可执行文件。
f,打开文件。默认的显示模式下,省略f。
F,打开文件进行写入。默认显示模式下,省略F。
r,根目录。
m,mmap的文件或共享库。
.,占位符,在默认显示模式下省略。
如果指定的文件没有被访问、或在致命错误的情况下,fuser返回非零返回码。如果至少找到一个访问,则返回零。
为了使用TCP和UDP套接字来查找进程,必须使用-n选项指明相应的命名空间。默认情况下,fuser将查找IPv6和IPv4套接字。要更改默认行为,使用-4和-6选项。套接字可以由本地和远程端口,以及远程地址指定。所有字段都是可选的,但缺少字段前面的逗号必须存在:
[lcl_port][,[rmt_host][,[rmt_port]]]
其中,IP地址和端口号可以使用符号或数值。
命令fuser只会将PIDs输出到标准输出,其他一切都会发送到标准错误。
命令支持的选项及含义
-a, –all 输出中,显示在命令行中指定的所有文件。默认,至少存在一个访问进程的文件才会被显示。
-k, –kill 杀死访问该文件的进程。除非用-SIGNAL更改信号,否则默认发送SIGKILL。fuser不会杀死自身,但可能会杀死其他fuser进程。在尝试杀死之前,执行fuser的进程的“有效用户ID”设置为其“真实的用户ID”。
-i, –interactive 杀死一个进程前,请求用户确认。如果-k不存在,则此选项将被忽略。
-w 仅杀死具有写入权限的进程。如果-k不存在,则此选项将被忽略。
-SIGNAL 杀死进程时,使用指定的信号,代替默认的SIGKILL。信号即可以通过「信号名」指定(例如,-HUP),也可以通过信号值(例如,-1)指定。如果没有指定-k,该选项会被静默的忽略。
-I, –inode 对于命名空间文件,所有比较都基于指定文件的inode,即使在基于网络的文件系统上也不会基于文件名。
-l, –list-signals 列出所有可用的信号名。
-m NAME, –mount NAME 参数NAME指定已挂载文件系[……]
「killall(1)」-
通过名称结束进程
命令语法格式
killall [options] [–] name …
killall -l
killall -V, –version
命令描述
命令killall向运行任何指定命令的所有进程发送信号。 如果未指定信号名称,则发送SIGTERM信号。
信号可以通过名称(例如-HUP或-SIGHUP)、数字(例如-1)、选项-s这三种方式来指定。
如果命令名称name不是正则表达式(选项-r)并且包含斜杠(/),则将选择执行该特定命令文件的进程进行终止,而与其名称无关。
一个killall进程永远不会自杀(但可能会杀死其他killall进程)。
命令支持的选项及含义
-s, –signal SIGNAL, -SIGNAL 发送指定的信号,而不是默认的SIGTERM信号。
-w, –wait 等待所有被杀死的进程死亡。 如果任何被杀死的进程仍然存在,则killall每秒检查一次;如果没有剩余进程,则仅返回。 请注意,如果信号被忽略,没有效果,或者进程处于僵尸状态,killall可能会永远等待。
-Z, –context pattern (仅限SELinux)指定安全上下文:仅终止具有与给定扩展正则表达式模式匹配的安全上下文的进程。 必须在命令行上的其他参数之前。 命令名称是可选的。
-i, –interactive 在结束进程之前,要求用户确认。
选择要结束的进程
-e, –exact 需要与很长的名字name完全匹配。
如果命令名称超过15个字符,则全名可能不可用(即,它被换出)。在这种情况下,killall会杀死前15个字符内匹配的所有内容。使用-e时,将跳过此类条目。 如果除了-e之外还指定了-v选项,killall会为每个跳过的条目打印一条消息,
-r, –regexp 根据regexp(3)将进程名称模式解释为POSIX扩展正则表达式(ERE)。
-I, –ignore-case 不区分大小写的进程名称匹配。
-y, –younger-than TIME 仅匹配指定时间之后(从之后开始)的进程。 时间被指定为浮点数,然后是单位。 单位为s、m、h、d、w、M、y,分别为秒、分钟、小时、天、周、月、年。
-o, –older-than TIME 仅匹配指定时间之前(从之前开始)的进程。 时间被指定为浮点数,然后是单位。 单位为s、m、h、d、w、M、y,分别为秒、分钟、小时、天、周、月、年。
-u, –user user 只结束指定的用户拥有的进程。 命令名称是可选的。
-g, –process-group 终止进程所属的进程组里的全部进程。[……]
「pstree(1)」-
显示树形结构的进程列表
命令语法格式
pstree [options] [pid, user]
pstree -V, –version
命令描述
命令pstree将运行进程显示为树。树将以pid为根目录;如果省略pid,则以init为根。 如果指定了用户名,则会显示以该用户拥有的进程为根的所有进程树。
在视觉上,pstree合并相同的分支,方法是将它们放在方括号中,并在前面添加重复计数,例如:
init-+-getty
|-getty
|-getty
`-getty
会显示为:
init—4*[getty]
进程的子线程在父进程下找到,并以大括号中的进程名称显示,例如
icecast2—13*[{icecast2}]
如果pstree以pstree.x11的名称调用,那么它将提示用户在行末按RETURN,并且在按下RETURN之前不会返回。当pstree在xterminal中运行时,这非常有用。
某些内核或mount参数(例如procfs的hidepid选项)将隐藏某些进程的信息。 在这些情况下,pstree将尝试在没有此信息的情况下构建树,将进程名显示为问号。
命令行选项
排序选项
-n, –numeric-sort 通过PID对具有相同祖先的进程进行排序,而不是按名称。 (数字排序。)
控制输出内容
-a, –arguments 显示命令行参数。 如果交换了进程的命令行,则该进程将显示在括号中。选项-a隐式禁用进程的压缩,但不禁用线程。
-c, –compact 禁用相同子树的压缩。 默认情况下,尽可能压缩子树。
-h, –highlight-all, -Hpid, –highlight-pid pid 突出显示当前进程及其祖先。 如果终端不支持突出显示,或者当前进程或其任何祖先都未显示在子树中,则无操作。
-H 像-h一样,但突出显示指定的进程。 与-h不同,如果突出显示不可用,则在使用-H时,pstree会失败。
-g, –show-pgids 显示PGID。 进程组ID在每个进程名称后的括号中以十进制数显示。-g隐式禁用压缩。 如果同时显示PID和PGID,则首先显示PID。
-l, –long 显示长行。 默认情况下,行被截断为COLUMNS环境变量或显示宽度。 如果这两种方法都不起作用,则使用默认的132列。
-N ns, –ns-sortns 显示指定类型的每个命名空间的单个树。 可用的ns类型有:ipc,mnt,net,pid,user,uts。 普通用户无权访问其他用户的进程信息,因此输出将受到限制。
-p, –sho[……]
「pstree.x11(1)」-
显示树形结构的进程列表
命令描述
参考pstree(1)手册。
参考文献
man 1 pstree, Version 23.1-1+b1
更新日志
09/26/2018 创建文章[……]
「quota」
quotacheck
quotaon
quotaoff
quota
quotasync
convertquota
edquota
quot
quota_nld
quotastats
repquota
rpc.rquotad
setquota
warnquota
xqmstats[……]
「edquota(8)」-
编辑用户配额
命令语法格式
edquota [ -p protoname ] [ -u | -g | -P ] [ -rm ] [ -F format-name ] [ -f filesystem ] username | groupname | projectname…
edquota [ -u | -g | -P ] [ -F format-name ] [ -f filesystem ] -t
edquota [ -u | -g | -P ] [ -F format-name ] [ -f filesystem ] -T username | groupname | projectname…
命令描述
命令edquota是一个配额编辑器。可以在命令行上指定一个或多个用户/组/项目。如果在用户/组/项目名称的位置给出了一个数字,则将其视为UID/GID/项目ID。对于每个用户/组/项目,将使用该用户/组/项目的当前磁盘配额的ASCII表示创建临时文件,然后在该文件上调用编辑器。然后可以修改配额,添加新配额等等。将配额设置为零表示不应施加配额。
报告Block的使用和限制,并将其解释为默认的KB(1024字节)块的倍数。符号K,M,G,T可以附加到数值以表示KB,MB,GB,TB。
按字面意思解释Inode使用和限制。符号k,m,g,t可以附加到数值以表示10^3,10^6,10^9,10^12个Inode的倍数。
在每个文件系统指定的宽限期内,允许用户超过其软限制。宽限期到期后,软限制将作为硬限制强制执行。
文件中的当前使用信息仅供参考,不能修改;只能改变硬限制和软限制。
离开编辑器后,edquota会读取临时文件,并修改二进制配额文件,以反映所做的更改。
除非环境变量EDITOR或VISUAL另有指定编辑器,否则调用的编辑器是editor(1)命令。
只有超级用户才可以编辑配额。
命令支持的选项及含义
-r, –remote 编辑非本地配额,使用远程服务器上的rpc.rquotad来设置配额。仅当配置工具编译时启用了”对通过RPC设置配额“的支持时,此选项才可用。选项-n是等效的,并且是为了向后兼容而维护的。
-m, –no-mixed-pathnames 目前,NFSv4挂载点的路径名”在路径中没有前导斜杠的情况下“发送。rpc.rquotad使用它来识别NFSv4挂载,并正确地将NFS文件系统的伪序列预先添加到路径中。
如果指定此选项,edquota将始终发送带有前导斜杠的路径。 这可能有助于遗留原因,但请注意,如果您使用新的rpc.rquotad,RPC上的配额将停止工作。
-u, –user 编辑用户[……]
「quota(1)」-
显示硬盘的使用情况和限制
命令语法格式
quota [ -F format-name ] [ -guqvswi ] [ -l | [ -QAm ]]
quota [ -F format-name ] [ -qvswi ] [ -l | [ -QAm ]] -u user…
quota [ -F format-name ] [ -qvswi ] [ -l | [ -QAm ]] -g group…
quota [ -F format-name ] [ -qvswi ] [ -l | [ -QAm ]] -P project…
quota [ -F format-name ] [ -qvswugQm ] -f filesystem…
命令描述
命令quota显示用户的磁盘使用情况和限制。 默认情况下,仅打印用户配额。 默认情况下,空间使用和限制以KB显示(并且由于历史原因而被命名为“Block”)。
命令quota报告/etc/mtab中列出的所有文件系统的配额。对于NFS挂载的文件系统,将执行对服务器计算机上的rpc.rquotad的调用以获取信息。
命令支持的选项及含义
-F, –format=format-name 显示指定格式的配额(即不执行格式自动检测)。可能的format-name为:
vfsold,具有16位UID/GID的原始配额格式,
vfsv0,具有32位UID/GID的配额格式,64位空间使用情况,32位inode使用和限制,
vfsv1,具有64位配额的配额格式限制和使用,
rpc,(NFS上的配额),
xfs(XFS文件系统上的配额)
-g, –group 打印用户所属组的组配额。 可选的组参数将显示限制为指定的组。
-u, –user 显示用户的配额。默认值。
-P, –project 打印指定项目的配额。
-v, –verbose 将在没有分配存储的文件系统上显示配额。
-s, –human-readable 选项将使quota(1)尝试选择显示限制、已用空间和已用Inode的单位。
–always-resolve 即使名称仅由数字组成,也始终尝试将用户/组名称转换为uid/gid。
-p, –raw-grace 当用户处于宽限期时,报告自他的宽限时间用完(或已用完)以来的时间以秒为单位。 没有宽限时间生效时,字段为“0”。 在通过脚本解析输出时,这尤其有用。
-i, –no-autofs 忽略自动挂载程序挂载的挂载点。
-l, –local-only 仅在本地文件系统上报告配额(即忽略NFS挂载[……]
「quotacheck(8)」-
扫描文件系统以查找磁盘使用情况,创建,检查,修复配额文件
命令语法格式
quotacheck [ -gubcfinvdMmR ] [ -F quota-format ] -a | filesystem
命令描述
命令quotacheck检查每个文件系统,创建当前磁盘使用情况的表,并将此表与在文件系统中的磁盘配额文件中记录的表进行比较(如果指定了选项-c,则省略此步骤)。如果检测到任何不一致,则更新配额文件和不正确配额的当前系统副本(后者仅在检查了未建议的活动文件系统时才会发生)。默认情况下,仅检查用户配额。命令quotacheck希望它检查的每个文件系统中都有名为[a]quota.user和[a]quota.group的配额文件位于相关文件系统的根目录下。如果文件不存在,quotacheck将创建它。
如果配额文件已损坏,quotacheck会尝试保存尽可能多的数据。抢救数据可能需要用户干预。没有其他选项,quotacheck将在这种情况下退出。在交互模式下(选项-i),系统会要求用户提供建议。也可以从命令行提供建议(参见选项-n),这在自动(即从脚本中)运行quotacheck并且失败是不可接受的时,非常有用。
每次系统引导,并挂载无效的文件系统时,都应运行quotacheck。这很可能发生在系统崩溃之后。
强烈建议在文件系统关闭配额时运行quotacheck。否则,可能会导致配额文件中的数据损坏或丢失。在实时文件系统上运行quotacheck也是不明智的,因为实际使用情况可能会在扫描期间发生变化。为了防止这种情况,quotacheck尝试在开始扫描之前以只读方式重新挂载文件系统。扫描完成后,以读写重新挂载文件系统。您可以使用-m选项禁用它。您还可以使用quotacheck忽略”使用选项-M以只读方式重新挂载文件系统“的失败。
命令支持的选项及含义
-b, –backup 强制quotacheck在写入新数据之前备份配额文件。
-d, –debug 启用调试模式。 它将产生大量可用于调试程序的信息。 输出非常详细,扫描速度很慢。
-u, –user 仅检查/etc/mtab中列出的用户配额或指定的文件系统上的用户配额。 这是默认操作。
-g, –group 仅检查/etc/mtab中列出的组配额或指定的文件系统上的组配额。
-c, –create-files 不要读取现有的配额文件。 只需执行一次新扫描并将其保存到磁盘即可。 quotacheck还会在找不到旧配额文件时跳过扫描。
-f, –force 强制在启用了配额的文件系统上检查和写入新配额文件。 建议不要这样做,因为创建的配额文件可能不同步。
-M, –try-remount 如[……]
「quotaoff(8)」-
关闭文件系统的限额
命令描述
参考quotaon(8)手册。
参考文献
man 8 quotaon, Version 4.04-2+b1
更新日志
12/02/2018 创建文章[……]
「quotaon(8)」-
打开或关闭文件系统的限额
命令语法格式
quotaon [ -vugfp ] [ -F format-name ] filesystem… quotaon [ -avugPfp ] [ -F format-name ]
quotaoff [ -vugPp ] [ -x state ] filesystem… quotaoff [ -avugp ]
命令描述
quotaon
命令quotaon向系统宣布在一个或多个文件系统上启用磁盘配额。文件系统配额文件必须存在于指定文件系统的根目录中,并命名为aquota.user(对于版本2用户配额),quota.user(对于版本1用户配额),aquota.group(对于版本2组配额)或quota.group(版本1组配额)。
而XFS文件系统是一种特殊情况 — XFS将配额信息视为文件系统元数据,并使用日记功能提供更高级别的一致性保证。在XFS磁盘配额系统中有两个组件:”记帐“;”强制限制“。 XFS文件系统要求在挂载时打开配额”记帐“。在配额”记账“已打开后,可以在XFS文件系统上启用和禁用”强制限制“。默认设置是启用”记账“和”强制限制“。
XFS配额实现不会在用户可见文件中维护配额信息,而是在内部存储此信息。
quotaoff
命令quotaoff向系统宣布在指定的文件系统应该关闭任何磁盘配额。
命令支持的选项及含义
quotaon
-F, –format=format-name 报告指定格式的配额(即不执行格式自动检测)。可能的format-name为:
vfsold,具有16位UID/GID的原始配额格式,
vfsv0,具有32位UID/GID的配额格式,64位空间使用情况,32位inode使用和限制,
vfsv1,具有64位配额的配额格式限制和使用,
rpc,(NFS上的配额),
xfs(XFS文件系统上的配额)
-a, –all 所有带有配额功能的在/etc/fstab中自动挂载(无noauto选项)的非NFS文件系统,都将打开其配额。这通常在启动时使用以启用配额。
-v, –verbose 显示打开配额的每个文件系统的消息。
-u, –user 操纵用户配额。 这是默认值。
-g, –group 操纵组配额。
-P, –project 操纵项目配额。
-p, –print-state 只打印配额的打印状态(即配额是打开还是关闭),而不是配额。
-x, –xfs-command enforce 切换XFS文件系统的”强制限制“。 这是任何XFS文件系统的默认操作。 此选项仅适用于XFS,并且[……]
「quotastats(8)」-
查询配额的统计信息
命令语法格式
quotastats
命令描述
命令quotastats查询内核的配额统计信息。它显示:
Supported kernel quota version
Number of dquot lookups
Number of dquot drops
Number of dquot reads
Number of dquot writes
Number of quotafile syncs
Number of dquot cache hits
Number of allocated dquots
Number of free dquots
Number of in use dquot entries (user/group)
相关手册
quota(1)
参考文献
man 8 quotastats, Version 4.04-2+b1
更新日志
12/02/2018 创建文章[……]
「repquota(8)」-
总结文件系统的配额
命令语法格式
repquota [ -vspiugP ] [ -c | -C ] [ -t | -n ] [ -F format-name ] filesystem…
repquota [ -avtpsiugP ] [ -c | -C ] [ -t | -n ] [ -F format-name ]
命令描述
命令repquota打印指定文件系统的磁盘使用情况和配额摘要。对于每个用户,打印当前文件数和空间量(以千字节为单位),以及使用edquota(8)或setquota(8)设置的任何配额限制。在第二列中,repquota打印两个字符,标记超出了哪些限制。如果用户超过他的空间软限制,或者在未设置软限制的情况下达到他的空间硬限制,则第一个字符是’+’,否则打印的字符是’-‘。第二个字符类似地表示inode使用状态。
命令repquota必须将所有用户/组/项目的ID转换为名称(除非指定了选项-n),因此打印所有信息可能需要一段时间。为了尽可能快地进行翻译,repquota尝试检测(通过读取/etc/nsswitch.conf)条目是存储在标准纯文本文件中还是存储在数据库中,并分别翻译1024个名称或每个名称的块。您可以通过-c或-C选项覆盖此自动检测。
命令支持的选项及含义
-a, –all 报告在/etc/mtab中指示的所有带有配额的、读写的文件系统。
-v, –verbose 报告所有配额,即使没有使用。 关于quotafile信息也更加冗长。
-c, –cache 通过扫描所有用户,缓存条目来报告和转换uid/gids到大块名称(默认)。 使用/etc/passwd文件时,这是很好的(快速)行为。
-C, –no-cache 翻译单个条目。 当用户存储在数据库中时,这会更快。
-t, –truncate-names 截断超过9个字符的用户/组名称。 当存在这样的名称时,这导致更好的输出。
-n, –no-names 不要将UID/GID解析为名称。 这可以加快印刷速度。
-s, –human-readable 尝试以比默认单位更合适的单位报告已用空间、使用的inode数量和限制。
-p, –raw-grace 当用户处于宽限期时,报告自他的宽限时间用完(或已用完)以来的时间(以秒为单位)。没有宽限时间生效时,字段为“0”。 在通过脚本解析输出时,这尤其有用。
-i, –no-autofs 忽略自动挂载程序挂载的挂载点。
-F, –format=format-name 报告指定格式的配额(即不执行格式自动检测)。可能的format-name为:
vfsold,具有1[……]
「setquota(8)」-
设置磁盘配额
命令语法格式
setquota [ -rm ] [ -u | -g | -P ] [ -F quotaformat ] name block-softlimit block-hardlimit inode-softlimit inode-hardlimit -a | filesystem…
setquota [ -rm ] [ -u | -g | -P ] [ -F quotaformat ] [ -p protoname ] name -a | filesystem…
setquota -b [ -rm ] [ -u | -g | -P ] [ -F quotaformat ] -a | filesystem…
setquota -t [ -u | -g | -P ] [ -F quotaformat ] block-grace inode-grace -a | filesystem…
setquota -T [ -u | -g | -P ] [ -F quotaformat ] name block-grace inode-grace -a | filesystem…
命令描述
命令setquota是一个命令行配额编辑器。 可以在命令行上指定文件系统、用户/组/项目名称、文件系统的新配额。 请注意,如果在用户/组/项目名称的位置给出了一个数字,则将其视为UID/GID/项目ID。
命令行选项
-r, –remote 编辑非本地配额,使用远程服务器上的rpc.rquotad来设置配额。仅当配置工具编译时启用了”对通过RPC设置配额“的支持时,此选项才可用。
-m, –no-mixed-pathnames 目前,NFSv4挂载点的路径名”在路径中没有前导斜杠的情况下“发送。rpc.rquotad使用它来识别NFSv4挂载,并正确地将NFS文件系统的伪序列预先添加到路径中。
如果指定此选项,edquota将始终发送带有前导斜杠的路径。 这可能有助于遗留原因,但请注意,如果您使用新的rpc.rquotad,RPC上的配额将停止工作。
-F, –format=quotaformat 编辑指定格式的配额(即不执行格式自动检测)。可能的format-name为:
vfsold,具有16位UID/GID的原始配额格式,
vfsv0,具有32位UID/GID的配额格式,64位空间使用情况,32位inode使用和限制,
vfsv1,具有64位配额的配额格式限制和使用,
rpc,(NFS上的配额),
xfs(XFS文件系统上的配额)
-u, –user 编辑用户配额。 这是默认值。[……]
「rpm」- 包管理器命令
常用命令
查看某个包的信息:
rpm -q -i filebeat
查看所有已经安装的软件包:
rpm -qa
这个命令有一个神奇的地方,同一个选项可能有多个含义: 1)rpm -i – 该命令中的-i是–install的缩写,表示安装。 2)rpm -q -i – 该命令中的-i是–info的缩写,表示显示包的信息。
SYNOPSIS
QUERYING AND VERIFYING PACKAGES:
rpm {-q|–query} [select-options] [query-options]
rpm {-V|–verify} [select-options] [verify-options]
rpm –import PUBKEY …
rpm {-K|–checksig} [–nosignature] [–nodigest] PACKAGE_FILE …
INSTALLING, UPGRADING, AND REMOVING PACKAGES:
rpm {-i|–install} [install-options] PACKAGE_FILE …
rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
rpm {-F|–freshen} [install-options] PACKAGE_FILE …
rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …
MISCELLANEOUS:
rpm {–initdb|–rebuilddb}
rpm {–addsign|–resign} PACKAGE_FILE …
rpm {–querytags|–showrc}
rpm {–setperms|–setugids} PACKAGE_NAME …
select-options
[PACKAGE_NAME] [-a,–all] [-f,–file FILE]
[-g,–group GROUP] {-p,–package PACKAGE_FILE]
[–fileid ID] [–hdrid SHA1] [–pkgid MD5] [–tid TID]
[–querybynumber HDRNUM] [–triggeredby PACKAGE_NAME]
[[……]
「rsync」
安装方法
// macOS
# brew install rsync
安装可执行程序
rsync rsync是rcp和scp的替代品,具有更多功能的。它使用“rsync算法”,提供了一种非常快速的同步远程文件的方法,通过仅发送文件中的差异来同步文件,而且在链路一端的文件不需要必须存在。
注意事项
必须同时在本地和远程进行安装rsync。rsync命令即提供了服务端功能(使用–daemon选项),也提供了客户端功能(不使用–daemon选项时)。
总结
本章节中介绍了rsync的安装,包括从源码安装、安装二进制包等等。接下来就要介绍RSYNC服务搭建,不然我们也没有办法演示rsync的文件推送和拉去。
参考文献
BFLS/rsync-3.1.2[……]
「rsync(1)」- 一种快速,多功能,远程(和本地)文件复制工具
常用命令
通过 SSH 进行文件同步,而无需远程部署 rsync 服务:
rsync -avz -e ‘ssh -i /path/to/id_rsa’ /path/to/src root@hostname:/path/to/dest
快速完成文件同步:
rsync -r –size-only /src /dest # 即,文件大小不同,则进行同步
同步文件,但是无需同步时间:
rsync -r –no-times /src /dest
如果想并行传输以充分利用带宽,建议使用 parallel 或 xargs 等命令:
ls /srv/mail | xargs -n1 -P4 -I% rsync -Pa % myserver.com:/srv/mail/
补充说明: 1)目前,暂时无法指定 rsync 同步文件的顺序。
语法格式
Local:
rsync [OPTION…] SRC… [DEST]
Access via remote shell:
Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION…] [USER@]HOST::SRC… [DEST]
rsync [OPTION…] rsync://[USER@]HOST[:PORT]/SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST::DEST
rsync [OPTION…] SRC… rsync://[USER@]HOST[:PORT]/DEST
仅使用一个SRC参数,且没有DEST参数的用法,将列出源文件,而不是复制。
命令描述
Rsync是一个快速、灵活的文件复制工具。通过远程Shell或者Rsync守护进程,可以从另一台主机上拉取文件,或者向另一台主机发送文件,也可以在本地进行文件复制。Rsync提供了大量的选项用于控制其行为的各个方面,并可以对要复制的文件进行非常灵活的控制。它以差异传输算法著称,该算法发送源文件与目的文件的差异,以此来减少在网络上发送的数据量。Rsync广泛的用于备份、镜像及作为一种改进的日常使用copy命令。
Rsync使用“快速检查”算法(默认情况下)查找需要传输的文件,该算法查找大小或上次修改时间发生变化的文件。 当”快速检查“表明不需要更[……]
「rsyncd.conf」- 配置选项详解
以服务模式运行「rsync」(LAUNCHING THE RSYNC DAEMON)
以服务模式启动rsync是通过在rsync启动时指定–daemon选项。
如果要使用chroot、绑定1024以下的端口号、设置文件的所有权,则rsync守护进程必须以root权限运行。否则的话,只需要有读写相应的数据、日志、锁定文件的权限就可以了。
可以使用inetd来运行rsync,也可以以独立守护进程来运行rsync,或者通过远程shell来访问rsync。如果以守护进程的方式启动rsync,只需要使用”rsync –daemon”命令。
当通过inetd来运行rsync时 首先,需要在/etc/services中配置如下行:
rsync 873/tcp
然后,需要在/etc/inetd.conf配置如下行:
rsync stream tcp nowait root /usr/bin/rsync rsyncd –daemon
最后,向inetd发送HUP信号来告诉inetd重新读取配置文件。
注意:你不应该向rsync守护进程发送HUP信号来强制rsync重新读取rsyncd.conf配置文件。该文件在每个客户端连接中会重新读取。
仅用于全局参数
文件中的第一个参数([module]头之前)是全局参数。 Rsync还允许使用“[global]”模块名称来指示一个或多个全局参数节的开始(global必须小写)。
您也可以在配置文件的全局部分包含任何模块参数,在这种情况下,提供的值将覆盖该参数的默认值。
您可以在参数值中使用对环境变量的引用。字符串参数将尽可能延迟%VAR%引用(当在程序中使用该字符串时),从而允许在rsync连接时使用设置的变量,例如RSYNC_USER_NAME。从配置文件读取时,非字符串参数(如真/假设置)会被展开。如果环境中不存在变量,或者一系列字符不是有效的引用(例如未配对的百分号),则原始字符将保持不变。这有助于向后兼容性和安全性(例如,将不存在的%VAR%扩展为路径中的空字符串可能会导致非常不安全的路径)。将%插入值的最安全方法是使用%%。
motd file 该选项允许你指定一个“”message of the day”“来向每个连接上的客户端展示。类似于Linux中的/etc/motd的功能。 默认值:无默认值。 通常是一些站点信息或者一些其他内容。可以在命令行选项中使用–dparam=motdfile=FILE来覆盖该选项的设置。
pid file 该参数告诉rsync守护进程将PID写入指定的文件中。如果文件已经存在,rsync守护进程将终止,而不是覆盖文件。 可以在[……]
「在Samba中,包含的可执行程序」
在「Server端」使用的命令程序
samba is a server to provide AD and SMB/CIFS services to clients.
samba_dnsupdate is used to update our DNS names using TSIG-GSS.
samba_spnupdate is a script to update the servicePrincipalName names from spn_update_list.
samba_upgradedns is a Unix SMB/CIFS implementation.
nmbd is the Samba NetBIOS name server.
smbd is the main Samba daemon which provides SMB/CIFS services to clients.
smbstatus reports current Samba connections.
smbcontrol is used to control running smbd, nmbd and winbindd daemons.
sharesec manipulates share ACL permissions on SMB file shares.
oLschema2ldif converts LDAP schema’s to LDB-compatible LDIF.
pdbedit is a tool used to manage the SAM database.
eventlogadm is used to write records to eventlogs from STDIN, add the specified source and DLL eventlog registry entries and display the active eventlog names (from smb.conf).
mvxattr is used to recursively rename extended attributes.
profiles is a utility that reports and changes SIDs in Windows registry files. It currently only supports Windows NT.
软件包「smbclient」中包含的命令;有关「SMB」/「CIFS」的客户端命令;
smbclient SMB/CIFS的访问工具,类似于ftp命令。 在CentOS 6.9中,[……]
「nmblookup」
nmblookup,NetBIOS over TCP/IP的Client用于查找NetBIOS Name。
命令行语法格式(SYNOPSIS)
nmblookup [-M|–master-browser] [-R|–recursion] [-S|–status] [-r|–root-port] [-A|–lookup-by-ip]
[-B|–broadcast <broadcast address>] [-U|–unicast <unicast address>] [-d <debug level>]
[-s <smb config file>] [-i <NetBIOS scope>] [-T|–translate] [-f|–flags] {name}
命令简述(DESCRIPTION)
This tool is part of the samba(7) suite.
nmblookup is used to query NetBIOS names and map them to IP addresses in a network using NetBIOS over TCP/IP queries. The options allow the name queries to be directed at a particular IP broadcast area or to a particular machine. All queries are done over UDP.
命令支持的选项及含义(OPTIONS)
-M|–master-browser Searches for a master browser by looking up the NetBIOS name with a type of 0x1d. If
name is “-” then it does a lookup on the special name MSBROWSE. Please note that in order to use the
name “-“, you need to make sure “-” isn’t parsed as an argument, e.g. use : nmblookup -M — -.
-R|–recursion Set the recursion desired bit in the packet to do a recursive lookup. This is used when sending a name query to a mach[……]
「smbclient」
smbclient,用于访问Server上的资源的像ftp一样的客户端。
命令行语法格式(SYNOPSIS)
smbclient [-b <buffer size>] [-d debuglevel] [-e] [-L <netbios name>] [-U username] [-I destinationIP] [-M <netbios name>] [-m maxprotocol] [-A authfile] [-N] [-C] [-g] [-i scope] [-O <socket options>] [-p port] [-R <name resolve order>] [-s <smb config file>] [-t <per-operation timeout in seconds>] [-k] [-P] [-c <command>]
smbclient {servicename} [password] [-b <buffer size>] [-d debuglevel] [-e] [-D Directory] [-U username] [-W workgroup] [-M <netbios name>] [-m maxprotocol] [-A authfile] [-N] [-C] [-g] [-l log-basename] [-I destinationIP] [-E] [-c <command string>] [-i scope] [-O <socket options>] [-p port] [-R <name resolve order>] [-s <smb config file>] [-t <per-operation timeout in seconds>] [-T<c|x>IXFqgbNan] [-k]
命令简述(DESCRIPTION)
该命令是samba(7)套件的一部分。
smbclient用于与SMB/CIFS Server进行“交流”。它提供了类似于终端下的ftp(1)程序的界面。支持的操作包括从服务器获取文件到本地机器,将文件从本地机器上传到服务器,从服务器检索目录信息等等。
命令支持的选项及含义(OPTIONS)
servicename servicename是要在server上使用的service的描述。servicename采用//server/service的形式:其中server是提供所需服务的SMB/CIFS Server的NetBIOS Name;se[……]
「sed」
sed,属于sed软件包,这个软件包里没有其他的命令。
在GNU/Linux中,从发行版的源中安装
apt-get install sed
在GNU/Linux中,使用源码编译安装
下载源码 https://www.gnu.org/software/sed/#download
解压并进入源码目录
配置并编译安装 ./configure –prefix=/usr –bindir=/bin
make -j8
make install
运行命令 sed –help
在macOS中,使用源码编译安装
下载源码 https://www.gnu.org/software/sed/#download
解压并进入源码目录
配置并编译安装 ./configure –prefix=/gnu –bindir=/gnu/bin
make -j8
make install
运行命令 /gnu/bin/sed –help
参考文献
LFS/6.27. Sed-4.5[……]
「sed(1)」- 文本过滤和转化的流编辑器
常用命令
字符串替换:
sed -i ‘s/bar/baz/gI’ /path/to/file
# I:忽略大小写。如果希望大小写敏感,则使用 i 或者忽略。
向文件末尾追加文本:
sed -i ‘$a some-string’ /path/to/file
删除文件的第一行内容:
sed ‘1d’ /path/to/file
替换中文字符,但鉴于 sed 并不支持 Unicode 转义,所以需要特殊处理:
# printf “\u4e00-\u9fa5” # 中文的 Unicode 范围,并不包含标点符号
一-龥
# sed -E ‘s/[一-龥]//g’ /path/to/file.txt
根据行号范围进行替换:
sed ‘19,33s/google/facebook/g’ file
语法格式
sed [OPTION]… {script-only-if-no-other-script} [input-file]…
命令描述
sed,stream editor,是一个非交互式、命令行式的文本编辑器,用于过滤和转化文本内容。
sed,以‘行’为单位,从文件中读取一行,然后使用给出的命令处理读取到的行。sed可以从文件中读取编辑的内容,也可以从管道中(pipeline)中读取文本内容,这也是sed区别与其他编辑器的一个地方。
如果没有特殊说明,本文的sed版本为4.2.2。
sed是如何工作的?
sed 维护了两个数据缓冲:
活动的模式空间(the active pattern space)。
辅助的保持空间(the auxiliary hold space)。
这两个空间初始化的时候都为空。
sed对文本循环执行如下操作:
(1). 读取一行,移除任何尾随的换行符号,然后放入pattern space里。
(2). 执行命令;每一条命令都有一个关联的地址:地址是一种条件代码,只有条件匹配的时候才执行命令。
(3). 当脚本(命令)执行结束时,将pattern space的内容打印到输出流,如果之前移出的结尾换行符,则添加上。
(4). 然后回到(1)开始处理下一行。
除非使用了特殊命令(如 D,下面会介绍D命令),否则在进入下一轮循环的时候,pattern space会被删除。
另一方面,hold space会保存它的[……]
「SELinux :: Security-Enhanced Linux」
从发行版的源中安装
#!/bin/bash
###################################################################################
# Kali GNU/Linux Rolling
###################################################################################
# 安装selinux-utils,SELinux管理配置工具。
apt-get install selinux-utils
# 安装policycoreutils:用于SELinux核心策略配置的基本程序。
apt-get install policycoreutils
安装的可执行程序
avcstat
compute_av
compute_create
compute_member
compute_relabel
compute_user
getconlist
getdefaultcon
getfilecon
getpidcon
getsebool
getseuser
matchpathcon
policyvers
sefcontext_compile
selabel_digest
selabel_lookup
selabel_lookup_best_match
selabel_partial_match
selinux_check_securetty_context
selinux_restorecon
selinuxenabled
selinuxexeccon
setfilecon
togglesebool
setenforce
getenforce
「policycoreutils」中包含的程序
fixfiles
load_policy
restorecon
restorecon_xattr
setfiles
secon
genhomedircon
semodule
sestatus
setsebool
相关书籍
关于SELinux的比较少,而且都是英文的《SELINUX NSA’s Open Source Security Enbanced Linux》、《SELinux System Administrator》、《SELinux by Example》
同类型的产品
AppA[……]
「getenforce(8)」-
报告当前SELinux的模式
命令语法格式
getenforce
命令描述
命令getenforce报告当前SELinux是否enforcing, permissive, disabled。
相关手册
selinux(8), setenforce(8), selinuxenabled(8)
参考文献
man 8 getenforce, Version 2.8-1+b1
更新日志
10/17/2018 创建文章[……]
「sestatus(8)」-
查看SELinux状态的工具
命令语法格式
sestatus [-v] [-b]
This tool is used to get the status of a system running SELinux.
命令描述
命令sestatus用于获取运行SELinux的系统的状态。该手册页描述了sestatus程序。
此工具用于获取运行SELinux的系统的状态。 它显示有关SELinux是启用还是禁用、关键目录的位置、加载的策略、状态的数据。如示例所示:
> sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allow
Memory protection checking: actual (secure)
Max kernel policy version: 26
命令sestatus还显示
在/etc/sestatus.conf中列出的文件和进程的安全上下文。手册sestatus.conf(5)中描述了该文件的格式。
布尔值的状态。
更多内容可以参考官方的手册。
命令支持的选项及含义
-v 显示/etc/sestatus.conf中列出的文件和进程的上下文。它还检查文件是否是符号链接,如果是,则还显示目标文件的上下文。
将始终显示以下上下文:
当前进程的上下文;
初始(init)进程的上下文;
控制终端文件上下文;
-b 显示布尔值的当前状态。
相关文件
/etc/sestatus.conf 命令sestatus的配置文件。
相关手册
selinux(8), sestatus.conf(5)
参考文献
man 8 sestatus, Version 2.8-1
更新日志
10/17/2018 创建文章[……]