VirtualIreland.ru - Виртуальная Ирландия
Вернуться   VirtualIreland.ru - Виртуальная Ирландия > Живем в Ирландии > IT и Связь

IT и Связь Обсуждение "айтишных" вопросов и средств связи

Ответ
 
Опции темы Опции просмотра
Старый 20.02.2017, 10:57   #1
Спам-робот
 
Аватар для localchap
 
Откуда: North East
Сообщений: 21,646
Благодарности: 12,204 в 6,893 сообщениях Поиск благодарностей localchap
По умолчанию Помогите с Bash скриптами

Такой субж, задание горит, надо написать скрипт предупреждающий о перегреве проца и выдача какого ворнинг, а пошел дальше и прикрутил отключение в случае перегрева.
Но от версии к версии линуха я так понимаю есть различии для синтаксиса и у меня на убунту 16.04 консоль ругается. И не показывает t2. Аттачу код может кто поможет:

#/bin/sh
threshold=30


## Get CPU Temperature using lm-sensor
t1=`sensors | awk '/temp1/ {print substr($2.2.2)}'`
t2=`sensors | awk '/temp2/ {print substr($2.2.2)}'`

echo "========= THE THRESHOLD IS:$threshold C=================="

if test ${t1} -gt $threshold || test ${t2} -gt $threshold
then
echo "CPU Temperature is exceeding threshold - Shutting down in 5 sec ...."
sleep 60
shutdown -h now
else
echo "CPU Temperature still on the safe range "
echo "Core1: $t1°C"
echo "Core2: $t2°C"
fi
###



а вот как ругается:

root@ubuntu:/home/ubuntu# ./testnight.sh
./testnight.sh: line 3: !#/bin/sh: No such file or directory
========= THE THRESHOLD IS:30 C==================
CPU Temperature is exceeding threshold - Shutting down in 5 sec ....


А при пороге нормальной температуры ругается вот так куда копать?

root@ubuntu:/home/ubuntu# ./testnight.sh


========= THE THRESHOLD IS SET TO:70 C==================


./testnight.sh: line 18: test: -gt: unary operator expected
CPU Temperature still on the safe range
Core1: 50°C
Core2: °C
__________________
"True failure, means mental failure..." Dorian Yates

Последний раз редактировалось localchap, 20.02.2017 в 11:21.
localchap вне форума   Ответить с цитированием

Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок
Старый 20.02.2017, 11:07   #2
Активный Участник
 
Сообщений: 467
Благодарности: 298 в 173 сообщениях Поиск благодарностей Vasis
По умолчанию Re: Помогите с Bash скриптами

#!/bin/bash
Vasis вне форума   Ответить с цитированием
Благодарность от:
localchap (20.02.2017)
Старый 20.02.2017, 11:17   #3
Спам-робот
 
Аватар для localchap
 
Откуда: North East
Сообщений: 21,646
Благодарности: 12,204 в 6,893 сообщениях Поиск благодарностей localchap
По умолчанию Re: Помогите с Bash скриптами

Vasis, ага спсб заметил, исправил. А почему не показывает тем второго ядра
__________________
"True failure, means mental failure..." Dorian Yates
localchap вне форума   Ответить с цитированием
Старый 20.02.2017, 11:43   #4
Заслуженный Участник
 
Аватар для Andrew79
 
Откуда: Moscow-Cork
Сообщений: 520
Благодарности: 496 в 262 сообщениях Поиск благодарностей Andrew79
По умолчанию Re: Помогите с Bash скриптами

Цитата:
Сообщение от localchap Посмотреть сообщение
Vasis, ага спсб заметил, исправил. А почему не показывает тем второго ядра
Потому что t2 не определен. Что там в выводе `sensors`, скорее всего "temp2" там нет.
Andrew79 вне форума   Ответить с цитированием
Благодарность от:
localchap (20.02.2017)
Старый 20.02.2017, 12:15   #5
Спам-робот
 
Аватар для localchap
 
Откуда: North East
Сообщений: 21,646
Благодарности: 12,204 в 6,893 сообщениях Поиск благодарностей localchap
По умолчанию Re: Помогите с Bash скриптами

Andrew79,
Как переделать?
__________________
"True failure, means mental failure..." Dorian Yates
localchap вне форума   Ответить с цитированием
Старый 20.02.2017, 12:50   #6
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: Помогите с Bash скриптами

Определить?
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием
Старый 20.02.2017, 13:05   #7
Спам-робот
 
Аватар для localchap
 
Откуда: North East
Сообщений: 21,646
Благодарности: 12,204 в 6,893 сообщениях Поиск благодарностей localchap
По умолчанию Re: Помогите с Bash скриптами

Цитата:
Сообщение от YellowMan Посмотреть сообщение
Определить?
Мне непонятен сам механизм в лм-сенсорс там два ядра Core 0 i Core 1 как прикрутить к ним t1 и t2
__________________
"True failure, means mental failure..." Dorian Yates
localchap вне форума   Ответить с цитированием
Старый 20.02.2017, 13:09   #8
Пенсионер всея Ирландея
 
Аватар для scorta
 
Откуда: Губерния
Сообщений: 5,141
Благодарности: 7,706 в 2,704 сообщениях Поиск благодарностей scorta
По умолчанию Re: Помогите с Bash скриптами

Можно запускать скрипт с опцией -x , отладочный режим для bash.
bash -x <script.sh>

или в первой строке добавить -x

#!/bin/bash -x

будет видно, как выполняется скрипт
scorta вне форума   Ответить с цитированием
Благодарность от:
localchap (20.02.2017)
Старый 20.02.2017, 13:33   #9
Спам-робот
 
Аватар для localchap
 
Откуда: North East
Сообщений: 21,646
Благодарности: 12,204 в 6,893 сообщениях Поиск благодарностей localchap
По умолчанию Re: Помогите с Bash скриптами

Ну это просмотр мало что дает без знания написания самих скриптов

localchap добавил 20.02.2017 в 14:49
Вот как ругается на данный код, эни айдиас?



__________________
"True failure, means mental failure..." Dorian Yates

Последний раз редактировалось localchap, 20.02.2017 в 13:52. Причина: Добавлено сообщение
localchap вне форума   Ответить с цитированием
Старый 20.02.2017, 16:04   #10
Пенсионер всея Ирландея
 
Аватар для scorta
 
Откуда: Губерния
Сообщений: 5,141
Благодарности: 7,706 в 2,704 сообщениях Поиск благодарностей scorta
По умолчанию Re: Помогите с Bash скриптами

Ну ошибки формальные я поправил
в substr нужны запятые, в if test - лишний, я написал скобки, впрочем, возможны варианты

А логические - от задачи зависит

#/bin/sh
threshold=30


## Get CPU Temperature using lm-sensor
t1=`sensors | awk '/temp1/ {print substr($2,2,2)}'`
t2=`sensors | awk '/temp2/ {print substr($2,2,2)}'`

echo "========= THE THRESHOLD IS:$threshold C=================="

if [ ${t1} -gt $threshold ] || [ ${t2} -gt $threshold ]
then
echo "CPU Temperature is exceeding threshold - Shutting down in 5 sec ...."
sleep 60
shutdown -h now
else
echo "CPU Temperature still on the safe range "
echo "Core1: $t1°C"
echo "Core2: $t2°C"
fi
###
scorta вне форума   Ответить с цитированием
Старый 20.02.2017, 16:10   #11
Заслуженный Участник
 
Аватар для ixania
 
Сообщений: 2,951
Благодарности: 1,004 в 534 сообщениях Поиск благодарностей ixania
По умолчанию Re: Помогите с Bash скриптами

Код:
#/bin/bash
threshold=30


## Get CPU Temperature using lm-sensor
t1=`sensors | awk '/temp1/ {print substr($2,2,2)}'`
t2=`sensors | awk '/temp2/ {print substr($2,2,2)}'`

echo "========= THE THRESHOLD IS:$threshold C=================="

if test ${t1} -gt $threshold || test ${t2} -gt $threshold
then
echo "CPU Temperature is exceeding threshold - Shutting down in 5 sec ...."
sleep 60
shutdown -h now
else
echo "CPU Temperature still on the safe range "
echo "Core1: $t1°C"
echo "Core2: $t2°C"
fi
###
__________________
Complaining Is Stupid. Either Act or Forget.
ixania вне форума   Ответить с цитированием
Благодарность от:
localchap (20.02.2017)
Старый 20.02.2017, 16:48   #12
Спам-робот
 
Аватар для localchap
 
Откуда: North East
Сообщений: 21,646
Благодарности: 12,204 в 6,893 сообщениях Поиск благодарностей localchap
По умолчанию Re: Помогите с Bash скриптами

Цитата:
Сообщение от ixania Посмотреть сообщение
Код:
#/bin/bash
threshold=30


## Get CPU Temperature using lm-sensor
t1=`sensors | awk '/temp1/ {print substr()}'`
t2=`sensors | awk '/temp2/ {print substr()}'`

echo "========= THE THRESHOLD IS:$threshold C=================="

if test ${t1} -gt $threshold || test ${t2} -gt $threshold
then
echo "CPU Temperature is exceeding threshold - Shutting down in 5 sec ...."
sleep 60
shutdown -h now
else
echo "CPU Temperature still on the safe range "
echo "Core1: $t1°C"
echo "Core2: $t2°C"
fi
###
Cпасибо большое, но все равно ругается если порог поставить выше текущей температуры. И темп ядра 2 не отражает (((



Кручу на Убунту 16.04, поставил в дуалбут на физ машину. Вот эта разница синтаксиса в линухе от версии к версии бесит нереально.

localchap добавил 20.02.2017 в 18:11
Склеил рабоче крестьянский код из кусочков в инете ))) Так как в том полный ноль, ни одной лекции по башу не было, но вроде работает, правда не отображает тем ядер, но вставил запуск сенсоров отображается там )))
#!/bin/sh
#
Цитата:
## defining variable <detected temperature>
t=$(sensors | awk '/temp1/{print $2}')
### set up the threshold
echo""
max=60
echo""
echo "$(date)"
echo""
echo "************************************************* "
echo " MAXIMUM THRESHOLD SET TO: "$max" DEGREE CELCIUS"
echo "************************************************* "
###starts lm-sensors app to detect current temp
sensors
###if-statement compares temperature reading and threshold
if [[ "$t" > "$max" ]]
### if its higher will run shut down task
then
echo ""
echo""
echo "================================================= ====================================="
echo "CPU Temperature exceeds the threshold "$max" degree Celcius : Shutdown in 15sec"
echo "================================================= ====================================="
echo""
echo ""
echo ""
sleep 10
shutdown -h now
### if not, comes up banner that all fine
else
echo""
echo""
echo""
echo "================================================= ==============="
echo "CPU Temperature still on the safe range, sit back and relax! "
echo "================================================= ==============="
fi
####### end of programm
echo ""
echo ""






Отцы, может кто наскоряк напишет пару строк, добавить 20 юзеров из текст файла, баш скрипт? После завтра сдавать, а еще куча всего, неуспеваю сидеть гуглить, заранее спасибо всем.
__________________
"True failure, means mental failure..." Dorian Yates

Последний раз редактировалось localchap, 20.02.2017 в 17:14. Причина: Добавлено сообщение
localchap вне форума   Ответить с цитированием
Старый 20.02.2017, 17:15   #13
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: Помогите с Bash скриптами

Ну нету у тебя второго ядра, не мучайся
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием
Благодарность от:
localchap (20.02.2017)

Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок
Старый 20.02.2017, 17:59   #14
Спам-робот
 
Аватар для localchap
 
Откуда: North East
Сообщений: 21,646
Благодарности: 12,204 в 6,893 сообщениях Поиск благодарностей localchap
По умолчанию Re: Помогите с Bash скриптами

Цитата:
Сообщение от YellowMan Посмотреть сообщение
Ну нету у тебя второго ядра, не мучайся
Есть!!!))) Как то неспортивно))) я типа придумал как заставить снимать темпу поядерно,но не знаю как прикрутить сравнение с пороговым значением,вечером попробую
__________________
"True failure, means mental failure..." Dorian Yates
localchap вне форума   Ответить с цитированием
Ответ



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать на сообщения
Вы не можете добавлять вложения
Вы не можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщ.
from bash.org.ru redleprechaun Само приползло 3 06.10.2009 16:26
pipe in bash AlexM IT и Связь 20 08.04.2009 03:47
bash history AlexM IT и Связь 14 27.11.2006 18:56
bash.org Mikhael Само приползло 2 02.04.2006 22:35


Часовой пояс GMT, времени сейчас: 11:12.


vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd., Русификация: zCarot, Vovan & Co
©2003-2025 VirtualIreland.ru - Виртуальная Ирландия