【问题标题】:Crontab without crontab -e没有 crontab -e 的 crontab
【发布时间】:2011-03-12 07:36:50
【问题描述】:

我想在我的服务器中添加一个 crontab 计划:

echo "30 * * * * /home/my/var/dir/to/script /var/etc/etc/etc/" > crontab -e

有没有办法在不执行 crontab -e 然后输入命令的情况下做到这一点?

【问题讨论】:

标签: crontab


【解决方案1】:

喜欢根:

 echo "30 * * * * /home/my/var/dir/to/script /var/etc/etc/etc/" > /var/spool/cron/crontabs/username

【讨论】:

    【解决方案2】:

    可以试试

    1)nano /etc/crontab (or any other editor, e.g. emacs)
    2)echo "30 * * * * /home/my/var/dir/to/script /var/etc/etc/etc/" > /etc/crontab
    3)or put the contents of this into a file, then do "file > /etc/crontab"
    

    【讨论】:

    • 但尽量不要在 /etc/crontab 中写入是危险的!
    【解决方案3】:

    我们在 RHEL 的生产环境中有以下设置: - 在 init.d 中启动 sh 的自定义软件,其中 - 处理 cron 启动、停止、重新加载 - 将 cron 任务写入单独的 tmp 文件并使用 crontab -e 加载此文件

    我只维护了几个月,但它就像一个魅力......

    【讨论】:

      【解决方案4】:

      正确的解决方法可能是使用https://stackoverflow.com/a/4421284/377927 中指定的文件,但也可以使用tee 在 crontab 中附加一行,例如:

      echo "* * * * * ls" | EDITOR="tee -a" crontab -e
      

      tee -a 会将stdin 附加到指定的文件中,EDITOR 变量告诉crontab 使用tee -a 作为编辑器。

      【讨论】:

        【解决方案5】:

        如果您在文本文件中有整个 crontab,您可以上传整个 crontab 来替换旧的 crontab,方法是:

        cat <crontab_text_file> | crontab -
        

        这将清除您的旧 crontab。使用 '-' 允许您在 crontab 中使用标准输入。

        【讨论】:

          猜你喜欢
          • 2017-08-31
          • 1970-01-01
          • 2018-02-15
          • 2017-12-01
          • 2016-09-24
          • 2014-07-24
          • 2010-12-08
          • 2014-04-07
          • 2016-08-01
          相关资源
          最近更新 更多