crontab 运行 UNIX 中的一个脚本

Crontab running a script in UNIX

有一个简单的脚本来执行 运行 顶级命令并将结果存储在 txt 中 file.It 将 运行 每天循环 3 次,每次 1 小时 gap.Once 完成电子邮件将使用文本文件内容作为电子邮件正文发送,并删除文本文件,以便第二天新的文本文件。

问题

  1. 为了自动化我创建的 cronjob 在晚上 8.30 开始的过程,这将启动脚本并且我的脚本将保持 运行ing 4 小时并且命令的结果将附加在文本中文件最后发送过来 mail.CRON 是 >> 0 10 * * * /tmp/ssh-abc/KKK/Report.sh

    /tmp/ssh-abc/KKK/Report.sh: line 34: ReportProd.txt: Permission denied

Code

用于生成txt文件

{
//Some Logic
} >> ReportProd.txt   //Running script manually works great and generate txt!!

邮寄后删除文件。

find /tmp/ssh-abc/KKK/*.txt -type f -delete   //This works fine manually,file is getting generated and deleted also.

/tmp/ssh-abc/KKK/Report.sh: line 39: ReportProd.txt: No such file or directory

你能帮我看看这可能是什么问题吗?我已经看过一些东西但没有击中正确的点。 给予文件夹 0755 的所有权限,期望 cron 可以毫无问题地执行。 Tried giving cd and path and then the command in crontab but seems not working

注意 :未添加 #!/bin/bash 和 "whereis sh" 给我 sh: /bin/sh /usr/share/man/man1/sh.1.gz /usr/share/man/man1p/sh.1p.gz

尝试 0 10 * * * sudo sh /tmp/ssh-abc/KKK/Report.sh

我就是这样做的,而且通常没有问题。 应使用 crontab -e

以 root 身份安装 Cron 作业

尝试

/bin/sh /tmp/ssh-abc/KKK/Report.sh

或者

chmod 755 /tmp/ssh-abc/KKK/Report.sh

可能是脚本不可执行。

在您的脚本中,确保您 cd 到要在其中创建输出文件 ReportProd.txt 的目录。脚本将尝试在 中创建它当前目录,cron 运行时会有不同的值。
简单地 运行 带有 /tmp/ssh-abc/KKK/Report.sh 的脚本并不意味着工作目录将是 /tmp/ssh-abc/KKK.

或者,提供您希望输出文件转到的完整路径。例如:

{
# Output generated here
} >> /full/path/to/output/ReportProd.txt