crontab 找不到脚本

crontab 找不到脚本

我有一个 cron 任务,每晚在我的用户下运行一次。我使用 crontab -e 并通过添加以下行来安装它:

0   1   *   *   *     /home/username/diskreport.sh

crontab 的设置是将结果通过电子邮件发送给我。我似乎随机收到一封来自 Cron Daemon 的电子邮件,指出未找到脚本(与 diskreport.sh 的输出相反)。

/bin/sh: 1: /home/username/diskreport.sh: not found

脚本开始时确实出现了错误,我已经更正了,但这并没有阻止脚本运行。它在 sh 和 bash 下都可以正常运行:

#~/bin/bash

答案1

事实证明,这与 ecryptfs 和加密主目录有关。“看似随机”的行为是由我的用户登录后进行的活动 SSH 会话触发的。登录时,cron 能够读取我的主目录,因为它已挂载并解密。注销时,脚本不可用。感谢所有有用的建议。

答案2

所有 shell 脚本都应该以以下行开头#!/bin/bash(替换bash为你正在使用的 shell

答案3

做:

 whereis sh

获取最短路径,例如,/bin/sh将 crontab 作业更改为:

0   1   *   *   *    /bin/sh    /home/username/diskreport.sh

相关内容