一个用于更改文件权限的 cron 作业

一个用于更改文件权限的 cron 作业

当我运行 chmod 777 来手动更改文件的权限时,它会运行。但当我将它放入 cron 作业中时,它永远不会改变权限。

#!/bin/bash

YESTERDAY=`TZ=aaa24 date +%Y-%m-%d`

chmod 777 Overscratchcard_Detail_Report_*.csv

然后我将上述内容放在 crontab 上以更改文件的权限,当我手动运行时,文件权限会发生变化,但在 cron 作业上...文件仍然保留相同的权限。

答案1

Cron 有自己的 shell。因此,当您运行 cron 作业时,它可能与用户执行它时的环境不同。提供您要修改的文件的完整路径也是不错的选择。您可以尝试两种方法:获取用户的 .bashrc 以获取用户环境。或者提供 chmod 的完整路径,我不记得完整路径了,但命令看起来像这样:

/usr/bin/chmod 777 /path-to-file/your.csv

要找到 chmod 的路径,您可以运行:

which chmod

祝你好运!

答案2

另一种方法是编写一个执行 chmod 的 shell 脚本,并在你喜欢的时间使用 cron 调用它

如果您有一个名为 /opt/foo/changeperms.sh 的脚本,那么您可以从 cron 调用它

* 1 * * * /opt/foo/changeperms.sh &

& 在后台运行脚本

相关内容