检查并设置时区
# 查看当前时区
timedatectl status
# 列出所有可用时区
timedatectl list-timezones
# 设置时区(例如设置为上海时间)
sudo timedatectl set-timezone Asia/Shanghai
# 再次检查时间状态
timedatectl
查看目录所在设备的命令
1. 使用 df 命令
df -h /var/tmp /var/lib/vz
或者更详细的:
df -hT /var/tmp /var/lib/vz
2. 使用 mount 命令
mount | grep -E '/var/tmp|/var/lib/vz'
3. 查看文件系统挂载点
lsblk
df -h | grep var
4. 检查 inode 信息
stat /var/tmp
stat /var/lib/vz
检查内存使用
# 查看系统内存状态
free -h
# 查看哪些进程占用内存
ps aux --sort=-%mem | head -10
# 查看内存使用详情
cat /proc/meminfo
创建交换文件
# 创建 8GB 交换文件
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
#验证
free -h
如果创建不成功那就查看下文件系统
df -T /
ZFS 与交换文件的问题
ZFS 的 写时复制(Copy-on-Write) 特性导致:
- 创建的文件有"稀疏空洞"
- swapon 拒绝使用这样的文件
- 这是 ZFS 的设计特性
ZFS 的正确交换空间配置
方法一:创建 ZFS 交换卷(推荐)
# 在 rpool 上创建交换卷
zfs create -V 8G rpool/swap
# 启用交换
mkswap /dev/zvol/rpool/swap
swapon /dev/zvol/rpool/swap
# 永久生效
echo '/dev/zvol/rpool/swap none swap sw 0 0' >> /etc/fstab
方法二:使用现有 ZFS 卷的交换
# 在 GT220 上创建交换卷
zfs create -V 8G GT220/swap
mkswap /dev/zvol/GT220/swap
swapon /dev/zvol/GT220/swap
echo '/dev/zvol/GT220/swap none swap sw 0 0' >> /etc/fstab
创建硬链接
ln file1.txt file2.txt # file2是file1的硬链接
- 硬链接是同一个inode的多个目录入口
- 所有硬链接都指向磁盘上的同一数据块
- 删除一个硬链接不会影响其他链接,只有所有链接都被删除时数据才真正删除
查看目录下各个文件夹的大小
查看根目录下各个文件夹的大小:
sudo du -sh /* | sort -hr
查看var目录下各个文件夹的大小:
sudo du -sh /var/* | sort -hr
检查哪些进程正在使用该目录
# 使用 lsof 命令查看
lsof +D /data/web
# 或者使用 fuser 命令
fuser -v /data/web
强制终止使用该目录的进程
# 使用 fuser 强制终止
fuser -km /data/web
# 然后重新尝试卸载
umount /data/web
查看目录大小
du -sh /etc (推荐)
du -sh /etc
-s:摘要模式,只显示总大小
-h:人类可读的格式(自动转换为 KB、MB、GB)
这是最常用的查看目录总大小的命令
更详细的查看
# 查看/etc下各个子目录的大小,按大小排序
du -h --max-depth=1 /etc | sort -hr
--max-depth=1:只显示第一级子目录
sort -hr:按人类可读的数字逆序排序(从大到小)
其他有用命令
使用 ncdu (交互式工具)
# 如果未安装,先安装:apt install ncdu
ncdu /etc
这是一个交互式工具,可以浏览目录树,按大小排序,非常直观。
查看inode使用情况
df -i /etc
这个命令显示文件系统的inode使用情况,对于大量小文件的场景很有用。
实际示例输出
$ du -sh /etc
28M /etc
$ du -h --max-depth=1 /etc | sort -hr
28M /etc
12M /etc/pve
4.5M /etc/ssl
2.3M /etc/udev
1.5M /etc/apparmor.d
...
查看目录所在的磁盘
# 查看目录所在的文件系统和挂载点
df -h /path/to/directory
# 示例:查看 /etc 目录所在的磁盘
df -h /etc
# 查看所有块设备及其挂载点的树状图
lsblk
# 结合 grep 过滤特定目录
lsblk | grep -A 10 $(df /path/to/directory | awk 'NR==2 {print $1}')
# 查看目录的详细磁盘信息
df -h /path/to/directory | awk 'NR==2 {print "设备:" $1 ", 挂载点:" $6 ", 总大小:" $2 ", 可用:" $4}'
「点点赞赏,手留余香」
声明:本文为原创文章,版权归旷野小站所有,欢迎分享本文,转载请保留出处!