hi
Нужна помощь в написании скрипта sh под FreeBSD 6.2 выполняемого из cron каждый 1 час.Цель скрипта: Поиск в заданной папке (содержащей подпапки) avi файлов, в которые в текущий момент не ведется запись видеопотока (ffmpeg из локальной сети пишет в avi файлы с почасовой ротацией или ротацией по обрыву потока)
Затем эти файлы переконвертируем с новыми параметрами, и архивируем 7z в указанную папку, с именем аналогичным подпапке найденого файла.
Я написал так, но работает исключительно вручную, при запуске из crona - не отрабатывает:
#!/bin/sh
# Count Camer
countcam=1
# Init folder files video record
initdir="/var/tmp/cam"
# Folder output files
outdir="/var/ftp/cam"
# Temp file converting video stream
outfileavi="/tmp/tempencode.avi"
# Main code procedure converting:
rm -f $outfileavi
curcam=1
while [ $curcam -le $countcam ]
do
curdir=$initdir$curcam
cd $curdir
count=0
for file in *
do
count=`expr $count + 1`
done
if [ $count -gt 1 ] ; then
for file in *
do
count=`expr $count - 1`
if [ $count -gt 0 ] ; then
outfile7z=$outdir$curcam/$file".7z"
ffmpeg -i $file -y -an -s 640x480 -hq -b 512 -vcodec msmpeg4v2 $outfileavi
7z a -mx=7 -y -bd -p1972 $outfile7z $outfileavi
rm -f $outfileavi
rm $file
fi
done
fi
curcam=`expr $curcam + 1`
done
exit 0
Тогда я попробовал что то типа:
find $initdir -name '*.avi' -type f -mtime +0 | ffmpeg -y -an -s 640x480 -hq -b 512 vcodec msmpeg4v2 | 7z a mx=7 -y -bd -pqwerty $outfile7z
Но не знаю как правильно перебросить результаты работы команд, и как 7z указать основную папку и передать ему подпапку аналогичную результату поиска команды find ...