随笔分类 - Linux
摘要:stress 命令主要用来模拟系统负载较高时的场景,本文介绍其基本用法。文中 demo 的演示环境为 ubuntu 18.04。 基本语法 语法格式:stress <options> 常用选项:-c, --cpu N 产生 N 个进程,每个进程都反复不停的计算随机数的平方根-i, --io N 产生
阅读全文
摘要:本文介绍如何使用 sudo 将输出重定向到当前用户没有权限的文件。注意:本文中 demo 的演示环境为 ubuntu 18.04。 Permission denied 问题 如果当前用户没有某个文件的写权限,又要通过输出重定向往该文件中写入内容。结果只能是 "Permission denied"。比
阅读全文
摘要:lsof(list open files)是一个查看进程打开的文件的工具。 在 linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。本文将介绍 lsof
阅读全文
摘要:LVM 机制还提供了对 LV 做快照的功能,也就是说可以给文件系统做一个备份,这也是设计 LVM 快照的主要目的。LVM 的快照功能采用写时复制技术(Copy-On-Write,COW),这比传统的备份技术的效率要高很多。创建快照时不用停止服务,就可以对数据进行备份。说明:LVM 还支持 thin
阅读全文
摘要:有扩展就有缩减,我们在前文《LVM : 扩展文件系统的容量》中介绍了通过 LVM 扩展文件系统的方法,本文我们接着前文的 demo 介绍通过 LVM 缩减文件系统的方法。说明:本文的演示环境为 ubuntu 16.04。前文中我们把文件系统 /dev/mapper/nickvg-nicklv00 的
阅读全文
摘要:如果发现文件系统的容量不足了,可以通过 LVM 轻松的进行扩展(当然也可以进行缩减操作)。本文将紧接前文中的 demo 详细的介绍扩展文件系统的操作过程。说明:本文的演示环境为 ubuntu 16.04。 警报:可用磁盘空间不足 当我们收到可用磁盘空间不足的警报时,就需要去诊断磁盘空间相关的问题了。
阅读全文
摘要:在对磁盘分区的大小进行规划时,往往不能确定这个分区要使用的空间的大小。而使用 fdisk、gdisk 等工具对磁盘分区后,每个分区的大小就固定了。如果分区设置的过大,就白白浪费了磁盘空间;如果分区设置的过小,就会导致空间不够用的情况出现。对于分区过小的问题,可以从新划分磁盘的分区,或者通过软连接的方
阅读全文
摘要:Linux 系统中所有的硬件设备都是通过文件的方式来表现和使用的,我们将这些文件称为设备文件,硬盘对应的设备文件一般被称为块设备文件。本文介绍磁盘设备在 Linux 系统中的表示方法以及如何创建磁盘分区。说明:本文的演示环境为 ubuntu 16.04。 磁盘分类 比较常见的磁盘类型有消费类市场中的
阅读全文
摘要:在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限。ugo 权限信息是文件的属性,它指明了用户与文件之间的关系。但是真正操作文件的却是进程,也就是说用户所拥有的文件访问权限是通过进程来体现的。本文主要介绍进程的权限,并通过示例解释用户身份与进程权限之间的关系。说明:
阅读全文
摘要:笔者在《Linux ACL 权限》一文中介绍了 Linux ACL 权限的基本用法,本文笔者将尝试探究 ACL 中的基本概念和实现原理,希望能够通过进一步的加深对 Linux 权限系统的理解。说明:本文的演示环境为 ubuntu 16.04。 ACL 中的基本概念 ACL 的类型 access AC
阅读全文
摘要:新建一个文件或目录,它的默认权限是什么?如果要修改一个用户创建的文件和目录的默认权限该如何做?本文将介绍相关的内容。说明:本文的演示环境为 ubuntu 16.04。 文件的默认权限 为了查看用户创建的文件和目录的默认权限,我们用一个普通的用户创建文件 myfile 和目录 mydir 并查看它们的
阅读全文
摘要:setuid 和 setgid 分别是 set uid ID upon execution 和 set group ID upon execution 的缩写。我们一般会再次把它们缩写为 suid 和 sgid。它们是控制文件访问的权限标志(flag),它们分别允许用户以可执行文件的 owner 或
阅读全文
摘要:Linux 系统中文件的 ugo 权限是 Linux 进行权限管理的基本方式。本文将介绍 ugo 权限的基本概念。说明:本文的演示环境为 ubuntu 16.04。 文件的所有者和组 Linux 文件的 ugo 权限把对文件的访问者划分为三个类别:文件的所有者、组和其他人。所谓的 ugo 就是指 u
阅读全文
摘要:Cgroups 是 linux 内核提供的一种机制,如果你还不了解 cgroups,请参考前文《Linux cgroups 简介》先了解 cgroups。当 Linux 的 init 系统发展到 systemd 之后,systemd 与 cgroups 发生了融合(或者说 systemd 提供了 c
阅读全文
摘要:cgroups(Control Groups) 是 linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。简单说,cgroups 可以限制、记录任务组所使用的物理资源。本质上来说,cgroups
阅读全文
摘要:User namespace 是 Linux 3.8 新增的一种 namespace,用于隔离安全相关的资源,包括 user IDs and group IDs,keys, 和 capabilities。同样一个用户的 user ID 和 group ID 在不同的 user namespace 中
阅读全文
摘要:Network namespace 在逻辑上是网络堆栈的一个副本,它有自己的路由、防火墙规则和网络设备。默认情况下,子进程继承其父进程的 network namespace。也就是说,如果不显式创建新的 network namespace,所有进程都从 init 进程继承相同的默认 network
阅读全文
摘要:PID namespace 用来隔离进程的 PID 空间,使得不同 PID namespace 里的进程 PID 可以重复且互不影响。PID namesapce 对容器类应用特别重要, 可以实现容器内进程的暂停/恢复等功能,还可以支持容器在跨主机的迁移前后保持内部进程的 PID 不发生变化。说明:本
阅读全文
摘要:Mount namespace 为进程提供独立的文件系统视图。简单点说就是,mount namespace 用来隔离文件系统的挂载点,这样进程就只能看到自己的 mount namespace 中的文件系统挂载点。进程的 mount namespace 中的挂载点信息可以在 /proc/[pid]/m
阅读全文
摘要:IPC namespace 用来隔离 System V IPC 对象和 POSIX message queues。其中 System V IPC 对象包含共享内存、信号量和消息队列,笔者在《System V IPC 之共享内存》、《System V IPC 之信号量》和《System V IPC 之
阅读全文