linux查看磁盘空间及删除文件
简介:linux查看磁盘空间及删除文件
一、linux查看磁盘空间
(一)df 命令
- df 命令
df(Disk Free)命令用于显示文件系统的磁盘使用情况统计信息,包括磁盘总容量、已使用容量、可用容量、使用百分比等。
df
执行该命令后,系统会输出所有挂载的文件系统的磁盘使用情况,示例输出如下:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 8173084 0 8173084 0% /dev
tmpfs 1641988 1620 1640368 1% /run
/dev/sda1 48765208 2321240 43934260 6% /
tmpfs 8209932 0 8209932 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8209932 0 8209932 0% /sys/fs/cgroup
/dev/sda15 106858 3680 103178 4% /boot/efi
tmpfs 1641984 32 1641952 1% /run/user/1000
Filesystem:文件系统的名称。
1K-blocks:文件系统的总容量,单位为 1KB。
Used:已使用的磁盘空间,单位为 1KB。
Available:可用的磁盘空间,单位为 1KB。
Use%:磁盘空间的使用百分比。
Mounted on:文件系统的挂载点。
- 常用选项
-h:以人类可读的格式显示磁盘使用情况,即使用 GB、MB 等单位。
df -h
-T:显示文件系统的类型。
df -hT
(二)du 命令
- du 命令
du(Disk Usage)命令用于估算文件和目录的磁盘使用情况,它可以帮助你找出占用大量磁盘空间的文件或目录。
du
该命令会递归地显示当前目录下所有子目录和文件的磁盘使用情况,以 KB 为单位。
-h:以人类可读的格式显示磁盘使用情况。
-s:只显示总计,即当前目录的总磁盘使用量。
du -sh
- 想查看某个特定目录的磁盘使用情况,可以指定目录路径,例如:
du -sh /home/user/Documents
(三)lsblk 命令
- lsblk(List Block Devices)命令用于列出所有可用块设备的信息,包括磁盘、分区等。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 465.7G 0 part /
├─sda14 8:14 0 4M 0 part
└─sda15 8:15 0 106M 0 part /boot/efi
sr0 11:0 1 1024M 0 rom
NAME:块设备的名称。
MAJ:MIN:主设备号和次设备号。
RM:是否可移动设备(1 表示可移动,0 表示不可移动)。
SIZE:设备的大小。
RO:是否为只读设备(1 表示只读,0 表示可读写)。
TYPE:设备的类型,如 disk 表示磁盘,part 表示分区。
MOUNTPOINT:设备的挂载点。
- 常用选项
-f:显示文件系统信息,包括文件系统类型、UUID 等。
二、磁盘清理
(一)清理大文件目录
- 查找大文件或目录:使用 du 命令找出占用大量磁盘空间的文件或目录。例如,要查看 /opt/da3 目录下各个子目录的磁盘使用情况,可以执行以下命令:
du -h --max-depth=1 /opt/da3 | sort -hr
sort -hr:-h 选项用于按照人类可读的数字进行排序,-r 选项表示逆序排序,即从大到小排列。
du -h
查看整个目录树中所有文件夹的存储量,不限制递归深度,可以去掉 --max-depth 参数。
- 清理不必要的文件:根据上一步的结果,删除不再需要的文件或目录。比如日志文件、临时文件等。
例如,如果有旧的日志文件,可以使用以下命令删除:
rm /opt/da3/logs/*.log
删除空文件夹:以使用 rmdir 或 rm -d 命令。
rmdir /path/to/your/folder
删除非空文件夹
rm -rf /path/to/your/folder
-r 选项表示递归删除
-f 选项表示强制删除
谨慎使用 rm -rf:该命令会强制删除文件夹及其所有内容,且没有确认提示。
如果要删除的文件夹属于其他用户或需要特殊权限才能删除,可能需要使用 sudo 命令来提升权限。例如:
sudo rm -rf /path/to/protected/folder
- 移动或归档数据
如果某些数据不经常使用,可以考虑将其移动到其他磁盘或进行归档。例如,将历史数据压缩后移动到外部存储设备:
tar -czvf /external_storage/old_data.tar.gz /opt/da3/old_data
rm -r /opt/da3/old_data
- 针对其他高使用率磁盘
定期监控这些磁盘的使用情况,可以使用 watch 命令每隔一段时间自动执行 df -h 命令查看磁盘使用变化:
watch -n 60 df -h
这个命令会每隔 60 秒执行一次 df -h 命令,如果发现使用率持续上升,可以提前采取清理或扩容措施。
(二)定期监控 Linux 系统中磁盘的使用情况
- 使用 cron 结合脚本定期执行磁盘检查
cron 是 Linux 系统中用于定期执行任务的工具,可以编写一个简单的脚本,让 cron 定时运行该脚本来检查磁盘使用情况。
步骤如下:
编写磁盘检查脚本
创建一个名为 disk_check.sh 的脚本,内容如下:
#!/bin/bash
# 定义磁盘使用率阈值,超过该阈值会触发警告
THRESHOLD=80
# 获取磁盘使用信息
df -h | awk 'NR>1 {gsub("%",""); if ($5 >= '$THRESHOLD') print $1 " is at " $5 "% usage"}' > /tmp/disk_usage.log
# 检查日志文件是否有内容,如果有则发送邮件通知
if [ -s /tmp/disk_usage.log ]; then
mail -s "Disk Usage Alert" your_email@example.com < /tmp/disk_usage.log
fi
赋予脚本执行权限
chmod +x disk_check.sh
设置 cron 任务
crontab -e
在打开的编辑器中添加以下内容,例如每天凌晨 2 点执行一次磁盘检查:
0 2 * * * /path/to/disk_check.sh
-
使用监控工具(如 Zabbix、Nagios)
这些专业的监控工具可以更全面地监控磁盘使用情况,并提供可视化界面和报警功能。 -
使用 watch 命令实时监控(短期监控)
watch -n 60 df -h