【问题标题】:Crontab on linux [closed]linux上的crontab [关闭]
【发布时间】:2019-02-19 20:22:51
【问题描述】:

我不明白,我已经看过几个论坛来帮助我,等等......但它仍然不起作用! 感谢 Cron,我想运行一个脚本! 为了尝试,我目前正在尝试执行一个在命令中发送 "test" 的脚本(使用 echo test)。没问题,如果我调用该文件,此脚本可以手动完美运行。 但我尝试每分钟使用Crontab -e 运行我的文件,我已经等了几分钟,但没有结果。 我真的不明白为什么!

已经有人告诉我将#! /bin/bash 放在脚本中代码的开头,但是当我将其放入时出现错误并且代码无法手动执行。然而,如果我不放入任何东西,代码就会顺利运行。 所以我不知道这是否是错误的来源,也许......

最终目标是制作一个每天运行的脚本,比如用sync; echo 3 > /proc/sys/vm/drop_caches 清除缓存。 Crontab 中应该是什么样子的: 00 20 * * * PATH 如果我没记错的话。

您有什么解决方案可以帮助我吗?

编辑: -bash: /root/Discord/script/cache.sh: /bin/bash^M: bad interpreter: No such file or directory 这是我在运行 /root/Discord/script/cache.sh 执行脚本时遇到的错误。当我没有#! /bin/bash 时,该命令有效。但是,当我在目录中使用 sh cache.sh 时,即使使用 #! /bin/bash

【问题讨论】:

  • “在命令中发送“测试””这是什么意思?你能分享你的脚本吗?
  • 其实我刚刚做了echo test!但这只是尝试,当它起作用时,我将用sync; echo 3 > /proc/sys/vm/drop_caches 替换它!
  • “我有一个错误”真的很模糊。你能复制粘贴你运行的命令和完整的错误信息吗?
  • 我编辑了我的帖子!
  • 如果您通过 cron 运行 echo test,您预计它会在哪里响应? echo 'test' > /tmp/test.txt 在 cron 中(或通过 cron 调用的脚本),然后检查该位置。

标签: linux cron


【解决方案1】:

Crontabs 不会在您打开的终端上打印输出。您需要创建一个文件,然后将输出附加到那里以查看或测试它是否有效。你可以参考这个答案https://stackoverflow.com/a/28856563/7181668

但是如果你想通过 cron 运行一个 shell 脚本文件,那么你需要确保你已经授予了该文件的可执行权限,然后你可以在 crontab -e 中使用下面的命令

 * * * * * /bin/sh /home/myUser/scripts/test.sh

【讨论】:

  • 所以目前我告诉 Crontab 每分钟将我的回显测试放在一个 .txt 文件中,但是我在这个文件中只有一个测试,虽然已经过了几分钟,回显显示在下面另一个,因此我的 Crontab 不能连续工作,或者只是 echo 只会修改第一个,所以每次测试“超过另一个”时都重写?只是想知道我是否必须先修复它还是正常的?
  • 感谢您的回答,我明白了!我认为我的文件是可执行的......我使用了chmod +x test.sh
  • @SamiLafrance 如果你回显到一个文件,那么它会重写它的内容。
猜你喜欢
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 2013-08-17
  • 1970-01-01
  • 2016-03-01
  • 2017-10-28
  • 1970-01-01
  • 2010-11-10
相关资源
最近更新 更多