当前位置: 首页 > news >正文

Orange的运维学习日记--25.Linux文件系统基本管理

Orange的运维学习日记–25.Linux文件系统基本管理

在这里插入图片描述

识别文件系统和设备

在 Linux 中,存储设备通过块设备文件提供访问。块设备文件存放在 /dev 目录下,操作系统自动创建。挂载前需先格式化设备

常见块设备接口及命名

  • SATA/SAS/USB/SCSI:/dev/sda/dev/sdb
  • virtio-blk(虚拟机):/dev/vda/dev/vdb
  • NVMe SSD:/dev/nvme0n1/dev/nvme1n1
  • SD/MMC/eMMC:/dev/mmcblk0/dev/mmcblk1

通常会将物理设备划分为多个分区,例如 /dev/sda1/dev/sda2/dev/nvme0n1p1,并为每个分区选择不同文件系统或用途

文件系统是操作系统在存储设备或分区上组织和管理文件的方式。要让文件系统的内容可访问,需将其挂载到一个空目录(挂载点)下

查看设备和文件系统

lsblk

查看所有块设备及挂载情况

lsblk

示例输出

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0    20G  0 disk 
sr0          11:0    1  13.2G  0 rom  
nvme0n1     259:0    0   200G  0 disk 
├─nvme0n1p1 259:1    0     1G  0 part /boot
└─nvme0n1p2 259:2    0   199G  0 part ├─rl-root 253:0    0    70G  0 lvm  /├─rl-swap 253:1    0   3.9G  0 lvm  [SWAP]└─rl-home 253:2    0 125.1G  0 lvm  /home

各字段说明

  • NAME:设备名称或分区
  • SIZE:设备容量
  • TYPE:disk、part、lvm、rom 等类型
  • MOUNTPOINT:挂载点
  • RM:是否可移动设备(1 是可移动)

df

查看已挂载文件系统使用情况

df -hT

示例输出

文件系统            类型      容量  已用  可用 已用% 挂载点
devtmpfs            devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs               tmpfs     1.9G   17M  1.9G    1% /run
/dev/mapper/rl-root xfs        70G  6.5G   64G   10% /
/dev/sr0            iso9660    14G   14G     0  100% /dvd
/dev/nvme0n1p1      xfs      1014M  202M  813M   20% /boot
/dev/mapper/rl-home xfs       126G  925M  125G    1% /home

常用选项

  • -h:以人类可读方式显示
  • -T:显示文件系统类型
  • -H:使用 1000 为单位基数

du

查看目录或文件磁盘使用情况

du -sh /boot

示例输出

140M    /boot

常用用法

  • du /boot:显示所有子目录大小
  • du -s /boot:只显示总计
  • du -h:以可读单位显示

查找大文件案例

在根文件系统中生成一个 4 GB 测试文件

dd if=/dev/zero of=/usr/share/doc/dhclient-4.2.5/bigfile-4G bs=1M count=4096

使用 du 配合 sort 依次定位大目录和大文件

du -sk /*   | sort -n
du -sk /usr/* | sort -n
du -sk /usr/share/* | sort -n
du -sk /usr/share/doc/* | sort -n

使用 find 查找系统中超过 100 MB 的文件

find / -size +100M 2>/dev/null

挂载和卸载文件系统

环境准备

添加新的磁盘设备 /dev/sdb 并格式化为 XFS 文件系统

lsblk /dev/sdbmkfs.xfs /dev/sdb

挂载文件系统

mount [-fnrsvw] [-t vfstype] [-o options] device mountpoint

挂载示例

mkdir /datablkid /dev/sdbmount /dev/sdb /data

验证挂载

df -h /datatouch /data/file-{00..09}
ls /data

查看所有挂载

mount | grep '^/dev'

卸载文件系统

umount device|mountpoint

示例

umount /datadf -h /data

卸载失败处理

当卸载时报 “target is busy” 时,需要定位并终止占用进程

lsof
lsof /data
fuser
fuser -m /data
fuser -k -m /data

终止后重新卸载

cd /
umount /data

不同文件系统挂载案例

NTFS

yum install -y epel-release
yum install -y ntfs-3gmkdir /mnt/ntfs
mount -t ntfs-3g /dev/sdc1 /mnt/ntfs

exFAT

yum install -y git pkg-config fuse-devel gcc make autoconf automakegit clone https://github.com/relan/exfat.git
cd exfat
autoreconf --install
./configure
make && make installmount.exfat-fuse /dev/sdc1 /mnt/exfat

基于 ISO 的本地 yum 仓库

mkdir /dvd
mount /dev/sr0 /dvdmkdir /etc/yum.repos.d/old
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/oldcat << 'EOF' > /etc/yum.repos.d/dvd.repo
[BaseOS]
name=BaseOS from DVD
baseurl=file:///dvd/BaseOS
enable=1
gpgcheck=0[AppStream]
name=AppStream from DVD
baseurl=file:///dvd/AppStream
enable=1
gpgcheck=0
EOFyum repolist
yum makecache
yum install -y httpd

查找系统中文件

locate

依赖 mlocate 数据库,需定期执行 updatedb 更新

updatedblocate [OPTION][PATTERN]

常用选项

  • -b:只匹配文件名
  • -i:忽略大小写
  • -c:输出结果数量
  • -r:正则匹配

示例

locate httpd.confupdatedb
locate -i PASSWD
locate -b -c PASSWD
locate -r 'http.*conf'

find

在实时文件系统中遍历查找,需读取和执行权限

find [path] [expression] [action]

按文件名

  • -name:区分大小写
  • -iname:忽略大小写
find /etc -name passwd
find /etc -iname passwd

按类型

  • -type b:块设备
  • -type c:字符设备
  • -type d:目录
  • -type f:普通文件
  • -type l:符号链接
  • -type p:FIFO
  • -type s:套接字

按属主或属组

  • -user/-uid
  • -group/-gid
  • -nouser-nogroup
find / -user laoma
find / -nouser -o -nogroup

按权限

  • -perm mode
  • -perm -mode
  • -perm /mode
  • -readable-writable-executable
find . -perm 764 -ls
find / -perm -4000
find / -perm /7000

按大小

单位:ckMG

find / -size 10M
find / -size +10G
find / -size -10k

按时间

  • 分钟:-amin-cmin-mmin
  • 天:-atime-ctime-mtime
  • 新旧:-newer file
find / -amin -10

按硬链接和 inode

  • -links n
  • -inum n
find / -links +3
find / -inum 67160130

组合表达式

  • 与:expr1 expr2expr1 -a expr2
  • 或:expr1 -o expr2
  • 非:! expr
find / ! -size -200M 2>/dev/null

执行动作

  • -delete
  • -ls
  • -exec command \;
  • -exec command {} \;
find / -name PASSWD -delete
find /etc -name passwd -exec echo found {} \;
inks n`
- `-inum n````bash
find / -links +3
find / -inum 67160130

组合表达式

  • 与:expr1 expr2expr1 -a expr2
  • 或:expr1 -o expr2
  • 非:! expr
find / ! -size -200M 2>/dev/null

执行动作

  • -delete
  • -ls
  • -exec command \;
  • -exec command {} \;
find / -name PASSWD -delete
find /etc -name passwd -exec echo found {} \;
http://www.lryc.cn/news/608283.html

相关文章:

  • 【BTC】挖矿
  • 优选算法 力扣1089.复写零 双指针 原地修改 C++解题思路 每日一题
  • Git 的基本使用指南(1)
  • Arpg第二章——流程逻辑
  • 自动驾驶中的传感器技术15——Camera(6)
  • 数字化转型驱动中小制造企业的质量管理升级
  • TFS-2022《A Novel Data-Driven Approach to Autonomous Fuzzy Clustering》
  • 【深度学习②】| DNN篇
  • 编译器与解释器:核心原理与工程实践
  • 基于Postman进行http的请求和响应
  • 操作系统:远程过程调用( Remote Procedure Call,RPC)
  • Jupyter notebook如何显示行号?
  • SQL Server从入门到项目实践(超值版)读书笔记 22
  • Spring事务失效场景
  • kotlin小记(1)
  • 集合框架(重点)
  • linux ext4缩容home,扩容根目录
  • 网络安全基础知识【6】
  • Ext系列文件系统
  • 【软考中级网络工程师】知识点之级联
  • 错误处理_IncompatibleKeys
  • 企业资产|企业资产管理系统|基于springboot企业资产管理系统设计与实现(源码+数据库+文档)
  • 【学习笔记】MySQL技术内幕InnoDB存储引擎——第6章 锁
  • 在linux(ubuntu)服务器上安装NTQQ并使用
  • junit中@InjectMocks作用详解
  • Redisson高并发实战:Netty IO线程免遭阻塞的守护指南
  • 零基础 “入坑” Java--- 十六、字符串String 异常
  • wxPython 实践(六)对话框
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频摘要生成与智能检索优化进阶(377)
  • ARMv8/v9架构FAR_EL3寄存器介绍