加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Crontab不执行bash脚本

发布时间:2020-12-15 21:09:17 所属栏目:安全 来源:网络整理
导读:我很少使用 Linux,所以没有任何bash脚本和cron作业的经验. 这实际上是我的第一次尝试.所以修复它可能非常简单. 我有以下内容: /etc/cron.d/clear-mixtape-dir.sh 权限是:644 #!/bin/bash# Clears the /tmp/mixtape2 directoryrm -rf "/tmp/mixtape2/"* 我
我很少使用 Linux,所以没有任何bash脚本和cron作业的经验.
这实际上是我的第一次尝试.所以修复它可能非常简单.

我有以下内容:

/etc/cron.d/clear-mixtape-dir.sh
权限是:644

#!/bin/bash
# Clears the /tmp/mixtape2 directory
rm -rf "/tmp/mixtape2/"*

我的crontab文件如下所示:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

*/15 * * * * /etc/cron.d/clear-mixtape-dir.sh >/dev/null 2>&1

我试图每15分钟执行一次.sh脚本.

我发现的一切都说这应该有效,但事实并非如此.

在这种情况下,文件权限(在/ tmp / mixtape2 /中的文件上)是否重要?
或者也许是在实际的.sh脚本上设置的权限 – 也许他们需要设置为可执行文件?

任何建议表示赞赏

解决方法

注意:这些注释引用/ etc / crontab.

在做任何其他事情之前,你在哪个cron访问crontab -e或

su -vim
<your-favorite-editor> /etc/crontab

如果您使用的是crontab -e,则crontab的那种形式中不存在用户字段.这可能就是你没有跑步的原因.

在您的示例中,您的用户字段为*.我会使它成为root或具有适当权限的用户.

在运行这个程序之前,我会创建一个虚拟的crontab条目
回声“你好”并每分钟运行一次.得到它来处理您正在编辑的crontab(crontab -e或vim / etc / crontab).然后使用它作为模板,让脚本运行.

接下来,看看cron是否正在运行:

ps -ef | grep cron

如果它没有运行,请成为root并通过enter启动它

/etc/init.d/cron start(Ubuntu和Red Hat).

您已经有一个很好的答案,建议您因为权限问题而将root用户添加为用户.我将建议更多的东西来帮助你调试.多年来我遇到了很多cron问题.

1)将电子邮件设置为已知地址,除非您将持续监控root的电子邮件

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/local/bin:/usr/bin
MAILTO=fred@somewhere.com
HOME=/

2)在一切正常运行之前,从你的cron条目中取出> / dev / null 2>& 1,这样你就可以看到脚本运行后生成的电子邮件中的输出.

3)Bump * / 15缩小到大于运行脚本的间隔 – likr * / 5,因此脚本运行得更频繁.

4)我不知道确切的原因,但是我用cron运行的脚本必须建立自己的环境,尽管在cron中以该用户身份运行.这可能包括cd / home / script-owner和运行源.bashrc等步骤,并调用设置环境变量的其他脚本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读