Cron 不会创建目录

Cron wont create directories

我有 crontab 条目,找不到它的问题,但它不起作用。

*/5 * * * * mkdir -m /home/ubuntu/aus/cron/$(date +\%Y\%m\%d)/$(date +\%R) && /usr/bin/python3 /home/ubuntu/aus/test.py >> /home/ubuntu/au/cron/$(date +\%Y\%m\%d)/$(date +\%R)/cron.log 2>&1

我正在尝试使 croncron 文件夹中创建目录,并将 cron 日志文件放入其中。

您的 mkdir 语句中似乎有误。 -m 参数用于设置您正在创建的目录的模式。您需要摆脱 -m 或为其提供有意义的参数(例如 mkdir -m 755 ...)。

用作/home/ubuntu/aus/test.sh

#!/bin/bash

rootdir=/home/ubuntu/aus
crondir=$(date "+$rootdir/cron/%Y%m%d/%R")

mkdir -p "$crondir"
/usr/bin/python3 "$rootdir/test.py" >> "$crondir/cron.log" 2>&1

然后 cron 条目将是

*/5 * * * * /home/ubuntu/aus/test.sh

mkdir -p 的神奇之处在于 a) 它会在路径中创建每个缺失的目录,并且 b) 如果目录已经存在,它不会出错。