自动删除超过 7 天的文件

自动删除超过 7 天的文件

我对 Linux 完全是菜鸟,但我开始掌握它了。我有一台 Ubuntu Server 16.04,运行 FTP 服务器来备份安全视频文件。这些文件将存储在以下文件夹中:/home/securityfolder1/home/securityfolder2/home/securityfolder3

请注意,每个securityfolderN都是不同的用户。

因为我不想我的硬盘一直处于满状态,所以我想每天删除这些文件夹中超过 7 天的文件。

答案1

/home首先,此命令将查找并删除名称以 开头的任何子目录中所有超过 7 天的文件securityuser

find /home/securityuser* -mtime +6 -type f -delete

您需要的是-mtime +6而不是+7因为-mtime计算的是 24 小时周期。如(以相同的方式工作 )-atime部分所述:man find-mtime

   -atime n
          File  was  last  accessed n*24 hours ago.  When find figures out
          how many 24-hour periods ago the file  was  last  accessed,  any
          fractional part is ignored, so to match -atime +1, a file has to
          have been accessed at least two days ago.

因此,要查找 7 天或更早之前修改的文件,您需要查找 6 天以上之前修改的文件,因此-mtime +6

下一步是让此命令每天运行一次。由于每个用户securityuserN都是不同的用户(您可能需要重新考虑该设置,这会使一切变得更加复杂),因此必须以 root 身份运行此命令。因此,编辑/etc/crontab

sudo nano /etc/crontab

并添加这一行:

@daily root find /home/securityuser* -mtime +6 -type f -delete

这将find每天运行一次命令并删除文件。

答案2

据我所知:

尝试find这样的命令:

find ./dirc/* -mtime +6 -type f -delete

./dirc/* : is your directory (Path)
-mtime +6 : modified more than 6 days ago (therefore, at least 7 days ago)
-type f : only files
-delete : no surprise. Remove it to test before like rm

相关内容