Pull to refresh

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
Как не делают?
Это же простая проверка на правильность вписания аргумента. Если он будет отличный от eye01, eye02, eye03, то получим сообщение, что такая камера неизвестна.
аа, тогда просто вот так было бы лучше:
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, пытаясь увидеть в чем разница =)
Да, действительно, так лучше. Но я все никак не могу привыкнуть так писать код.
Спасибо за предложение. Изменю в репозитории.
Хотя это подойдет, только если пароль будет одинаков.
Если пароль разный, тогда еще проще
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"
Круто. Как-то мне в голову даже не пришло. Спасибо!
Еще можно использовать именованный массив как вариант.
код
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"

Рефакторинг)
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"

Весь прикол внешнего файлика в том, что не нужно лезть в скрипт (а значит сам скрипт можно например взять и кинуть на тостер, чтобы кто-то помог доработать ошибку).
А в случае массива с паролями в самом скрипте — проблемы =)
У каждого варианта свои плюсы и минусы. Массив с логинами\паролями тоже можно вынести в отдельный файл
~/cameras
declare -A CAM=(
  [eye01user]=user
  [eye01pass]=123

  [eye02user]=admin
  [eye02pass]=456

  [eye03user]=loser
  [eye03pass]=789
)

и добавлять их в сценарий source'ом
сценарий
. ~/cameras

URL="http://$1/reboot.cgi?loginuse=${CAM[${1}user]}&loginpas=${CAM[${1}pass]}"
[[ ${CAM[${1}user]} ]] && curl "$URL" || echo "Unknown camera $1"


Дурной вкус. Сравните свой же код (код vs Рефакторинг) с подсветкой синтаксиса от хабра. Потеряетесь в скобках или нет? А если подсветку выключить? А теперь вернемся к коду через пару недель, а лучше месяцев…
Потерялся в трёх скобках)
>… стала задача мониторинга, как он делает уроки…
Напомнило «Подзорную трубу» из «Денискиных рассказов» Драгунского. Фильм такой старый тоже есть. :-)
Вотжежблин, и как же мы выросли и выучились, когда предки весь день на работе, а дома даже проводного телефона не было — не то что интернета и камер…
Бабушки-дедушки были? Они все-таки немного контролировали. Плюс продленка.
Но тема не об этом. Хотелось бы без оффтопа.
(Отвечаю на вопрос, а не офтоп-тред продолжаю): Когда я пошел в школу у меня оставалась в живых одна бабушка, жила она на расстоянии примерно 2500 км. На продленку не было спроса — и ее не было в нашей школе.
UFO just landed and posted this here

Жду статьи на храбре от данного ребенка, типа "Как обойти видео-мониторинг родителей и вместо уроков заниматься робототехникой"

Я только за. Если оторвется от ютуба и телефона.
Это легко сделать — отнять телефон и компьютер.

Записать в библиотеку.

И всё.

Пусть читает книги.
UFO just landed and posted this here
Он явно пытался, камера зависала не спроста.

Потому, что не было канала в бесконечный развлекательный мир. И от скуки можно было творить, выдумывать, пробовать. За всё что я знаю, спасибо скажу именно ей.

Это вы зря телек тогда показывал довольно много интересного и познавательного. В дневное время крутили именно документальное и научно-популярное.

Но не было возможности залипнуть в познавательное на 4-5 часов в сутки. И было оно по расписанию, а не когда нечем заняться.

Есть ещё такая штука как ZoneMinder, она бесплатна, камерами можно рулить через веб-интерфейс, настаивать зоны, просматривать записи, вот это все.
Возможно вам будет интересно.
а вы пробовали читать статью?

Народ, мне одному кажется что это какой то адище следить за ребёнком в камеру? Это может казаться ребёнку капец как унизительно. И он вырастет не самостоятельным, это в лучшем случае.
Это вопрос к тем кто в этом разбирается, а не предъява автору.

Хотя автор просил не офтопить, но полагаю, это один из тех случаев, когда эффективное решение не лежит в технической плоскости. Даже взрослые положительно на надзор не реагируют (некоторые готовы смириться). Мне помогли наладить контакт и обучение книги Фабер и Мазлиш, в том числе «Как говорить с детьми, чтобы они учились». Всем родителям советую.

Пару лет назад реализовал в виде bash скрипта > 100 строк оболочку над ffmpeg для записи rtsp. В том числе с групповой и пользовательской политикой, e-mail сообщениями при чп и т.д. Могу расписать, если интересно.

Конечно интересно. Буду ждать Вашей публикации.
Лучше писать небольшими кусочками минут по 5, как в авторегистраторах. Тогда шанс потерять что-то нужное стремится к минимуму.
Вы уже установили что камера зависает один раз в 10-12 часов, какой смысл это дополнительно проверять и ждать этого? Вдруг пронесет?) Просто сделайте плановую перезагрузку (крон) раз в 5-10 часов. Или просто в определенное время чтобы она «гарантированно» отработала 10-12 часов.
UFO just landed and posted this here
В современном мире люди отчаянно борются за право на неприкосновенность частной жизни и защиту от слежки, что не мешает им при этом устанавливать видеонаблюдение в собственном доме, приучая детей к жизни под объективом камеры.
А за простой и эффективный способ видеорегистрации без дополнительного ПО автору спасибо!
Sign up to leave a comment.

Articles