【问题标题】:Crontab in AWS CloudFormation UserdataAWS CloudFormation 用户数据中的 Crontab
【发布时间】:2020-02-11 21:52:17
【问题描述】:

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

我在设置

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

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

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    这会起作用,在你的模板中为你的实例设置这个:

    "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",
                ]
            ]
        }
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        我遇到了类似的问题,就像其他人在这里所说的那样,这些命令在 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'

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-25
          • 2020-07-10
          • 2020-09-12
          • 1970-01-01
          • 2019-07-06
          • 2018-07-02
          相关资源
          最近更新 更多