У меня такой вопро:
Как можно подать сигнал на 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: Нет такого файла или каталога
или(пишит ошибка синтаксиса)
Напишите хоть какуюто програмку(не в ручную а готовую) которая может подать импульс на СОМ порт. ПОЖАЛУЙСТО!
>Напишите хоть какуюто програмку(не в ручную а готовую) которая может подать импульс
>на СОМ порт. ПОЖАЛУЙСТО!
под линуксом
echo abc > /dev/ttyS0Для винды кажись
echo abc > com1:
На первый взгляд скрипт вполне нормальный, есть только пару замечаний:> 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
а уже потом скрипт запускать
>я надеюсь у Вас не именно так написано? потому что должна быть
>одна цифра, например для
>com1 - /dev/ttyS0 и т.д.
а зря,было каткраз таки так :(а вот проблема с bash: ./dos2unix_s.sh: /bin/bash^M: bad interpreter: Нет такого файла или каталога осталася :(
Какой же я неблагодарный :(
Спасибо за совет!
Просто это моё пятое сообшние на форуме, но Вы первый человек который мне ответил...
>а вот проблема с bash: ./dos2unix_s.sh: /bin/bash^M: bad interpreter: Нет такого файла
>или каталога осталася :(Давайте еще раз:
1. Запускаете dos2unix ваш_скрипт
оно должно написать что-то типа
dos2unix: converting file ваш_скрипт to UNIX format ...
2. запускаете сконвертированный скрипт>Спасибо за совет!
>Просто это моё пятое сообшние на форуме, но Вы первый человек который мне ответил...Да не за что, кому-то я отвечаю, кто-то мне :)
Ой,а его ешшё и конвертирывать надо?
а немогли бы Вы мне помочь?
сразу на первый и на второй порт программу сконвертирывать...
Зарание благодарен...
>Ой,а его ешшё и конвертирывать надо?
>а немогли бы Вы мне помочь?
>сразу на первый и на второй порт программу сконвертирывать...Это не совсем конвертация, это просто замена в скрипте досовских переводов строк на юниховые, то же самое можно сделать и вручную, если зайти в этот скрипт например в mc для редактирования.
Что значит на второй порт? Самый простой путь - скопировать это скрипт и заменить в нем /dev/ttyS0 на /dev/ttyS1
> Это не совсем конвертация, это просто замена в скрипте досовских переводов
>строк на юниховые, то же самое можно сделать и вручную, если
>зайти в этот скрипт например в mc для редактирования.
> Что значит на второй порт? Самый простой путь - скопировать это
>скрипт и заменить в нем /dev/ttyS0 на /dev/ttyS1
Я просто подумал что там уже целыё запусковики...Я и захожу с МС...
Я понял , написал всё вручную на МС и практически то
но вот ошибки есть...
1.Он неразпознает команду fi
2.Он непонимает строчку while [1], вот что пишет:
"./Restart.sh: line 5: [1]: command not found"
Всем зарание спасибо
>1.Он неразпознает команду fiчто значит нераспознает?
вообще-то fi это окончание блока if, поэтому лучше на всякий случай в скрипте все, что между строками if и fi выделить отступами>2.Он непонимает строчку while [1], вот что пишет:
>"./Restart.sh: line 5: [1]: command not found"
и не должен, должно быть while [ 1 ] - то есть с пробеламивообще лучше сделать хотя-бы man bash, там все описано и есть примеры
Я знаю что я полный ноль в этом, но с Вашей помошью получлось!!! Гип Гип УРА!!!
Вот токо вопрос по Автозагрузке...
Моно ли както осушествить?
Как поставить автозагрузку?