首页
Preview

linux清理磁盘

查找磁盘大文件并清理:

1.查看磁盘大小: df -h

2.直接在最上层进行排序:du -a|sort -rn|head -5

3.然后找到最大的文件删除,ps:你要确定是否可以删除,比如一些.log/.tar等文件都可以直接删除,但是有的文件你就需要看一下是否在使用中:lsof fileName

看,第二次查询时返回了相应的pid,这个文件删除就要谨慎了。

4.清除文件以后还要继续df-h,有的人会发现我删除了,但是磁盘却没有任何减少,这就是就有人开始说博主是个骗子,其实还差最后一步。查看已删除空间却没有释放的进程:lsof -n | grep deleted,然后删除(kill -9 pid)。

至此,磁盘清理完毕。

清理Docker:

上面说的是正常的处理流程,如果你的服务器安装了docker,建议你直接先执行下面的命令,删除无用镜像(需要收到输入y):docker image prune -a 以及 docker system prune -a

命令执行后如果删除的0MB,则代表和docker无关。

但是这样清理会把一些没有在用的容器停掉,从而导致下次启动时没有容器,如果你在启动容器时碰到了:Error response from daemon: driver failed programming external connectivity 这个错误或者一直报没有容器,就需要重启docker服务即可重新生成自定义链DOCKER。输入指令 :systemctl restart docker

如何清空文件内容

  1. 通过重定向到null清空文件内容

使用 shell 重定向 null (不存在的对象)到文件的最简单方法来清空文件内容

# > access.log

2.使用true命令重定向清空文件

这里我们将使用一个符号, : 是一个shell内置命令,本质上等同于 true 命令

另一种方法是将 : 或 true 内置命令的输出重定向到文件

# : > access.log

OR


# true > access.log
  1. 使用带有 /dev/null 的 cat/cp/dd 应用程序清空文件

在 Linux 中, null 设备主要用于丢弃进程不需要的输出流,或者作为输入流。这通常是通过重定向机制完成的。

/dev/null 设备文件是一个特殊文件,它会吞噬发送给它的任何输入,或者它的输出与空文件的输出相同。

此外,你可以通过 /dev/null 使用cat 命令将输出重定向到文件作为输入来清空文件的内容

# cat /dev/null > access.log

也可以使用cp 命令将文件内容清空

# cp /dev/null access.log

在下面的命令中, if 指的是输入文件, of 指的是输出文件。

# dd if=/dev/null of=access.log
  1. 使用 echo 命令清空文件

在这里,你可以使用带有空字符串的echo 命令并将其重定向到文件

# echo "" > access.log

OR

# echo > access.log

空字符串与 null 不同。一个字符串是一个对象,它可能是空的。而null意味着一个不存在的对象。

因此将上面的echo 命令的输出重定向到文件中,并使用cat 命令查看文件内容时,会打印一个空行

要发送一个空输出到文件,使用该标志 -n 告诉 echo 不输出换行符。

# echo -n "" > access.log
  1. 使用 truncate 命令清空文件

truncate 命令将文件的大小缩小或扩展到定义的大小。

你可以将它与 -s 指定文件大小的选项一起使用。要清空文件内容使用 -s 0 参数。

# truncate -s 0 access.log

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
出于随性
快乐程序员

评论(0)

添加评论