为什么我可以从cronjob中的Bash脚本创建但不能写入文件?

用户名

我有一个简单的Bash脚本,可以从命令行正常运行。它需要在脚本开头附近写入两个临时文件。当我将其粘贴在cronjob中时,它将创建临时文件,但不会向其中写入任何数据。这些文件的大小为零。每次cron作业重新启动时,我都希望临时文件被覆盖。

cron条目基本上如下所示:

0 */4   *   *   *   /opt/myscripts/boringScript.sh 

在脚本中是:

...
echo "Starting boring inventory script"  >>  /opt/myscripts/boringScriptLog.out

countingScript.sh | grep $paramONE | sed s#\ ##g  >  tempResults1.txt
countingScript.sh | grep $paramTWO | sed s#\ ##g  > tempResults2.txt


do 
   // more stuff with the above temp files
   ...
done
...

有什么想法为什么不将任何数据写入cron中的临时文件?

谢谢!

梅尔·波斯兰

由于以下两个原因之一,它可能无法写入tempResults文件:

  1. 运行计数Script.sh的用户标识没有对这些文件的写许可权
  2. 运行countingScript.sh的用户ID在其运行的目录中没有写权限。

在处理cron时,为读取或写入的所有脚本和文件指定绝对路径是一个非常非常非常好的主意。我在您的脚本中看不到它。

例如,您正在指定的完整路径/opt/myscripts/boringScriptLog.out,但是依赖于countingScript.sh,tempResults1.txt和tempResults2.txt在您当前的工作目录中,并且您的用户对此具有写访问权。

由于脚本正在运行,因此您至少具有对countingScript.sh所在目录的读取和执行权限,但没有写权限。

尝试使用

/path/to/my/countingScript.sh | grep $paramONE | sed s#\ ##g  >  /tmp/tempResults1.txt
/path/to/my/countingScript.sh | grep $paramTWO | sed s#\ ##g  >  /tmp/tempResults2.txt

并在引用脚本的其余部分中修改这些tempResults文件的路径。您会惊讶地看到他们的工作精美。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

可以创建csv但不能写入

为什么我不能写mmaped文件

为什么可以将一个布尔数组写入一个宗地,但不能写入布尔型?

为什么在Xcode中可以创建组,但不能创建真实文件夹?

为什么sed命令可以交互工作,但不能在我的脚本中工作?

AWS Lambda可以读取但不能写入RDS

可以读取但不能写入Samba共享

为什么可以写acos(1.0)但不能写acos(1)?

在excel中,为什么我可以在表1和表2之间创建关系,但不能创建相反的关系?

我不能写文件

为什么我可以切换到用户但不能运行脚本

为什么我可以使用WinSql连接到MySql,但不能在Eclipse的连接配置文件中连接?

为什么我不能写cout << a == b; 但可以写cout <<(a == b);

为什么我不能写到/ dev / stdout,但是php:// stdout可以工作?

为什么我不可能写入到一个文件?

我为什么能写入JSON文件,而不删除其中的所有内容?

我有一个使用OpenCV的python脚本,代码可以在python 2.7中工作,但不能在python 3.7中工作,我不确定为什么

为什么我的代码创建一个.txt文件,但不在其中写入信息?

为什么此脚本在终端中起作用,但不能在文件中起作用?

Excel锁定文件-为什么我可以复制它但不能打开它?

为什么我的 bash 脚本可以在终端中工作,而在使用 crontab 时却不能?

有什么原因我不能写入,然后使用 Pandas 从同一个 csv 文件中读取?

为什么jQuery hover可以在jsfiddle中工作,但不能在我的html布局中工作?

为什么我不能写入最后一个块的最后一个字节?

为什么我不能更改新创建文件的“上次写入时间”?

为什么我不能写USB记忆棒?

为什么我不能写这个缓冲区?

为什么我不能写与同类型箱::新功能?

R - 为什么我的函数似乎可以工作,但不能更新列表中的小标题?