Привет. Как пинговать на малине устройСТВО? (НОУТБУК)

Тема в разделе "Raspberry Pi", создана пользователем Kons, 10 июн 2017.

  1. Kons

    Kons Нуб

    Привет. Как пинговать на малине устройСТВО? (НОУТБУК)

    ПРЕДПОЛОЖИМ у нас малина пи ( rasberry pi) постоянная включена и напрямую с интернет - центром ( зуксель маршрутизатор и т.д.)

    также малина имеет связь ( по USB или wi-fi ) с ноутбуком.....

    Вопрос - как пинговать нотубук с малины? ( на малине система «Raspbian» )
     
  2. rkit

    rkit Гуру

    Вы знаете, что такое пинговать, но не знаете. как это делается? Это как вообще возможно? Программа ping для этого существует.
     
  3. Kons

    Kons Нуб

    вопрос то и состоит как пинговать с малины а не с ноута.


    и еще вопрос ... если пинговать удалось как сделать это процесс непрерывным , а если он прерывается, то чтоб млаина делала каке то дейтсвие по этому поводу.
     
  4. mcureenab

    mcureenab Гуру

    Пинговать командой ping.

    Непрерывно - выполнять ping в цикле.
    Чтобы действия - проверять результат ping и в зависимости от него выполнять действия.
     
  5. Igor68

    Igor68 Гуру

    Доброго времени суток... сразу прошу прощения, но в Linux всё просто:
    Код (Bash):

    # Контроль связи с UNO-1019
    function _uno_ping()
    {
      pd=$(ping -c 1 $unoipurl)
      ppd=$(echo $pd | grep "errors" | awk '{print length}')
      if( ((ppd > 1)) )
      then
      echo "UNO-1019 no connect"
      echo "disconnected" > $uno_ping
      ((UnoConnect = 0))
      else
      echo "UNO-1019 connect"
      echo "connected" > $uno_ping
      ((UnoConnect = 1))
      fi
      sleep 5
    }
     
    конечно это только пример функции, где unoipurl IP вашего устройства,
    а UnoConnect скажем так... результат пинга - глобальгая переменная для скрипта. Криво конечно, но давно работает.
    Скрипт (BASH) имеет в теле цикл и запускается с ключём &
    В моём случае он (скрипт) контролирует связь с контроллеро и по необходимости по TELNET производит его перезапуск, по FTP заливает в него файлы и снова по TELNET производит их запуск... ну и т.п.

    Так рестарт по TELNET... опять же эта функция вызывается из основного рабочего цикла.
    Код (Bash):

    #рестарт устройства UNO-1019
    function reboot_uno()
    {
      (
      sleep 1
      echo $unologin
      sleep 1
      echo $unopassword
      sleep 1
      echo "reboot"
      echo "exit"
      ) | telnet $unoipurl
    }
     
    Вот так скрипт по FTP копирует файлы в устройство
    Код (Bash):

    #копирование файлов в UNO
    function _to_uno()
    {
    cd $to_uno
    #
    ftp -n $unoipurl << INPUT_END
    quote USER $unologin
    quote PASS $unopassword
    cd tst
    binary
    prompt
    mput *.*
    quit
    INPUT_END
    #
    cd $pmainunoipport
    }
     
    Зачем??? Ваша малина может настроить... ну к примеру роутер... или другое устройство. Ну разумеется если Вам это интересно.
     
    Последнее редактирование: 13 июн 2017
    arkadyf нравится это.
  6. Jeid

    Jeid Нерд

    Скрипт пингования как-то так будет выглядеть
    Код (Bash):
    #!/bin/sh

    HOST=8.8.8.8
    ping -c 1 -W 10 $HOST > /dev/null
    if [$? -eq 0 ]; then
        echo "Ping ok"
        exit
    else
        echo "No ping"
        exit
    fi
     
    Igor68 нравится это.
  7. Igor68

    Igor68 Гуру

    Ешё случается что питание "прыгнуло" и прошёл перезапуск... так сказать не санкционированный. Потому и "перетаскиваю" файлы из директории в устройстве на Flash в директорию Ram.
    Код (Bash):

    #копирование файлов для работы в Temp UNO-1019
    function work_copy()
    {
      (
      sleep 1
      echo $unologin
      sleep 1
      echo $unopassword
      sleep 1
      echo "copy Flash/tst/*.* Temp"
      sleep 1
      echo "exit"
      ) | telnet $unoipurl
    }

     
    После перезапуска директория /Temp устройства чиста. И наш управляющий (пусть будет Малина... но в моём случае PC с Debian) по FTP контролирует содержимое /Temp и по TELNET копирует из директории в директорию и производит запуск исполняемого файла. Правда на упомянутом устройстве стоит Windows CE но все равно терпимо (хоть он и капризен).
    Таким образом одна малина может запустить комплекс пакетов на других устройствах. Вот только опыта делать того же, что и по TELNET, но только по SSH не имею. Был бы признателен за наводочку.
    Спасибо!

    Кстати вот добрые люди поделились организацией RAM диска... своего RAM диска!
    Код (Bash):

    #!/bin/bash
    # ramdisk.sh

    #  "электронный диск" -- это область в ОЗУ компьютера
    #+ с которой система взаимодействует как с файловой системой.
    #  Основное преимущество -- очень высокая скорость чтения/записи.
    #  Недостатки -- энергозависимость, уменьшение объема ОЗУ, доступного системе,
    #  относительно небольшой размер.
    #
    #  Чем хорош электронный диск?
    #  При хранении наборов данных, таких как таблиц баз данных или словарей, на электронном диске
    #+ вы получаете высокую скорость работы с этими наборами, поскольку время доступа к ОЗУ
    #  неизмеримо меньше времени доступа к жесткому диску.


    E_NON_ROOT_USER=70  # Сценарий должен запускаться с правами root.
    ROOTUSER_NAME=root

    MOUNTPT=/mnt/defdisk
    SIZE=2000  # 2K блоков (измените, если это необходимо)
    BLOCKSIZE=1024  # размер блока -- 1K (1024 байт)
    DEVICE=/dev/ram1  # Первое устройство ram

    username=`id -nu`
    if [ "$username" != "$ROOTUSER_NAME" ]
    then
      echo "Сценарий должен запускаться с правами root."
      exit $E_NON_ROOT_USER
    fi

    if [ ! -d "$MOUNTPT" ]  #  Проверка наличия точки монтирования,
    then  #+ благодаря этой проверке, при повторных запусках сценария
      mkdir $MOUNTPT  #+ ошибки возникать не будет.
    fi
    dd if=/dev/zero of=$DEVICE count=$SIZE bs=$BLOCKSIZE  # Очистить электронный диск.
    echo "mkefs..."
    mke2fs -l $DEVICE  # Создать файловую систему ext2.
    #
    echo "mount..."
    mount -o loop $DEVICE $MOUNTPT  # Смонтировать.
    chmod 777 $MOUNTPT  # Сделать электронный диск доступным для обычных пользователей.
      # Но при этом, только root сможет его отмонтировать.

    echo "Электронный диск \"$MOUNTPT\" готов к работе."
    # Теперь электронный диск доступен для любого пользователя в системе.

    #  Внимание! Электронный диск -- это энергозависимое устройство! Все данные, хранящиеся на нем,
    #+ будут утеряны при остановке или перезагрузке системы.
    #  Если эти данные представляют для вас интерес, то сохраняйте их копии в обычном каталоге.

    # После перезагрузки, чтобы вновь создать электронный диск, запустите этот сценарий.
    # Простое монтирование /mnt/ramdisk, без выполнения подготовительных действий, не будет работать.

    exit 0
     
     
    arkadyf нравится это.
  8. Vitalij

    Vitalij Нерд

    Привет, я новихек в малинке.
    Но мне нужно хтобы малина пингавала сервер и когда пинга нету требуется так сказать пройти по ссылке, там имеется команда чтобы перегрузить роутер, как это реализовать помогите. Заранее спасибо.
     
  9. Igor68

    Igor68 Гуру

    А если он не пингуется как в него роутер войти по сети? Или надо что бы кто-то питание передёргнул?
    Может по другим признакам?