bash - 将简单的 shell 脚本作为 cronjob 运行

标签 bash shell cron

我有一个非常简单的 shell 脚本,需要作为 cronjob 运行,但我什至无法运行测试脚本。这是示例脚本:

/home/myUser/scripts/test.sh

#!/bin/bash
touch file.txt

定时任务:

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

该脚本在终端上运行良好,但无法使其作为 cronjob 运行。到目前为止,我已经在 crontab 中尝试过这些:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

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

这在脚本文件中:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/myUser/scripts

根据我收集到的信息,解决方案可能在 PATH 变量中,但我无法弄清楚它是什么,因为此时我的理解非常有限。所以我的问题是,如何让我的脚本作为 cronjobs 运行?

编辑:该文件对所有用户都具有 rwx 权限。这仅用于测试目的。

编辑: 诸如 * * * * * touch/home/myUser/scripts/test.txt 之类的 cronjobs 可以工作,但它不会运行脚本。

最佳答案

最简单的方法是使用 GUI:

对于 Gnome 使用 gnome-schedule (universe)

sudo apt-get install gnome-schedule 

对于 KDE,使用 kde-config-cron

It should be pre installed on Kubuntu

但是如果你使用 headless linux 或不想要 GUI,你可以使用:

crontab -e

如果你在终端中输入它,你会得到一个表格。
你现在必须插入你的 cronjobs。
像这样格式化作业:

*     *     *     *     *  YOURCOMMAND
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- Day in Week (0 to 7) (Sunday is 0 and 7)
|     |     |     +------- Month (1 to 12)
|     |     +--------- Day in Month (1 to 31)
|     +----------- Hour (0 to 23)
+------------- Minute (0 to 59)

还有一些短裤(如果您不想要 *):

@reboot --> only once at startup
@daily ---> once a day
@midnight --> once a day at midnight
@hourly --> once a hour
@weekly --> once a week
@monthly --> once a month
@annually --> once a year
@yearly --> once a year

如果您想将短裤用作 cron(因为它们不起作用):

@daily --> 0 0 * * *
@midnight --> 0 0 * * *
@hourly --> 0 * * * *
@weekly --> 0 0 * * 0
@monthly --> 0 0 1 * *
@annually --> 0 0 1 1 *
@yearly --> 0 0 1 1 *

关于bash - 将简单的 shell 脚本作为 cronjob 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754784/

相关文章:

bash - 期望:将生成命令的输出存储到变量中

linux - 使用 awk 在 BASH 中的特定列中搜索变量

linux - 在sed中按字母顺序对变量进行排序

linux - 有效的 shell 脚本输入日期格式

bash - 如何将子 shell 的输出文件描述符重定向到父 shell 中的输入文件描述符?

linux - 直到循环没有按预期工作

javascript - node.js cron 是否影响系统性能

bash - 相当于 dash shell 中的 pipefail

ruby-on-rails - 如何在 Rails ActiveJob 中创建日常工作(类似 cron)?

linux - 是否应该使用 "&"指定 linux cron 作业以指示在后台运行?