Comments 38
if [ "$1" == "eye01" ]; then
curl "http://$1/reboot.cgi?loginuse=admin&loginpas=PASSWORD"
elif [ "$1" == "eye02" ]; then
curl "http://$1/reboot.cgi?loginuse=admin&loginpas=PASSWORD"
А почему у вас эти условия, они же ничего не делают, если $1 вы даете рабочее имя для url
0
Как не делают?
Это же простая проверка на правильность вписания аргумента. Если он будет отличный от eye01, eye02, eye03, то получим сообщение, что такая камера неизвестна.
Это же простая проверка на правильность вписания аргумента. Если он будет отличный от eye01, eye02, eye03, то получим сообщение, что такая камера неизвестна.
0
аа, тогда просто вот так было бы лучше:
Я просто пытался вглядеться в URL, пытаясь увидеть в чем разница =)
case $1 in
eye01|eye02|eye03 )
curl "http://$1/reboot.cgi?loginuse=admin&loginpas=PASSWORD" ;;
else
echo "Not recognized camera $1"
exit 1 ;;
esac
Я просто пытался вглядеться в URL, пытаясь увидеть в чем разница =)
0
Да, действительно, так лучше. Но я все никак не могу привыкнуть так писать код.
Спасибо за предложение. Изменю в репозитории.
Спасибо за предложение. Изменю в репозитории.
0
Хотя это подойдет, только если пароль будет одинаков.
+1
Если пароль разный, тогда еще проще
И просто накидываете проперти файлики. При этом у вас уже имя камеры и конкретный URL уже могут быть связаны, но отличаться. Для добавления камеры даже скрипт править не нужно — просто еще один /etc/camera/eyeXX.properties добавить, в котором просто
if [ -f /etc/camera/${1}.properties ]; then
. /etc/camera/${1}.properties
curl "${URL}?loginuse=${USER}&loginpas=${PASS}"
else
echo "Not recognized camera $1"
exit 1 ;;
fi
И просто накидываете проперти файлики. При этом у вас уже имя камеры и конкретный URL уже могут быть связаны, но отличаться. Для добавления камеры даже скрипт править не нужно — просто еще один /etc/camera/eyeXX.properties добавить, в котором просто
URL="http://eyexx.local.net/reboot.cgi"
USER="admin"
PASS="PASSWORD"
0
Круто. Как-то мне в голову даже не пришло. Спасибо!
+1
Еще можно использовать именованный массив как вариант.
код
declare -A CAM=(
[eye01user]=user [eye01pass]=123
[eye02user]=admin [eye02pass]=456
[eye03user]=loser [eye03pass]=789
)
URL="http://$1/reboot.cgi?loginuse=_L_&loginpas=_P_"
URL=${URL//_L_/${CAM[${1}user]}}
URL=${URL//_P_/${CAM[${1}pass]}}
[[ ${CAM[${1}user]} ]] && curl "$URL" || echo "Unknown camera $1"
0
Рефакторинг)
declare -A CAM=(
[eye01user]=user [eye01pass]=123
[eye02user]=admin [eye02pass]=456
[eye03user]=loser [eye03pass]=789
)
URL="http://$1/reboot.cgi?loginuse=${CAM[${1}user]}&loginpas=${CAM[${1}pass]}"
[[ ${CAM[${1}user]} ]] && curl "$URL" || echo "Unknown camera $1"
0
Весь прикол внешнего файлика в том, что не нужно лезть в скрипт (а значит сам скрипт можно например взять и кинуть на тостер, чтобы кто-то помог доработать ошибку).
А в случае массива с паролями в самом скрипте — проблемы =)
А в случае массива с паролями в самом скрипте — проблемы =)
0
У каждого варианта свои плюсы и минусы. Массив с логинами\паролями тоже можно вынести в отдельный файл
~/cameras
и добавлять их в сценарий source'омdeclare -A CAM=(
[eye01user]=user
[eye01pass]=123
[eye02user]=admin
[eye02pass]=456
[eye03user]=loser
[eye03pass]=789
)
сценарий
. ~/cameras
URL="http://$1/reboot.cgi?loginuse=${CAM[${1}user]}&loginpas=${CAM[${1}pass]}"
[[ ${CAM[${1}user]} ]] && curl "$URL" || echo "Unknown camera $1"
0
Пожалуйста, не надо превращать скобками баш в лисп
+1
>… стала задача мониторинга, как он делает уроки…
Напомнило «Подзорную трубу» из «Денискиных рассказов» Драгунского. Фильм такой старый тоже есть. :-)
Напомнило «Подзорную трубу» из «Денискиных рассказов» Драгунского. Фильм такой старый тоже есть. :-)
0
Вотжежблин, и как же мы выросли и выучились, когда предки весь день на работе, а дома даже проводного телефона не было — не то что интернета и камер…
+2
Бабушки-дедушки были? Они все-таки немного контролировали. Плюс продленка.
Но тема не об этом. Хотелось бы без оффтопа.
Но тема не об этом. Хотелось бы без оффтопа.
-1
Жду статьи на храбре от данного ребенка, типа "Как обойти видео-мониторинг родителей и вместо уроков заниматься робототехникой"
0
Потому, что не было канала в бесконечный развлекательный мир. И от скуки можно было творить, выдумывать, пробовать. За всё что я знаю, спасибо скажу именно ей.
0
Есть ещё такая штука как ZoneMinder, она бесплатна, камерами можно рулить через веб-интерфейс, настаивать зоны, просматривать записи, вот это все.
Возможно вам будет интересно.
Возможно вам будет интересно.
-1
Народ, мне одному кажется что это какой то адище следить за ребёнком в камеру? Это может казаться ребёнку капец как унизительно. И он вырастет не самостоятельным, это в лучшем случае.
Это вопрос к тем кто в этом разбирается, а не предъява автору.
+2
Хотя автор просил не офтопить, но полагаю, это один из тех случаев, когда эффективное решение не лежит в технической плоскости. Даже взрослые положительно на надзор не реагируют (некоторые готовы смириться). Мне помогли наладить контакт и обучение книги Фабер и Мазлиш, в том числе «Как говорить с детьми, чтобы они учились». Всем родителям советую.
0
Пару лет назад реализовал в виде bash скрипта > 100 строк оболочку над ffmpeg для записи rtsp. В том числе с групповой и пользовательской политикой, e-mail сообщениями при чп и т.д. Могу расписать, если интересно.
0
Лучше писать небольшими кусочками минут по 5, как в авторегистраторах. Тогда шанс потерять что-то нужное стремится к минимуму.
0
Вы уже установили что камера зависает один раз в 10-12 часов, какой смысл это дополнительно проверять и ждать этого? Вдруг пронесет?) Просто сделайте плановую перезагрузку (крон) раз в 5-10 часов. Или просто в определенное время чтобы она «гарантированно» отработала 10-12 часов.
0
UFO just landed and posted this here
В современном мире люди отчаянно борются за право на неприкосновенность частной жизни и защиту от слежки, что не мешает им при этом устанавливать видеонаблюдение в собственном доме, приучая детей к жизни под объективом камеры.
А за простой и эффективный способ видеорегистрации без дополнительного ПО автору спасибо!
А за простой и эффективный способ видеорегистрации без дополнительного ПО автору спасибо!
0
Sign up to leave a comment.
Регистратор на Bash для камер с rtsp