Cron Job自动删除早于7天Linux的文件夹

Soh*_*med 5 linux directory cron jobs

我在存储VPS上存储服务器备份时遇到问题.我的服务器没有删除旧的备份文件夹,存储空间已满,备份中途失败.我每周跑一次.

任何人都可以帮我创建一个cron作业脚本,删除超过7天的文件夹并在备份前一天运行并删除旧文件夹.

任何帮助赞赏.

min*_*oyo 13

例如,用于删除/path/to/backup/每天凌晨4:02之前超过7天的文件的crontab的描述如下.

02 4 * * * find /path/to/backup/* -mtime +7 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

请确保在执行rm目标是否是目标文件之前.您可以通过指定-ls参数来检查目标find.

find /path/to/backup/* -mtime +7 -ls
Run Code Online (Sandbox Code Playgroud)

mtime 表示最后一个修改时间戳,find的结果可能不是预期的文件,具体取决于备份方法.

  • @SpaceBear是的,但这有一个稍微不同的行为,因为如果“find”面临任何删除问题(例如非空文件夹),它会返回错误状态。如果您想将其用作简单的 logrotate 作业,例如在 Apache Airflow 中,这可能是一个问题,该作业期望退出 0 来声明其已成功运行。所以你必须使用 `... -exec rm {} \;` (2认同)