我的 crontab 中有以下命令,用于将名为“data”的文件复制到名为“Archive”的现有目录中,并附加一个日期戳。当我在命令行上手动运行它时,它工作正常。
01 0 * * * cp /home/data /home/Archive/data.$(date +%F)
但是当 cron 运行上述命令(在同一用户下)时,文件不会复制,并且出现以下错误:
cp:0653-437 2018 不是目录
答案1
那可能是外壳问题。尝试将该命令放入启动的脚本中
#!/bin/bash
并手动执行脚本以确保其有效,然后尝试在 cron 中执行它。
答案2
问题可能是没有这样的目录。这个 oneliner 将为您处理目录创建:
01 0 * * * export NEWDIR=/home/Archive/data.$(date +%F) ; mkdir -p "$NEWDIR"; cp /home/data "$NEWDIR"