А есть вопрос... ( у меня нет node.js но слышал, что он позволяет записывать файлы из web страницы и даже выполнять некоторые вызовы... ну как PHP) Может я и не прав... но если так, то каждый JS на странице, которая открыта браузером, и без головы может делать всё без Вашего участия. Был бы настроен браузер. Майнеры работают без вашего участия. Повторюсь: про возможности ныне модного node.js я не ведаю и всё, что я сказал могут быть предрассудками.
Есть такая практика, как установка сторонних программ в каталог '/opt'. Администратор системы самостоятельно следит за содержимым этого каталога. Но самый лучший вариант это создание пакета, который будет штатно установлен в систему, если система поддерживает такую функциональность. Например, Raspbian основан на Debian, поэтому поддерживает deb-пакеты. Затем, что sudo позволяет более гибко контролировать кому что можно делать. Поэтому это довольно распространённый инструмент в Linux системах.
Не все так плохо. sudo совсем не то же самое, что работа под рутом. По умолчанию sudo обычным юзерам запрещено, оно доступно только для тех, кто внесен в файл /etc/sudoers. В этом же файле можно настроить для каждого конкретного юзера свои разрешения. В общем, man sudo
Повторяю: ...я могу быть не прав. Про майнеров - скрипт посетитель сайта сам не запускал... а выполнялось браузером (HTML+JS)
В принципе верно... я выполнил: sudo passwd от имени Rpi после первого запуска образа. Изменил пароль. Потом от имени root создал пользователя (себя). И далее стал заходить от своего имени... а про Rpi забыл. И sudo для себя не настраивал... да и не надо это мне.
http://qaru.site/questions/47917/nodejs-execute-system-command-synchronously https://habr.com/post/136185/ http://qaru.site/questions/107364/how-to-execute-shell-command-in-javascript http://qaru.site/questions/31598/how-can-i-share-code-between-nodejs-and-the-browser Если на малине браузер запускать... ну как удалённое приложение. https://ru.stackoverflow.com/questi...-файлов-на-стороне-клиента-без-участия-сервра Понимаю, что это не тема. Но развейте сомнения. Спасибо.
Привет Гуру, Имеется дополнительный вопрос, как можно сданным скриптом отправлять комманды на разнэ устройства. Или так возможно как пример: Код (Bash): #!/bin/bash p1=$1 ((Connect = 0)) #параметр - интервал проверки (секунд) psleep="1" #параметр - команда/URL для удачного пинга cmdconnect="http://192.168.0.234" cmdconnect="http://192.168.0.235" cmdconnect="http://192.168.0.236" ((flagconnect = 0)) #параметр - команда/URL для неудачного пинга cmddisconnect="http://192.168.0.246" cmddisconnect="http://192.168.0.247" cmddisconnect="http://192.168.0.248" ((flagdisconnect = 0)) if [ "$p1" == "" ] ; then echo "IP addr:" read ipurl else ipurl=$p1 fi # Контроль связи function _dev_ping() { ping -c 1 $ipurl 2>&1>/dev/null ret=$? if [ ${ret} -eq 0 ] ; then echo "connect" ((Connect = 1)) else echo "no connect" ((Connect = 0)) fi } #рабочий цикл проверки и разового вызова ((loop = 1)) while( ((loop > 0)) ); do _dev_ping if( ((Connect == 1)) ); then if ( ((flagconnect < 1)) ); then wget $cmdconnect -O- ((flagconnect = 1)) ((flagdisconnect = 0)) fi else if( ((flagdisconnect < 1)) ); then wget $cmddisconnect -O- ((flagdisconnect = 1)) ((flagconnect = 0)) fi fi sleep $psleep done
Обьявить cmdconnect и cmddisconnect массивами, а далее блок проверки обернуть в цикл. Домашнее задание: прочитать по массивы и циклы в баше
Спасибо за домашнее задание, обязательно изучу. Скажите еще пожалуйста, возможно ли с малинкой вместо перехода по ссылке активировать цифровой выход и после восстановления пинг его деактивировать? Большое спасибо.
Да, можно. не знаю можно ли с консоли, поднять ногжку гпио, но можно написать скрипт на питоне и дёрнуть сразу же после wget
Погуглил, можно и без питона 1) установить библиотеку wiringPi Код (Bash): cd git clone git://git.drogon.net/wiringPi cd wiringPi ./build Затем устанавливаем гпио 0 в режим вывода и поднимаем в единицу Код (Bash): gpio mode 0 out gpio write 0 1
Вот тут лежит соответствие номеров ножек и самих ног на плате: http://wiringpi.com/pins/ В данном случае нас интересует колонка wiringPi И команда gpio write <номер ноги> <значение>
Привет гуру, Все ли я верно сделал? Код (Bash): #!/bin/bash p1=$1 ((Connect = 0)) #параметр - интервал проверки (секунд) psleep="1" #параметр - команда/URL для удачного пинга cmdconnect="gpio write 25 0" ((flagconnect = 0)) #параметр - команда/URL для неудачного пинга cmddisconnect="gpio write 25 1" ((flagdisconnect = 0)) if [ "$p1" == "" ] ; then echo "IP addr:" read ipurl else ipurl=$p1 fi # Контроль связи function _dev_ping() { ping -c 1 $ipurl 2>&1>/dev/null ret=$? if [ ${ret} -eq 0 ] ; then echo "connect" ((Connect = 1)) else echo "no connect" ((Connect = 0)) fi } #рабочий цикл проверки и разового вызова ((loop = 1)) while( ((loop > 0)) ); do _dev_ping if( ((Connect == 1)) ); then if ( ((flagconnect < 1)) ); then wget $cmdconnect -O- ((flagconnect = 1)) ((flagdisconnect = 0)) fi else if( ((flagdisconnect < 1)) ); then wget $cmddisconnect -O- ((flagdisconnect = 1)) ((flagconnect = 0)) fi fi sleep $psleep done
А что означает: wget $cmddisconnect -O-? ...это вывзов-чтение html страницы по какому то адресу web сервера. А если это надо для управления GPIO, то реализуйте эту команду вместо чтения страницы... вместо этого: wget $cmddisconnect -O-
Примерно так: Код (Bash): #рабочий цикл проверки и разового вызова ((loop = 1)) while( ((loop > 0)) ); do _dev_ping if( ((Connect == 1)) ); then if ( ((flagconnect < 1)) ); then #wget $cmdconnect -O- gpio write 25 0 ((flagconnect = 1)) ((flagdisconnect = 0)) fi else if( ((flagdisconnect < 1)) ); then #wget $cmddisconnect -O- gpio write 25 1 ((flagdisconnect = 1)) ((flagconnect = 0)) fi fi sleep $psleep done Насколько понял это либо индикатор... или щёлкать релюшкой...