shell Cron不会创建目录

g6baxovj  于 2023-01-13  发布在  Shell
关注(0)|答案(3)|浏览(159)

我有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

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

2guxujil

2guxujil1#

将其用作/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)如果目录已经存在,它不会出错。

aoyhnmkz

aoyhnmkz2#

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

wwwo4jvm

wwwo4jvm3#

我为此浪费了几个小时。我无法让cron创建一个文件或目录。这是因为我假设cron将从/运行,但事实上,它是从/root运行的(因此目录/文件一直在创建,但当我寻找它们时,我在/中看不到它们,所以我假设它们还没有创建。
我通过运行以下代码来计算:

* * * * * pwd >> /cronlog.txt 2>&1

1分钟后我检查了它:

cat cronlog.txt
/root

吸取教训。

相关问题