首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我试过crontab,但是它不工作,它看不到文件的目录

我试过crontab,但是它不工作,它看不到文件的目录
EN

Stack Overflow用户
提问于 2018-07-30 10:19:18
回答 1查看 1.2K关注 0票数 1

我在Amazon 2 ami上创建了一个crontab,并在crontab中创建了一个cronjob:

代码语言:javascript
复制
00 * * * * /var/www/html/cront.sh
01 * * * * /var/www/html/cront2.sh
30 * * * * /var/www/html/cront.sh
31 * * * * /var/www/html/cront2.sh

但不起作用。为什么?

编辑:我尝试手动执行脚本,并且注意到如果我在bash上打印:

代码语言:javascript
复制
./var/www/html/cront.sh

不起作用,但如果我打印:

代码语言:javascript
复制
./cront.sh

它起作用了。(但我必须呆在var / www / html目录中)为什么会出现这个问题?我怎样才能运行一个工作的cron作业?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-30 10:24:57

你检查过那些脚本的权限了吗?

此外,也可以尝试将条目更改为:

代码语言:javascript
复制
00 * * * * /bin/bash /var/www/html/cront.sh
01 * * * * /bin/bash /var/www/html/cront2.sh
30 * * * * /bin/bash /var/www/html/cront.sh
31 * * * * /bin/bash /var/www/html/cront2.sh

看看能不能。

编辑:由于这样做有效,我将添加一个快速解释为什么这可以修复事情..。

首先,对于创建crontab的用户,脚本可能没有执行权限('x')。通过解释器调用脚本显式地绕过了这一点,因为脚本不再被尝试执行,而只是读取。

第二种可能是shell脚本使用bash特定的语法。cron的默认shell是sh,这是一个比bash更基本和更有限的shell。调用bash解释器专门解决了这个问题。请注意,您还可以为第一行带有shebang (#!/bin/bash)的脚本指定所需的解释器。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51591780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档