【问题标题】:How to use cron on a simple script如何在一个简单的脚本上使用 cron
【发布时间】:2018-12-11 12:52:18
【问题描述】:

我想使用 cron 定期执行脚本。我想先尝试一个简单的脚本,但它不起作用。

这是我的脚本 (scritp.sh) 权限为 700:

#!/bin/sh
clear
echo "Hello!"
mkdir Hello

当我使用命令 crontab -e 编辑它时,这是 crontab 文件:

SHELL=/bin/sh
* * * * * /home/padro/Documents/script.sh

编辑: 我在 /home/padro/Documents 文件夹中有那个脚本。之后我要做的是执行命令 crontab -e 来修改 cron 文件。在这个文件中,我放置了我想要的 shell SHELL=/bin/sh 以及 cron 调度表达式 * * * * * /home/padro/Documents/script.sh。这个计划理论上每分钟运行一次脚本。最后我保存了文件,一分钟后我在终端上看不到脚本的回声。

编辑2: 我添加了mkdir hello,因为我不知道脚本的回显是否显示在终端上。但是永远不会创建 hello 目录。

【问题讨论】:

  • 尝试像这样使用 cron:* * * * * /usr/bin/sh /home/padro/Documents/script.sh
  • @Padro 是什么让您认为您应该在您的(或任何)终端中看到输出?
  • @Biffen 我不知道,这是我第一次使用 cron。我想如果我在 cron 运行脚本时在脚本上添加回显,回显会在终端上显示内容。
  • @Padro 它将打印到 its STDOUT,这(很可能)不是您的终端。见unix.stackexchange.com/questions/40623/…
  • @Biffen 好的,我明白了。 cron 运行良好,脚本也运行良好,但输出未显示在我的终端上。那是我的错误。谢谢!

标签: linux cron sh


【解决方案1】:

默认情况下,由 cron 调用的程序生成的任何输出都会通过电子邮件发送给拥有 crontab 的用户(假设可以在本地传递邮件消息)。所以我建议你在本地机器上查看收件箱。

要将输出保存到文件中,请在 crontab 中使用重定向,或安排脚本将其输出写入文件。

由 cron 启动的作业不会在终端上运行,因此您不应期望通过 cron 运行此脚本每分钟都清除终端。

Hello 文件夹应该已在脚本使用的工作目录中创建(可能是您的主目录)。为了确保您知道脚本的工作目录在哪里,请在脚本中使用cd 移动到正确的位置。

【讨论】:

    【解决方案2】:

    我没有足够的声誉来添加评论。

    我的谦虚评论是。 你提到的cron文件是root吗?

    cos chmod 700 文件只能由 owner 执行。 如果您使用的是 redhat linux,那么您在第一次登录时使用的用户帐户是用户权限而不是 root。

    参考link 备忘单。

    su - 根 系统会提示root密码

    crontab -e

    * * * * * /home/padro/Documents/script.sh

    你甚至可以运行一个测试脚本,当我第一次学习脚本到你的 crontab 中时,我确实遇到了和你类似的情况-

    * * * * * 日期> export/home/padro/Documents/testing.txt

    如果可以,请重新启动服务器。

    使用命令检查你的目录是否正确 pwd 在 linux/unix 中。

    希望我根据我最近学习的评论对您有所帮助。

    编辑 1:删除脚本中的 clear 。谢谢... 编辑 2:我相信您的 Hello 文件夹是在根文件夹的核心创建的,请尝试查找它...或用户的主目录...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多