AWS CloudFormation Userdata中的Crontab

时间:2016-08-23 13:29:01

标签: amazon-web-services amazon-cloudformation

如何在使用AWS CloudFormation Userdata时设置crontab?

我正在设置

(crontab -l ; echo "0 * * * * wget -O - -q http://www.example.com/cron.php") | crontab -

但是cron没有设置。是否有我应该使用的特定格式?

3 个答案:

答案 0 :(得分:3)

这将在您的模板中为您的实例设置此项:

"UserData": {
    "Fn::Base64": {
        "Fn::Join": [
            "",
            [
                "#!/bin/bash\n",
                "echo '0 * * * * wget -O - -q http://www.example.com/cron.php' > /tmp/mycrontab.txt\n",
                "sudo -u ubuntu bash -c 'crontab /tmp/mycrontab.txt'\n",
            ]
        ]
    }
}

答案 1 :(得分:0)

要正确执行此操作,应在bash脚本中执行以下操作:

crontab -l > /tmp/mycrontab
echo '0 * * * * wget -O - -q http://www.example.com/cron.php' >> /tmp/mycrontab
crontab /tmp/mycrontab

答案 2 :(得分:0)

我有类似的问题,就像其他人在这里说的那样,这些命令从CLI可以正常工作,但是通过userdata添加时却无法正常工作。经过几个小时的抓挠搜索,终于意识到我必须在crontab设置命令之前添加“#!/ bin / bash”行。这解决了我的问题,一些经验丰富的人可能已经知道这一点,但是如果您对此领域不熟悉,可能就不会知道。我的脚本如下所示。

!/ bin / bash sudo su echo'* / 1 * * * * command1 command2'> /tmp/mycrontab.txt sudo -u ubuntu bash -c'crontab /tmp/mycrontab.txt'