用了阿里云的CentOS的服务器,因为本身容量不大,经常使用久了。有的可能是日志满了,有的可能是项目文件给太多了。记录一些常用命令
先查看磁盘使用情况:
df -h
找出大于大于指定大小如200M的文件
find . -size +200M
du -sh
查看目录里的总量
ll -t | head -n 50 最近50个文件
支持通配符,但是不要加双引号 “”
du-sh *2021-01-*.log
查看各个目录大小
du -sh *
在CentOS 7开始使用的systemd使用了journal日志,这个日志的管理方式和以往使用syslog的方式不同,可以通过管理工具维护。
使用df -h
检查磁盘文件,可以看到/run
目录下有日志目录/run/log/journal
,占用了数G空间
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 8.5G 4.2G 4.4G 49% /
tmpfs 16G 1.6G 15G 11% /run
在日志目录下有很多历史累积的日志。
检查当前journal使用磁盘量
journalctl --disk-usage
清理方法可以采用按照日期清理,或者按照允许保留的容量清理
journalctl --vacuum-time=2d
journalctl --vacuum-size=500M
如果要手工删除日志文件,则在删除前需要先轮转一次journal日志
systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service
要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf
SystemMaxUse=16M
ForwardToSyslog=no
然后重启
systemctl restart systemd-journald.service
检查journal是否运行正常以及日志文件是否完整无损坏
journalctl --verify
删除 Node.js 缓存
rm -rf /root/.npm /home/*/.npm /root/.node-gyp /home/*/.node-gyp /tmp/npm-*
查找10M以上的文件
sudo find / -type f -size +1000k
查看当前目录及一级子目录占用的空间
du -h --max-depth=1
修剪日志文件
find /var -name "*.log" \( \( -size +50M -mtime +7 \) -o -mtime +30 \) -exec truncate {} --size 0 \;
这将截断*.log
卷/var
上超过7天且超过50M或超过30天的所有文件。
也有一些文件是*.log.gz
扩展名, 或*.journal
之类, 可以参考的方式:
find /var/log -regex '.*\.log\|.*\.journal\|.*\.gz' \( \( -size +5M -mtime +7 \) -o -mtime +30 \) -exec truncate {} --size 0 \;