MMV 不会在 bash 脚本中执行(仅当由 CRON 运行时)

MMV 不会在 bash 脚本中执行(仅当由 CRON 运行时)

这是我的脚本“backup.sh”:

#!/bin/bash


date=$(date +"%m-%d-%Y_%r")

mmv -r "uploads/temp/*" "#1\ '$date'"

mv /ftphome/uploads/temp/* /ftphome/uploads/arch/

我的目录结构如下:

dr-xr-xr-x 9 it2 it2 4096 Feb 29 12:09 arch
drwxrwxr-x 2 it2 it2 4096 Feb 29 12:09 temp

当我尝试从控制台执行脚本时,一切都正常 - 以 root 身份,否则我会收到错误“目录 uploads/temp/ 目录不允许写入”<- 我故意设置了此权限。

不幸的是,当我尝试用 corn 启动该脚本时,mmv 命令没有执行,并且所有文件都移动到没有后缀的“arch”目录。

我试图将“temp”目录的 chmod 权限更改为 777,但这没有帮助。我以 root 身份编辑了 crontab,因此它应该可以以 root 身份运行(我在本主题中读到的信息:如何使用 sudo 命令运行 cron 任务)。

顺便说一句,这就像我尝试通过 cron 执行脚本(每分钟用于测试):

* * * * * /ftphome/backup.sh

答案1

您需要cd先进入正确的目录。Cron 从 开始/

#!/bin/bash
date=$(date +"%Y-%m-%d_%r")

cd /ftphome || exit

mmv -r "uploads/temp/*" "#1\ '$date'"

mv /ftphome/uploads/temp/* /ftphome/uploads/arch/

另外,不要.sh在 bash 脚本上添加扩展名。这会产生误导,因为 sh 不是 bash。

相关内容