Прошу помочь грамотно решить задачу. Смысл такой. Имеется фтп сервер на linux (debian + vsftpd). На него каждую секунду от камеры наблюдения приходит картинка в формате jpg. Формат имени файла следующий: ДД-ММ-ГГГГ. Необходимо этот файл переименовать в определенное имя и скинуть на другую машину в сети по протоколу smb. Удалить локальную копию файла. Эту операцию выполнять с каждым новым файлом. Напомню, они появляются каждую секунду). Структура каталогов на фтп сервере ( с точки зрения ОС на нем) /var/ftp/{имя камеры}/{текущая дата}/1/.
С помощью гугла, мана и такой-то матери был написан говнокод, который даже делает поставленную задачу. По крайней мере мне так кажется. Вопрос в правильности этого кода.
Код: Выделить всё
#!/bin/sh
myfunction () {
date=`date +%d-%m-%Y`
camname=$1
filename=$2
sdir="/var/ftp/$1/$date/1"
tdir="/mnt/smb"
mv $sdir/`ls -t --full-time | awk '{if(NR==3) printf($9)}'` $tdir/$2
rm -f $sdir/`ls -t --full-time | awk '{if(NR>4) printf($9)}'`
}
myfunction camname1 filename1
myfunction camname2 filename2
myfunction camname3 filename3
myfunction camname4 filename4Сейчас писал его можно сказать по новой. Оригинал остался на другой машине, утром сравню, хотя на вид все тоже самое. Каментарии к коду нужны? Если надо, допишу. Камер будет несколько, потому в конце идет вызов функции с разными параметрами camnameN filenameN. Запускать по крону каждую секунду.
Собственно из-за чего все это затевалось, сердцем чувствую - костыль, но другого варианта реализации не придумал. Ребята, подскажите наиболее правильный вариант. Можно словесным описанием, а код я попробую сам наваять.
Спасибо всем дочитавшим до конца