运行 来自特定目录的 cron 和日志文件中的记录时间

Run cron from specific directory and log time in log file

我有这个脚本可以解析来自外部地址的图像。 我需要确保脚本在特定目录中 运行ning。我也想记录时间

这是我为 cronjob 所做的:

*/2 * * * * cd /path/to/script; (time /path/to/script/code.sh arg) &>> /path/to/log/time.log)

我的 shell 脚本非常简单:

#!/bin/sh
timestamp()
{
    date +"%Y-%m-%d %T"
}
echo "###########################"
echo $(timestamp)
python /path/to/script/parser1.py "-s"
python /path/to/script/parser2.py "-s"

我收到了我的用户的邮件,但它只是 $(timestamp) 回显。我应该有时间戳,并且在我的 time.log 文件中更新了 parser1 和 parser2 的输出。我不知道为什么这不起作用!我可以从命令行 运行 cronjob 命令并且它有效。

所以,我认为问题是 cron 正在 运行 宁你的脚本,而不是从你想要 运行 它的目录。我不确定,但我相信 cron/root/ 目录执行脚本。

试试这个 - 将其添加到您的时间戳函数下方 - 当然,使用正确的路径进行修改。

DIRNAME=/path/to/directory
LOGFILE=logfile.log
cd ${DIRNAME}
echo $(timestamp) >> ${LOGFILE}

然后删除当前 echo $(timestamp) 行。

此外,请确保日志文件存在,并且您对该文件具有写入权限。