Linux 中存在太多的垃圾文件?

news2024/11/17 14:37:19

不知道大家是否也跟我一样,是一只要把的自己电脑文件安排的条理有序,把没用的文件会及时删掉的程序猿呢?如果是的话,那么我们可以愉快地探讨下文章的内容。如果不是的话,你也可以留下来凑凑热闹嘛(>-


下面要介绍的是今天的主角—— tmpwatch ,它能帮助我们递归删除在给定时间内没有访问的文件和空目录。

当然,我们也可以使用 find 命令查找并删除超过 x 天未访问的文件,不过tmpwatch 可以一步到位,何乐而不为?

tmpwatch 默认根据文件或目录的访问时间(access time)来决定删除哪些文件或目录。除此之外,你还可以根据 inode 改变时间(inode change time)、修改时间(modification time)来进行操作。

通常,tmpwatch 用于删除 /tmp 目录下的文件,以及其它地方其他无用的文件,如旧的日志文件。

重要警告!!

不要在 /(根目录)中运行 tmpwatch!
不要在 /(根目录)中运行 tmpwatch!!
不要在 /(根目录)中运行 tmpwatch!!!(三遍警告! ^ – ^ )

/ 目录包含 Linux 系统运行所必需的重要文件,而tmpwatch 并没有内置保护机制防止在/ 目录上运行,一旦那些重要的文件被删除了,后果不堪设想!所以,小伙伴们在使用这个命令的时候一定要慎重!

安装 tmpwatch

大多数 Linux 发行版的默认存储库中都提供 tmpwatch 的安装:

在 Fedora 上:

$ sudo dnf install tmpwatch

在 CentOS 上:

$ sudo yum install tmpwatch

在 openSUSE 上:

$ sudo zypper install tmpwatch

在 Debian 及其衍生版本(如 Ubuntu )上,tmpwatch 又叫 tmpreaper

$ sudo apt install tmpreaper

使用 tmpwatch/tmpreaper 删除指定时间内未访问的文件

tmpwatch 和 tmpreaper 的用法几乎相同,可以认为二者是一样的命令。为了便于描述,本文以 tmpwatch 为例进行讲解,使用基于 Debian 系统的朋友可以将下面的tmpwatch 改为 tmpreaper

1. 删除超过 X 天未访问的文件

例:删除 /var/log/ 文件夹中超过 10 天未访问的所有文件和空目录

tmpwatch 10d /var/log/

2. 删除超过 X 天未修改的文件

前文提到, tmpwatch 默认根据访问时间来删除文件的,现在我们使用 -m 选项来根据文件的修改时间(modification time)来删除文件。

例:删除 /var/log/ 文件夹中超过 10 天未修改的文件

tmpwatch -m 10d /var/log/

上面两个命令中的 d 是时间参数,具体如下:

  • d – 天数

  • h – 小时

  • m – 分钟

  • s – 秒数

默认时间参数是小时 。假如想删除过去 10 个小时未修改的文件,可以写成下面这种形式:

tmpwatch -m 10 /var/log/

3. 删除符号链接

可以使用 -s 选项删除符号链接:

tmpwatch -s 10 /var/log/

4. 删除所有文件(包括常规文件,符号链接和目录)

tmpwatch 不仅仅可以删普通文件,还可以删除一些特殊文件,比如符号链接、目录、管道文件等等。这个情况下,需要使用 -a 选项:

tmpwatch -a 10 /var/log/

5. 删除时排除目录

如果不想删除某个目录,可以使用 --nodirs 选项,在删除时排除对该目录的删除:

tmpwatch -am 10 --nodirs /var/log/

6. 测试删除(不实际删除任何内容)

这里要再次强调,在对重要目录进行文件删除时,不要急着使用 tmpwatch 命令!不妨先看看命令运行之后删除的文件有哪些,不然删错了脑壳又疼了。。(养成一种好习惯!)

可以使用 -t 进入测试模式:

tmpwatch -t 30 /var/log/

CentOS 7 下输出:

removing file /var/log/wtmpremoving directory /var/log/ppp if emptyremoving directory /var/log/tuned if emptyremoving directory /var/log/anaconda if emptyremoving file /var/log/dmesg.oldremoving file /var/log/boot.logremoving file /var/log/dnf.librepo.log

基于 Debian 的系统下输出:

$ tmpreaper -t 30 /var/log/(PID 1803) Pretending to clean up directory `/var/log/'.(PID 1804) Pretending to clean up directory `apache2'.Pretending to remove file `apache2/error.log'.Pretending to remove file `apache2/access.log'.Pretending to remove file `apache2/other_vhosts_access.log'.(PID 1804) Back from recursing down `apache2'.(PID 1804) Pretending to clean up directory `dbconfig-common'.Pretending to remove file `dbconfig-common/dbc.log'.(PID 1804) Back from recursing down `dbconfig-common'.(PID 1804) Pretending to clean up directory `dist-upgrade'.(PID 1804) Back from recursing down `dist-upgrade'.(PID 1804) Pretending to clean up directory `lxd'.(PID 1804) Back from recursing down `lxd'.Pretending to remove file `/var/log//cloud-init.log'.(PID 1804) Pretending to clean up directory `landscape'.Pretending to remove file `landscape/sysinfo.log'.(PID 1804) Back from recursing down `landscape'.[...]

上面这个过程,其实并没有真正删除文件,只是进行模拟删除,告知你哪些文件会被删除。

在确保要删除的文件都是正确的时候,方可去掉 -t 选项再执行 tmpwatch 进行真正删除。

7. 强制删除

**tmpwatch 默认不会删除当前用户没有写访问权的文件。**但是如果你必须要删除那些文件,可以使用 -f 选项进行强制删除:

tmpwatch -f 10h /var/log/

8. 删除时跳过某些文件

若想在删除时保留指定的文件,也就是说列入白名单,可以使用 --protect 选项。假设我们要保留所有 txt 类型的文件:

tmpreaper --protect '*.txt' -t 10h /var/log/

输出结果:

(PID 2623) Pretending to clean up directory `/var/log/'.(PID 2624) Pretending to clean up directory `apache2'.Pretending to remove file `apache2/error.log'.Pretending to remove file `apache2/access.log'.Pretending to remove file `apache2/other_vhosts_access.log'.(PID 2624) Back from recursing down `apache2'.(PID 2624) Pretending to clean up directory `dbconfig-common'.Pretending to remove file `dbconfig-common/dbc.log'.(PID 2624) Back from recursing down `dbconfig-common'.(PID 2624) Pretending to clean up directory `dist-upgrade'.(PID 2624) Back from recursing down `dist-upgrade'.Pretending to remove empty directory `dist-upgrade'.Entry matching `--protect' pattern skipped. `ostechnix.txt'(PID 2624) Pretending to clean up directory `lxd'.

设置 cron job 定期自动删除文件

(偷偷地告诉你,tmpwatch/tmpreaper 与 cron job 一起食用更佳哦。)

进入 cron job 任务编辑窗口:

# crontab -e

添加一个周期任务:

0 1 * * * /usr/sbin/tmpwatch 30d /var/log/

上面的代码设置了 tmpwatch 每天凌晨 1 点运行,并删除 30 天之前的文件。

不了解 corn job 的小伙伴可以上网搜下它的初学者指南哈。

安装 tmpreaper 时,它会自动创建一个日常 cron job(/etc/cron.daily/Tmpreaper)。它从 /etc/timereaper.conf 文件中读取配置并执行。默认设置的是删除 7 天以前的文件,你可以通过修改 TMPREAPER.conf 文件中“TMPREAPER_TIME=7d” 来更改这项设置。

写在最后

最后在提醒一下,在删除文件的时候一定要仔细检查好路径,以免数据丢失。

tmpwatch 和 tmpreaper 手册页:

$ man tmpwatch
$ man tmpreaper

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于java+springmvc+mybatis+vue+mysql的邮票鉴赏系统及实现

项目介绍 随着邮票行业的发展,邮票市场已经有了越来越多的爱好者加入。收藏邮票,也就成了邮票收藏爱好者一个有爱又恨的话题。没错,大量的邮票收藏确实是对知识面的增广和一种成就感的满足。但是面对越来越多的邮票。五花八门各种各样的邮票…

十四、CANdelaStudio入门-DID池

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的DID池,欢迎各位朋友订阅、评论,可以提…

【C++进阶】C++11新特性上篇(万字详解)

🎇C学习历程:入门 博客主页:一起去看日落吗持续分享博主的C学习历程博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 也许你现在做的事情,暂时看不到成果,但不要忘记&…

Dubbo 4 Dubbo 高级特性 4.2 Dubbo 常用高级配置 4.2.6 负载均衡

Dubbo 【黑马程序员Dubbo快速入门,Java分布式框架dubbo教程】 4 Dubbo 高级特性 文章目录Dubbo4 Dubbo 高级特性4.2 Dubbo 常用高级配置4.2.6 负载均衡4.2 Dubbo 常用高级配置 4.2.6 负载均衡 【举个栗子】 现在 同一个服务 提供者,我们把它 部署在了…

Dijkstra迪杰斯特拉算法

1.场景 用于计算一个节点到其他节点的最短路径,特点是由其实点位中心向外层扩展(BFS思想),直至扩展到终点为止 2.认识 https://blog.csdn.net/weixin_57128596/article/details/126982769?ops_request_misc%257B%2522request%…

自动生成changelog

本文主要记录我如何在React项目中优雅的使用TypeScript,来提高开发效率及项目的健壮性。 项目目录及ts文件划分 由于我在实际项目中大部分是使用umi来进行开发项目,所以使用umi生成的目录来做案例。 . ├── README.md ├── global.d.ts ├── mo…

安全分析模型

安全分析模型自动化调优 MLOps(Machine Learning Operations)是一种人工智能 的工程实践,是面向机器学习项目的研发运营管理体系 。旨在实现 ML 管道的操作、ML 模型的部署和管理标准化,支持ML 模型的发布、激活、监控、性能跟踪…

Pytorch 学习之:关于 GPU 训练你必须知道的几件事

文章目录torchvision 下载的 pretrain 模型路径cuda 版本一定要适配多 cuda 训练 DataParallel 使用须知torchvision 下载的 pretrain 模型路径 使用 torchvision 来直接下载 pretrained 模型,有时候服务器的下载速度很慢,不如直接下载到本地之后传上去…

简单个人静态HTML网页设计作品 基于HTML+CSS+JavaScript仿小米手机网站 html静态在线购物商城网页制作

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

一种用于模拟电晕放电的高效半拉格朗日算法(Matlab代码实现)

目录 摘要 1 概述 2 数学模型与方法 3 讲解 3.1 测试1 3.2 测试2 3.3 测试3 3.4 测试4 4 Matlab代码实现 摘要 提出了一种无需通量校正的高效电晕放电模拟算法。称为位置-状态分离 (POSS) 方法的算法用于求解电晕放电建模中通常存在的以对流为主的连续性方程。所…

Java项目:ssm实验室预约维修管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为超级管理员、管理员、学生三种角色, 超级管理员角色包含以下功能: 通知管理、用户管理、实验室管理、实验室预…

字节跳动抖音本地生活前端招聘

一、认识Typescript (1)Javascript是一种动态类型的弱类型语言 Javascript超集: A.包含与兼容所有JS特性,支持共存 B.支持渐进式引入与升级 (2)TypeScript是一种静态类型的弱类型语言 静态类型的优点: A.可读性增强:基于语法…

Linux内存分配原理

Linux内存分配原理虚拟内存分区Linux内存分配时的maps文件brk()与sbrk()mmap()与munmap()mmap()munmap()内存分配过程更多资讯、知识,微信公众号搜索:“上官宏竹”。 虚拟内存分区 虚拟内存由于用途不同,分类也不尽相同,一般我们…

底层网络知识详解:从二层到三层-第6讲-交换机与VLAN:办公室太复杂,我要回学校

上一次,我们在宿舍里组建了一个本地的局域网LAN,可以愉快地玩游戏了。这是一个非常简单的场景,因为只有一台交换机,电脑数目很少。今天,让我们切换到一个稍微复杂一点的场景,办公室。 拓扑结构是怎么形成的? 我们常见到的办公室大多是一排排的桌子,每个桌子都有网口,…

C++11标准模板(STL)- 算法(std::minmax_element)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 返回范围内的最小元素和最…

非零基础自学Golang 第11章 文件操作 11.2 文件基本操作 11.2.1 文件创建与打开

非零基础自学Golang 文章目录非零基础自学Golang第11章 文件操作11.2 文件基本操作11.2.1 文件创建与打开第11章 文件操作 11.2 文件基本操作 在学习文件操作之前&#xff0c;我们先来了解一下Linux下的文件权限。 文件有三种权限&#xff0c;分别为读取、写入和执行&#x…

设计模式2 - 创建型模式

23种设计模式分析与见解开篇、UML、软件设计原则https://blog.csdn.net/lili40342/article/details/128358435创建型模式https://blog.csdn.net/lili40342/article/details/128358392结构型模式https://blog.csdn.net/lili40342/article/details/128358313行为型模式https://bl…

【MATLAB100个实用小技巧】——图形处理(67-75)

文章目录前言系列文章67. 图像的块操作68. 图形的过滤操作69. 图像的频率操作70. 函数变换71. RADON 函数变换72. 图像分析&#xff08;1&#xff09;73. 过滤图像74. 图像的区域处理75. 图像的颜色处置前言 &#x1f30f;MATLAB是一个功能强大的软件&#xff0c;我们可以利用M…

Mycat(3):mycat的安装

1、前言 使用mycat要安装JDK.不会的去看Linux里面的安装JDK的知识点&#xff0c;这是不再做说明 也可以直接使用yum install java-1.7.0-openjdk 因为mycat 基于jdk1.7开发的&#xff0c;所有最好安装jdk1.7的版本 重要说明&#xff1a; Mycat-server-1.6-release 版本发布的版…

手机技巧:苹果手机这8个实用小技巧

今天给大家大家分享苹果手机8个实用小技巧&#xff0c;你都会用吗&#xff1f; 1、快速搜索相机照片 相信大家的相册里的照片应该和我一样不说有几千张&#xff0c;几百张总是有的&#xff0c;有时候想找照片&#xff0c;又不想一张一张找怎么办&#xff1f;很简单&#xff0c…