CRON 不会在 Lubuntu 16.04 上触发作业

CRON 不会在 Lubuntu 16.04 上触发作业

我的服务器上有 3 个用户,其中 2 个用于 FTP 上传。

我希望 CRON 每隔一段时间触发一项作业,删除各自主目录中名为“subdomain”的文件夹中已存在 X 天或更早的文件。

当以拥有目录的用户身份在终端中运行时,此命令有效;
find /home/derakupload/subdomain -mindepth 1 -mmin +1 -delete

问题出在 CRON 上,它拒绝运行此命令。
我使用进入 CRON sudo crontab -e,目前有 2 个条目;

* * * * * derakupload find '/home/derakupload/subdomain' -mindepth 1 -mmin +1 -delete
* * * * * derakupload /opt/script/delete_files_older_than

下面的工作中的脚本如下所示

#!/bin/bash
find $HOME/subdomain -mindepth 1 -type f -mmin +1 -delete



我尝试过在特定时间运行它,而不是直接全部运行,但没有成功。
我不知道我做错了什么。

答案1

这是一个长期存在混淆的问题,因为系统 crontabs (/etc/crontab以及 中的相关文件/etc/cron.d) 和用户 crontabs (包括用户的 crontab root,通常通过 访问sudo crontab -e) 之间存在差异 -DEBIAN SPECIFIC摘自 的部分man cron

Support  for  /etc/cron.d  is included in the cron daemon itself, which
handles this location as the system-wide crontab spool.  This directory
can  contain  any  file  defining  tasks  following  the format used in
/etc/crontab, i.e. unlike the user cron spool, these files must provide
the username to run the task as in the task definition.

如果你确实需要find以用户身份运行该命令derakupload,那么你可以直接通过自己的 crontab 执行此操作,例如

sudo -u derakupload crontab -e

或添加它(用户字段)更改为/etc/crontab

或者,如果find命令可以以 root 身份运行,则只需使用 root 的 crontab sudo crontab -e,但忽略用户字段derakupload

相关内容