我无法让cron运行我的脚本而且我没有想法。 我在这台机器上运行Ubuntu 10.04。 该脚本在命令行中运行,没有任何问题。其他测试脚本有效 并且设置与timelapvid相同。
这是我的crontab -e,其中bench是用户名:
00 00 * * * /home/bin/bench/timelapvid >> /home/bin/timelapvid.log
在Ubuntu中,〜/ bin目录在登录时添加到PATH变量,以避免修改/ bin。
timelapvid的内容:
## timelapse is a dir which contains the still pics
cd ~/bin/timelapse || exit
## only work on new pics, remove the colon, dvd-slideshow doesn't like it
ls -1 | grep : > list
for i in `cat list`
do
mv $i `echo $i | sed 's/:/./g'`
done
#build the slide show list and change the time for each slide
dir2slideshow -n "Time Lapse Video" . && sed -i 's/:5/:0.5/g' "Time Lapse Video.txt"
# remove the last three lines of the above .txt
lines=$(wc -l < "Time Lapse Video.txt")
target=$((lines-2))
sed -i "$target,$lines d" "Time Lapse Video.txt"
# make the time on the last slide longer
lines=$(wc -l < "Time Lapse Video.txt")
sed -i ""$lines"s/:0.5/:3/" "Time Lapse Video.txt"
dvd-slideshow -f "Time Lapse Video.txt" && mv "Time Lapse Video.vob" ../video /TimeLapseVideo.vob
rm list
### Update Web Page
rsync -r --delete ~/bin/video/ user@sever:public_html/circuits/timelap/video/
echo -e "\n****UPDATE SUCCESSFUL****\n"
谢谢你,
WBG
答案 0 :(得分:1)
Cron使用自己的最小环境。所以~
在你的脚本中毫无意义。如果您在crontab中定义它,可以使用$HOME
:
# environment
HOME=/home/wbg
# tasks
00 00 * * * /home/bin/bench/timelapvid >> /home/bin/timelapvid.log
此外,您确定自己的/home/bin
路径吗?是不是像/home/wbg/bin
?