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

linux 服务器清理

起因

服务器报错:no space left on device
翻译:设备上没有剩余空间

解决方法

清理数据,这里有个点要注意,
对于重要文件,一定要备份。

步骤

1 首先,需要确定哪个分区或目录占用了大量空间。

df -h

执行结果示例:

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           799M  1.3M  798M   1% /run
/dev/sda1        50G   45G  3.1G  94% /
tmpfs           3.9G  4.0K  3.9G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda5       200G  120G   71G  63% /home
tmpfs           799M   48K  799M   1% /run/user/1000

结果说明

Filesystem:显示文件系统的名称。这可以是物理硬盘分区(如/dev/sda1)、逻辑卷、网络挂载点(如NFSSMB共享)或其他类型的文件系统。
Size:显示文件系统的总大小,以人类可读的格式(如G表示GigabytesM表示Megabytes)显示。
Used:显示已使用的空间大小。
Avail:显示可用的空间大小。
Use%:显示已使用空间的百分比。
Mounted on:显示文件系统挂载的挂载点,即文件系统中的哪个目录或路径与该文件系统相关联。
在上面的示例中:
/dev/sda1 分区是根文件系统(/),总大小为50GB,已使用45GB,剩余3.1GB,使用率为94%/dev/sda5 分区挂载在/home目录,总大小为200GB,已使用120GB,剩余71GB,使用率为63%。
tmpfs 是一种基于内存的临时文件系统,用于存储临时文件,它的大小和已用空间会根据系统负载和配置而变化。
udev 和其他设备相关的文件系统(如/dev/shm)通常用于系统内部目的,普通用户不需要过多关注。

具体需要关注哪个分区要看你的应用启动的时候会在哪个分区输出日志或生成数据文件。也就是说应用部署在哪个分区,就需要关注哪个分区。哪个分区的路径你要产生数据你就需要关注哪个分区。或者如果是初学者可以简单的看Use%这列,看哪个比较接近百分百,就去看那一行对应的Mounted on列,也就是服务器路径,清理这个路径里面的内容。
到这里我们要知道的信息是我需要清理哪个路径下面的内容。

2.找到对应的分区或者目录之后要进一步确认要清理的目录

这里面我推荐的命令是

du -ah / | sort -rh | head -n 10

这个命令如果权限不够可以尝试加sudo。

执行结果示例:

100G    /
50G     /home
45G     /home/user
20G     /var
15G     /var/log
10G     /usr
8.0G    /opt
6.0G    /lib
5.0G    /tmp
4.5G    /home/user/Documents

结果说明

du -ah /:du是“disk usage”的缩写,用于估算文件和目录的磁盘使用情况。-a选项表示“all”,即包括目录中的所有文件和子目录。-h选项表示“human-readable”,即以人类可读的格式(如KMG)显示磁盘使用情况。/表示根目录,即检查整个文件系统的磁盘使用情况。
|:管道符号,用于将前一个命令的输出作为后一个命令的输入。
sort -rh:sort用于对输入进行排序。-r选项表示“reverse”,即逆序排序(从大到小)。-h选项表示“human-numeric-sort”,即按照人类可读的数字格式进行排序(如能够正确识别并比较KMG等单位)。
head -n 10:head用于显示输入的前几行。-n 10表示显示前10行。
在上面的示例中:
/(根目录)占用了100G的磁盘空间(这个数字可能包括了挂载在根目录下的其他文件系统的空间,具体取决于系统配置)。
/home目录占用了50G。
/home/user目录占用了45G,是/home目录下的一个子目录。
接下来的几行显示了其他占用较多磁盘空间的目录,如/var/var/log、/usr等。

可以看到目录的占用的磁盘空间大小是一个递进的关系。简单来说如果/home/user占用了很多磁盘空间,那么它的上级目录/home也一定占据了很多的磁盘空间,并且只多不少。
通常du -ah / | sort -rh | head -n 10看前十行就够了,当然对于比较复杂的情况也可以看更大的范围。

3清理目录,删除文件

1.清理某个路径下所有文件的命令
要清理(即删除)某个路径下的所有文件和子目录,可以使用rm -rf命令。但请务必小心,因为这个命令会递归地删除指定路径下的所有内容,并且不会提示确认。一定要对重要文件备份备份再备份。

rm -rf /home/tomcact/logs/*

注意:将/path/to/directory/替换为您要清理的实际路径。使用*表示删除该目录下的所有文件和子目录。如果您只想删除文件而保留子目录,可以使用find命令结合-type f选项:

find /home/tomcact/logs/ -type f -exec rm -f {} \;

2.删除某个特定的文件

rm /home/tomcact/logs/catalina.out

上面rm加文件路径是可以直接删除某个文件,但是对于calalina.out通常不会这样处理。直接删除打印日志会有问题。一般用下面的方法把文件置空。

> /opt/tomcat/logs/catalina.out

这个命令会打开 /opt/tomcat/logs/catalina.out 文件,并将其内容清空。如果文件不存在,这个命令会创建一个空文件。但是,请注意,如果 Tomcat 正在向该文件写入日志,这个操作可能会导致一些日志丢失(即那些尚未写入磁盘但在 Tomcat 内部缓冲区中的日志)。
或者

truncate -s 0 /opt/tomcat/logs/catalina.out

truncate 命令用于调整文件的大小。使用 -s 0 选项可以将文件大小设置为0,从而清空文件内容。与 > 操作符类似,如果文件不存在,truncate 命令通常会报错(除非使用了特定的选项来允许创建文件)。但是,truncate 通常被认为在处理大文件时比 > 更高效,因为它不需要实际地读取或写入文件内容。

3.删除某一类文件
删除Tomcat日志路径下所有以.log结尾的文件

find /home/tomcact/logs/ -name "*.log" -exec rm -f {} \;

http://www.kler.cn/a/473325.html

相关文章:

  • (概率论)无偏估计
  • 将txt转成excel正则化公式的调整
  • python对redis的增删查改
  • 微信小程序之历史上的今天
  • 外驱功率管电流型PWM控制芯片CRE6281B1
  • torch.max和torch.softmax python max
  • Go语言的数据库编程
  • selenium在Linux环境下截屏(save_screenshot)中文乱码的问题
  • Go语言的 的垃圾回收(Garbage Collection)核心知识
  • 新版2024AndroidStudio项目目录结构拆分
  • vue3 + ts + element-plus(el-upload + vuedraggable实现上传OSS并排序)
  • Nginx入门笔记
  • 数据结构:LinkedList与链表—面试题(三)
  • DATACOM-广域网技术(ATM、PPP、PPPoE)-复习-实验
  • 【单片机】实现一个简单的ADC滤波器
  • 数据结构(1~10)
  • Flutter Web 中文字体显示异常问题
  • C++之闭散列哈希表
  • 使用 Python 的 pyttsx3 库进行文本转语音
  • 探索电商宝藏:用Java打造1688商品详情爬虫,挖掘商业价值
  • ChatGPT加速器:解锁高效智能对话的新工具
  • 怎么对PDF插入图片并设置可见程度-免费PDF编辑工具分享
  • fetch-pack: unexpected disconnect while reading sideband packet报错问题排查
  • 设置密码,保护隐私:Excel文件加密的几种方法
  • CH348结合开源ModBus协议组成串口温度采集服务器
  • K-means算法在无监督学习中的应用