查找此错误消息的来源:
Processing: +([^_]).flv
date: +([^_]).flv: No such file or directory
我在最近几个月的某个时候开始得到这个(不能说我什么时候没有记录我的cron输出。我知道,我知道!)。
当我最初写这篇文章时,它至少工作了两个月。我想知道是否有一个sh更新打破了它?
该脚本通过crontab运行,并获取当前目录中没有下划线的所有.flv文件并处理每个文件。然后检查修改日期以查找过去24小时内创建的文件,并为.flv文件运行yamdi元标记注入器。
似乎它没有将模式识别为模式并将其视为实际文件给我。如果我从ssh shell运行这个脚本它可以正常工作,只有当它通过cron运行它才会出现这个错误。
shopt -s extglob
now=$(date +"%s")
for f in +([^_]).flv; do
echo "Processing: $f"
age=$(date -r "$f" +"%s")
calc=$(((now-age) / 60 / 60))
if(( calc < 24 )); then
echo "$f age=$calc"
yamdi -i "$f" -o "$f".seek
rm "$f"
cp "$f".seek "$f"
touch -d @$age "$f"
fi
done
答案 0 :(得分:1)
这很可能是使用错误shell的问题;确保你的脚本的第一行代表正确的shell:
#!/bin/bash
对于bash,或者你为此写的任何shell。您可能想要检查cron可能设置的环境变量(这是一个非常常见的问题 - 假设所有内容都已正确设置,但cron为其执行的脚本提供的环境不同)。