自动从网络服务器删除文件

问题描述 投票:0回答:5

我需要从网络服务器的目录中删除文件,并且需要一些脚本来自动执行此操作。还有一些需要满足的条件。

  • 如果总文件大小超过某个限制,例如 1.5GB,则必须清理目录
  • 该文件每 24 小时就会删除一次。
  • 像 10 ir 20 分钟之类的新文件不会被删除
  • 如果上述所有条件同时满足,那就太棒了。

对于删除文件,我正在考虑某种玉米任务,但我对它们一无所知,所以这对我来说很棘手。
要删除文件,然后达到一定的限制,我在想某种 PHP 脚本对我有帮助。可能有一个专门用于这些东西的图书馆。
无论如何,我将非常高兴获得任何帮助。也许我只需要一些新的想法来为谷歌找到一个正确的关键字;P

编辑:我的服务器在 Linux 上运行。

php file ftp webserver
5个回答
4
投票

如果您的服务器运行的是 Linux,那么

cron
工作是最好的选择。只需编写一个脚本来检查您提到的条件(例如使用
stat
和其他一些工具)并删除文件(如果适用),然后将
crond
设置为每 24 小时运行一次。 这里简单介绍一下
cron

在 Windows 上,您可以使用脚本和计划任务执行类似的操作。


2
投票

这是一个很好的 cron 作业教程和解释:

http://www.youtube.com/watch?v=lbJrk55Ae1c

自动执行任何脚本。只需编写一个脚本来删除文件夹中的所有文件,这就是您设置 cron 作业的目标。

这里是一个关于 PHP 程序员如何访问文件夹中的所有文件并连续使用每个文件的 php unlink() 函数来删除文件的教程。取消链接($文件);

http://www.developphp.com/view_lesson.php?v=239


0
投票

这是根据文件日期自动执行文件删除的简单方法: Webmastips:针对网站管理员的提示和工具:由特定日期触发的自动文件删除 您可以自定义并自动执行此任务以满足您的需求。 问候,


0
投票

转到 cPanel,选择 cron 作业并使用以下命令来创建它:

find /home/your_account/public_html/temp/* -mmin +360 -exec rm -r {} \;

它将每 360 秒清理一次“temp”(或任何其他名称)文件。您也可以更改它。

我被告知,如果您将以下内容添加到文件末尾,它将阻止您每次执行 cron 作业时收到电子邮件:

/dev/null 2>&1


0
投票

这也可以使用 logrotate 和 systemd 计时器来实现,如此操作指南所示。

示例 logrotate 配置,比如

/path/logrotate/web-server-cleanup.conf
:

/path/to/directory/* { 
    size 1G
}

以上配置将删除所有与

/path/to/directory/*
路径正则表达式匹配且大小至少为 1G 的文件。

如果您希望它每天运行,您可以配置使用 systemd 每日计时器运行的 systemd 服务。

系统配置示例

/lib/systemd/system/web-server-cleanup.service

[Unit]
Description=Rotate log files
Documentation=man:logrotate(8) man:logrotate.conf(5)
ConditionACPower=true

[Service]
Type=oneshot
ExecStart=/usr/sbin/logrotate /path/logrotate/web-server-cleanup.conf -s /path/logrotate/web-server-cleanup.conf.state

systemd 计时器配置示例

/lib/systemd/system/web-server-cleanup.timer
:

[Unit]
Description=Daily rotation of log files
Documentation=man:logrotate(8) man:logrotate.conf(5)

[Timer]
OnCalendar=*-*-* 00:00:00
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target

您可以使用

sudo systemctl enable --now web-server-cleanup.timer

启用计时器
© www.soinside.com 2019 - 2024. All rights reserved.