> /tmp/sh-6ren">
gpt4 book ai didi

linux - crontab 自定义 shell 执行 cron

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:10 27 4
gpt4 key购买 nike

我想让我的 cron 命令从自定义 shell 中执行,如下所示:

SHELL=/bin/cron-launcher.sh
* * * * * test echo "toto" >> /tmp/shell.log

问题是如果我指定我自己的 shell,文件/tmp/shell.log 是空的。

我自定义的shell内容如下:

#!/bin/bash -e

#Script use to launch cron tasks

set -e

SHELL="/bin/bash -e"
LOGDIR="/var/log/cronlauncher/"

echo "$USER" > /tmp/test.log

用于启动 cron 的用户很好地输出到文件/tmp/test.log 但来自 cron 的 cron 命令 echo "toto" 从未输出到文件 /tmp/shell.log .

如何让自定义shell正确执行cron命令。

这就是让 cron-launcher.sh 脚本充当包装器。

下面是我的/var/log/cron 的摘录:

Dec 26 15:55:01 bf7fe8653ac9 CROND[658]: (test) CMD ( echo "toto" >> /tmp/shell.

最佳答案

通过执行解析到 shell cron-launcher.sh 的第二个参数解决了这个问题

事实是来自 cron 的命令 echo "toto">>/tmp/shell.log

SHELL=/bin/cron-launcher.sh
* * * * * 测试 echo "toto">>/tmp/shell.log

在 shell cron-launcher 中被解析为 $2

因此我不得不修改我的代码如下:

#!/bin/bash

#Script use to launch cron tasks

SHELL="/bin/bash"
LOGDIR="/var/log/cronlauncher/"

#echo "$USER" >> /tmp/test.log
COMMAND="$2"
eval $COMMAND

关于linux - crontab 自定义 shell 执行 cron,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41333512/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com