我有一个非常简单的 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/