URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 13643
[ Назад ]

Исходное сообщение
"Настройка"

Отправлено xKaMa3x , 25-Май-07 15:52 
У меня такой вопро:
Как можно подать сигнал на COM порт?

Причина любопытцтва:
У меня стоят два сервера рядом, но жаль что не у меня дома :( .
Нужно зделать следуюшие:
-При отключении сервера ,задействывать автаматическую перезагрузку(устройства стоят на двух компютерах и подсоеденены через СОМ порт)

У вас на форуме нашёл такой скрипт:
#!/bin/bash
while [ 1 ]
    do
    echo ""
    echo "--------------------------------------------------------"
    echo "start test. ping server..."
    ping -i4 -c5 -Q -W30 IP &>/dev/null
    rez=$?
    if [ $rez != 0 ]; then
        echo "modem status = error"
    echo "down pptp interface"
    ifdown pptp0
    sleep 2
    echo "restart modem..."
    dd if=/dev/zero of=/dev/ttyS{0,1,2,3...} bs=1 count=10240
    echo "wait 20 sec before up pptp..."
    sleep 20
    echo "up pptp interface..."
    ifup pptp0
    else echo "modem status = ok"
    fi
    echo "wait 600 sec before next test..."
    sleep 600
done

Но напостой мне выбивает ошибку.
То bash: ./s.sh: /bin/bash^M: bad interpreter: Нет такого файла или каталога
или(пишит ошибка  синтаксиса)


Содержание

Сообщения в этом обсуждении
"Настройка"
Отправлено xKaMa3x , 25-Май-07 17:58 
Напишите хоть какуюто програмку(не в ручную а готовую) которая может подать импульс на СОМ порт. ПОЖАЛУЙСТО!

"Настройка"
Отправлено fantom , 29-Май-07 09:33 
>Напишите хоть какуюто програмку(не в ручную а готовую) которая может подать импульс
>на СОМ порт. ПОЖАЛУЙСТО!


под линуксом
echo abc > /dev/ttyS0

Для винды кажись
echo abc > com1:


"Настройка"
Отправлено walery , 25-Май-07 20:56 
На первый взгляд скрипт вполне нормальный, есть только пару замечаний:

>    dd if=/dev/zero of=/dev/ttyS{0,1,2,3...} bs=1 count=10240

я надеюсь у Вас не именно так написано? потому что должна быть одна цифра, например для
com1 - /dev/ttyS0 и т.д.

>
>Но напостой мне выбивает ошибку.
>То bash: ./s.sh: /bin/bash^M: bad interpreter: Нет такого файла или каталога
>или(пишит ошибка  синтаксиса)

судя по всему окончания строк досовские, вместо юниховых, нужно их убрать, например:
dos2unix s.sh
а уже потом скрипт запускать



"Настройка"
Отправлено KaMa3 , 26-Май-07 00:47 
>я надеюсь у Вас не именно так написано? потому что должна быть
>одна цифра, например для
>com1 - /dev/ttyS0 и т.д.
а зря,было каткраз таки так :(

а вот проблема с bash: ./dos2unix_s.sh: /bin/bash^M: bad interpreter: Нет такого файла или каталога осталася :(


"Настройка"
Отправлено KaMa3 , 26-Май-07 00:48 
Какой же я неблагодарный :(
Спасибо за совет!
Просто это моё пятое сообшние на форуме, но Вы первый человек который мне ответил...

"Настройка"
Отправлено Walery , 26-Май-07 01:39 
>а вот проблема с bash: ./dos2unix_s.sh: /bin/bash^M: bad interpreter: Нет такого файла
>или каталога осталася :(

Давайте еще раз:
1. Запускаете dos2unix ваш_скрипт
оно должно написать что-то типа
dos2unix: converting file ваш_скрипт to UNIX format ...
2. запускаете сконвертированный скрипт

>Спасибо за совет!
>Просто это моё пятое сообшние на форуме, но Вы первый человек который мне ответил...

Да не за что, кому-то я отвечаю, кто-то мне :)


"Настройка"
Отправлено KaMa3 , 26-Май-07 02:39 
Ой,а его ешшё и конвертирывать надо?
а немогли бы Вы мне помочь?
сразу на первый и на второй порт программу сконвертирывать...
Зарание благодарен...

"Настройка"
Отправлено Walery , 26-Май-07 11:44 
>Ой,а его ешшё и конвертирывать надо?
>а немогли бы Вы мне помочь?
>сразу на первый и на второй порт программу сконвертирывать...

Это не совсем конвертация, это просто замена в скрипте досовских переводов строк на юниховые, то же самое можно сделать и вручную, если зайти в этот скрипт например в mc для редактирования.
Что значит на второй порт? Самый простой путь - скопировать это скрипт и заменить в нем /dev/ttyS0 на /dev/ttyS1


"Настройка"
Отправлено KaMa3 , 26-Май-07 12:12 
> Это не совсем конвертация, это просто замена в скрипте досовских переводов
>строк на юниховые, то же самое можно сделать и вручную, если
>зайти в этот скрипт например в mc для редактирования.
> Что значит на второй порт? Самый простой путь - скопировать это
>скрипт и заменить в нем /dev/ttyS0 на /dev/ttyS1


Я просто подумал что там уже целыё запусковики...

Я и захожу с МС...


"Настройка"
Отправлено KaMa3 , 26-Май-07 12:43 
Я понял , написал всё вручную на МС и практически то
но вот ошибки есть...
1.Он неразпознает команду fi
2.Он непонимает строчку while [1], вот что пишет:
"./Restart.sh: line 5: [1]: command not found"
Всем зарание спасибо



"Настройка"
Отправлено Walery , 26-Май-07 18:18 
>1.Он неразпознает команду fi

что значит нераспознает?
вообще-то fi это окончание блока if, поэтому лучше на всякий случай в скрипте все, что между строками if и fi выделить отступами

>2.Он непонимает строчку while [1], вот что пишет:
>"./Restart.sh: line 5: [1]: command not found"

и не должен, должно быть while [ 1 ] - то есть с пробелами

вообще лучше сделать хотя-бы man bash, там все описано и есть примеры


"Настройка"
Отправлено xKaMa3x , 27-Май-07 00:34 
Я знаю что я полный ноль в этом, но с Вашей помошью получлось!!! Гип Гип УРА!!!
Вот токо вопрос по Автозагрузке...
Моно ли както осушествить?

"Настройка"
Отправлено xKaMa3x , 01-Июн-07 15:31 
Как поставить автозагрузку?