Cron:如何通过 cron 删除目录

Cron:如何通过 cron 删除目录

我已经安装了 cron,它如下

1 0 * * * rm -R /path/to/my/folder/$(date +'%Y-%m-%d' -d "昨天")

我想删除每天以“昨天名称”命名的文件夹,例如“2014-12-14”

当我执行“grep CRON”命令时,这是我的 ubuntu /var/log/syslog

12 月 16 日 00:01:01 {SERVERNAME} CRON[21031]: (root) CMD (rm -R /path/to/my/folder/$(date +') 12 月 16 日 00:01:01 {SERVERNAME} CRON[21030]: (CRON) 信息 (未安装 MTA,丢弃输出)

答案1

联机帮助页 ( man 5 crontab) 中写道:

该行的整个命令部分(直到换行符或 % 字符)将由 /bin/sh 或 crontab 文件的 SHELL 变量中指定的 shell 执行。除非使用反斜杠 () 进行转义,否则命令中的百分号 (%) 将更改为换行符,并且第一个 % 之后的所有数据将作为标准输入发送到命令。

因此,您必须将%日期格式中的每个替换为\%

1 0 * * * rm -R /path/to/my/folder/$(date +'\%Y-\%m-\%d' -d "yesterday")

答案2

您可以使用此命令

find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +

IE

1 0 * * * find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +

信用在此

相关内容