help za naprava na shutdown script

20 отговора 492 прегледа
#1

help za naprava na shutdown script

Imam slednia problem:
Imam ups .
Ako spre toka komputyra ste se izklu4i avtomati4no sled 40 secundi
Oba4e samiat ups niama da se izklu4i
Za negovoto izklu4vane az zadejstwam druga programka - napravata na koeto oba4e izklu4wa sistemata napravo bez da napravi neobhodimite umnoun na diskovete i tn
Iskam da napravia takyv script 4e da izvyr6i vsi4ko neobhodimo i togava da se izpylni tazi programka za izklu4vaneto na ups-a.

Отговор
в отговор на GGG #2

Re: help za naprava na shutdown script

Абе то хубаво, ама като си демонтираш устройствата, откъде ще си заредиш програмката, която ти гаси ups-a?
Иначе можеш да пробваш с
shutdown -n

Отговор
в отговор на mdk #3

Re: help za naprava na shutdown script

Ami za tova pitam. V helpa na programata pishe samo 4e triabva da se uveria 4e niama da se demontira a ne kak da go napravia .
Halt i reboot ne dejstvat li na systia princip.

Отговор
в отговор на GGG #4

Re: help za naprava na shutdown script

40 секунди не са ли малко? Дори и най-кекавите UPS-и издържат поне 10 минути, а без монитор и повече.
Както и да е, това е без значение...

Намери скрипта, който се изпълнява при спиране на системата. В него, някъде след umount на дисковете и точно преди да се изпълни poweroff -
mount -n -о ro /dev/hd* (монтираш който дял ти трябва като read only), след което си викаш програмката за гасене на UPS-a и тя гаси тока. Когато е монтирана read-only FS няма да се повреди при спиране на тока.

С какво управляваш UPS-a...? Дистрибуция?

Отговор
в отговор на Дядo Meц #5

Re: help za naprava na shutdown script

Mersi za informaciata Diado Mec.
Polzvam Slackware 9 a za ups-a - nut-1.4.0. Probvah i edna druga - acpupsd ama tia ne stana.
Iskam da se zagasia sled 40 secundi ne zastoto ne moje da izdyrji a prosto stoto ne iskam posle da se zarejda bateriata.

Отговор
в отговор на GGG #6

Re: help za naprava na shutdown script

:) samo oste edin vypros
mount -n (-o ili -0) nesto mi e kuc 6rifta i ne moga da raz4eta :)

Отговор
в отговор на GGG #7

Re: help za naprava na shutdown script

>:) samo oste edin vypros
>mount -n (-o ili -0) nesto mi e kuc 6rifta i ne moga da raz4eta :)

Амиииии: man mount ? ;)

-o (от options), а не 0 (нула)

Колкото до nut, това IMHO е най-доброто за управление на UPS, колкото до Slack, явно не е добре интегриран в него. За сравнение в RH halt скрипта е заложено да гаси UPS управляван от nut.

А този пусти UPS какво, не ще да запали докато не му се заредят батериите, а?

Отговор
в отговор на Дядo Meц #8

Re: help za naprava na shutdown script

Хитро! Макар, че според мен, ако си с журнална файлова система няма нужда да демонтираш дяловете. Достатъчно е само да е затворят всички приложения и тогава да се извика програмката за сприране на UPS-a.

А по отношение издържливостта на UPS-a, вярно е че и най кекавите държат 10 минути, ама пък всички пищят много неприятно и е адска досада особено ако ти спре тока за половин-един час в 2-3 часа през нощта.

Отговор
в отговор на mdk #9

Re: help za naprava na shutdown script

Журналната файлова система е хубаво нещо, но ми се е случвало на EXT3 да се налага fschk след спиране на тока, тъй че по-добре да се размонтират дяловете.

Аааа има и такива дето не пищят. Имам един, който праща SMS-и като спре тока, щото не е SmartUPS и не се пали сам, та като дойде тока отново някой ходи да го щракне. Иначе без вкл. монитор държи по час и половина. Абе за малко пари - толкоз ;).

Отговор
в отговор на Дядo Meц #10

Re: help za naprava na shutdown script

Stana !
Moiat shutdown script e rc.6
Mnogo stranno zastoto ima comanda za mountvane na read-only napisana niakade tam. Programkata mi se izpylni to4no predi poweroff. Ne se naloji da slagam mouint -n -o v scripta.
Za ups-a prosto sym 4uval 4e ne e hubavo da mu se izhabiavat do krai bateriite.
Mersi otnovo za helpa :)

Отговор
в отговор на GGG #11

Re: help za naprava na shutdown script

Az systo polzvam journalna filova sistema. No kakvi oste sa predimstvata.
Az sym zabeliazal 4e fsck ne se izpylniava s neia i 4e ne e problem (goliam) da restnesh napravo ot kutiata.

Отговор
в отговор на GGG #12

Re: help za naprava na shutdown script

>Mnogo stranno zastoto ima comanda za mountvane na read-only napisana niakade >tam. Programkata mi se izpylni to4no predi poweroff. Ne se naloji da slagam mouint >-n -o v scripta.
Не е странно. Просто не всички дялове могат да се размонтират, защото в някои има отворени файлове (/, /usr, /tmp). Тогава просто се remount-ват read only. Пък и нали скрипта трябва да прочете poweroff от някъде.

>Za ups-a prosto sym 4uval 4e ne e hubavo da mu se izhabiavat do krai bateriite.
Много относително. Зависи от типа на батерията. В повечето случаи е вярно обратното - кофти е да НЕ се разрежда до край. NiMH батериите развиват къса памет ако не се разреждат до край. (Издържат само до там до където са били разредени преди презареждането). За тях е препоръчително да се правят пълни цикли на зареждане/разреждане, което за UPS е малко трудно изпълнимо, особено ако машината е сървър. Най-добре остави upsmon да следи батерията и чак, когато падне на критично ниво да прави shutdown. Това обаче, няма да те спаси от развиване на къса памет, но ще стане много по-бавно. Един подобен UPS за година и половина си намали endurance от 3600 на 1080 секунди. Грубо на 3-5 години се сменя батерия, според желязото.

Отговор
в отговор на GGG #13

Re: help za naprava na shutdown script

>Az systo polzvam journalna filova sistema. No kakvi oste sa predimstvata.
Това е тема за нов thread. Ако искаш, направи постинг. Сигурно ще има кой, какво да каже. И на мен би ми било интересно да чуя мнения на база опит.

Има много инфо из мрежата. Като за начало можеш да прочетеш:
[линк]
или
[линк]

CYALLAP

Отговор
в отговор на Дядo Meц #14

Re: help za naprava na shutdown script

Az taka i ne razbrah kak to4n oste raboti upsmon kogato zase4e 4e bateriata e critical low.
Zna4i POWERDOWNFLAG - dokolkoto razbiram e za shutdown na UPS . Pishe 4e etc/killpower
stial da se syzdade pri critical level no ne moga da razbera kak da si konfiguriram shutdowna za tezi nesta. Ne moga da vidia svesten primer
A SHUTDOWNCMD - ? to syste izglejda e za spirane na PC-to. E kak da gi konfiguriram tezi nesta - kak da testvam - triabva da 4akam critical level za da vidia 4e nesto ne e nared ?
Vijdam 4e ti si se zanimaval s tazi programka . Ste sym ti blagodaren ako drasnesh edin red za tova :)

Отговор
в отговор на Дядo Meц #15

Re: help za naprava na shutdown script

I oste edno vypros4e :)
Zna4i v upssched.conf si napravih slednoto
CMDSCRIPT /etc/rc.d/upsshut - tova e shutdown scripta koito si napravih da se ziklu4va UPS-a
AT ONBATT mustek@localhost START-TIMER onbattwarn 40
AT ONLINE mustek@localhost CANCEL-TIMER onbattwarn - tezi sa izno za kakvo sa
Imam slednia vypros kogato startiram upsshut sys sh upsshut se izpisvat nestata - kakto triabva da sa . A kogato spra upsa ot kontakta za da testvam sled 40 secundi izglejda napravo se izklu4va bez da izpisva nisto - dali tova e normalno ili ne se izpylniava kakto triabva ?

Отговор
в отговор на GGG #16

Re: help za naprava na shutdown script

Накратко: upsmon следи състоянието на UPS-a и при определено събитие изпълнява определени команди. Давам извадка от upsmon.conf с кратки коментари:

RUN_AS_USER nobody
# без коментар :)
MONITOR myups@localhost 1 password master
# Указваме кой UPS ще следим
MINSUPPLIES 1
# едно захранване, както е в твоя случай
SHUTDOWNCMD "/sbin/shutdown -h +0"
# командата за спиране на системата
NOTIFYCMD "/etc/ups/notify"
# скрипт, който да се изпълнява при уведомяване за настъпило събитие
POLLFREQ 30
# следим състоянието на UPS-a през 30 сек.
POLLFREQALERT 5
# когато сме на батерия следим състоянието през 5 сек.
DEADTIME 90
# ако нямаме отговор от UPS-a 90 сек. го считаме за "умрял"
POWERDOWNFLAG /etc/killpower
# това е само флаг и сам по себе си не прави нищо
NOTIFYMSG ONLINE "UPS %s is getting line power"
NOTIFYMSG ONBATT "Power Failure on %s; UPS is on battery"
NOTIFYMSG LOWBATT "UPS has a low battery (is critical)"
NOTIFYMSG COMMOK "Communications established with the UPS"
NOTIFYMSG COMMBAD "Communications lost to the UPS"
NOTIFYMSG SHUTDOWN "The system is being shutdown"
NOTIFYMSG REPLBATT "The UPS battery is bad and needs to be replaced"
NOTIFYMSG NOCOMM "A UPS is unavailable (can't be contacted for monitoring)"
# съобщенията за различните събития
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK SYSLOG
NOTIFYFLAG COMMBAD SYSLOG
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+WALL
NOTIFYFLAG NOCOMM SYSLOG
# как уведомяваме при всяко събитие:
# SYSLOG - запис в системния лог /var/log/messages
# WALL - извежда съобщението на всички конзоли
# EXEC - изпълнява скрипта, който си задал с NOTIFYCMD
# IGNORE - игнорира събитието
RBWARNTIME 43200
# на всеки 12 часа проверява живота на батерията и при необходимост
# извежда съобщение за необходима смяна
NOCOMMWARNTIME 300
# дава съобщение за грешка при комуникация, ако 5 мин няма данни от UPS-a.
FINALDELAY 5
# период от 5 сек. между подаване на съобщението за спиране на системата
# и действителното изпълнение на shutdown.

И така при спиране/идване на тока upsmon извежда съобщения, според указания начин. При критично ниво на батерията вдига флага /etc/killpower и изпълнява shutdown. Shutdown от своя страна изпълнява редица скриптове за спиране на системата, като последен е rc.6 или както беше при тебе. Тук идва тънкия момент с /etc/killpower. Както казах това е само флаг, т.е. трябва да проверим вдигнат ли е или не (има ли го този файл или го няма).
В rc.6 правиш нещо подобно:

if [ -f /etc/killpower ] ; then
/etc/rc.d/upsshut
fi
# демек ако съществува този файл - изпълни едикойси скрипт.

Ами това е.

Отговор
в отговор на GGG #17

Re: help za naprava na shutdown script

>Zna4i v upssched.conf si napravih slednoto
>CMDSCRIPT /etc/rc.d/upsshut - tova e shutdown scripta koito si napravih da se >ziklu4va UPS-a

Така, както си го задал за всеки START-TIMER който дефинираш ще се гаси UPS-a след като му изтече времето.
Ако искаш да гасиш UPS-a след определено време - това е начина.

Не разбрах кое се изписва както трябва като стартираш от шел и кое не се изписва
като се изпълнява от upsshed?

Отговор
в отговор на Дядo Meц #18

Re: help za naprava na shutdown script

Pyrvo mersi za infoto za upsmon. Takak e kakto si misleh :)
Za scripta:
Kogato go izprobvam ot consola sys - sh upsshut mi izpisva nestata koito pravi i sled tova izklu4va - tova sa nestata koito se izpisvat kato napisesh halt ili reboot .
Kogato izklu4a upsa - scripta izglejda se zarejda stoto izklu4va ups-a no ne mi izkarva nikakvi nadpisi zatova kakvo pravi predi tova (unmounting i tn) - i si mislia 4e nesto ne e nared.

Отговор
в отговор на GGG #19

Re: help za naprava na shutdown script

Я го дай да го видим тоя скрипт, че така само ще гадаем.
Най-вероятно не ти извежда нищо, защото се изпълнява от друг user и насочва изхода от командите към друга конзола или /dev/null.
Виж във /var/log/messages дали има записи за shutdown.

А всъщност най-добре ще е да кажеш на upsmon да прави shutdown и да си добавиш командата за изключване на UPS-a в shutdown скрипта.

Отговор
в отговор на Дядo Meц #20

Re: help za naprava na shutdown script

Tova e shutdown scripta:

PATH=/sbin:/etc:/bin:/usr/bin
if [ -x /etc/rc.d/rc.sysvinit ]; then
. /etc/rc.d/rc.sysvinit
fi
stty onlcr
if fgrep -l Cobalt-APIC /proc/interrupts 1> /dev/null 2> /dev/null ; then
echo "SGI Visual Workstation detected. Not running hwclock."
elif [ -x /sbin/hwclock ]; then
if grep "^UTC" /etc/hardwareclock 1> /dev/null 2> /dev/null ; then
echo "Saving system time to the hardware clock (UTC)."
/sbin/hwclock --utc --systohc
else
echo "Saving system time to the hardware clock (localtime)."
/sbin/hwclock --localtime --systohc
fi
fi
if [ -x /etc/rc.d/rc.httpd ]; then
/etc/rc.d/rc.httpd stop
fi
if [ -x /etc/rc.d/rc.samba ]; then
. /etc/rc.d/rc.samba stop
fi
if [ -x /etc/rc.d/rc.nfsd ]; then
/etc/rc.d/rc.nfsd stop
fi
echo "Unmounting remote filesystems."
umount -a -r -t nfs,smbfs
killall -15 dhcpcd 1> /dev/null 2> /dev/null
if [ -x /etc/rc.d/rc.pcmcia ] ; then
. /etc/rc.d/rc.pcmcia stop
sleep 5
fi
if [ -x /sbin/accton -a -r /var/log/pacct ]; then
echo "Turning off process accounting."
/sbin/accton
fi
if [ "$1" != "fast" ]; then # shutdown did not already kill all processes
killall5 -15
sleep 5
killall5 -9
fi
if fgrep quota /etc/fstab 1> /dev/null 2> /dev/null ; then
if [ -x /sbin/quotaoff ]; then
echo "Turning off filesystem quotas."
/sbin/quotaoff -a
fi
fi
if [ -d /var/lock/subsys ]; then
rm -f /var/lock/subsys/*
fi
swapoff -a
echo "Unmounting local file systems."
if [ ! "`mount | head -1 | cut -d ' ' -f 5`" = "umsdos" ]; then
umount -a -r -t nonfs
echo "Remounting root filesystem read-only."
mount -n -o remount,ro /
else
umount -a -r -t nonfs,noumsdos,nosmbfs
fi
sync
if [ -r /etc/lvmtab ]; then
/sbin/vgchange -an
fi
sleep 1
if [ -x /sbin/genpowerd ]; then
# See if this is a powerfail situation:
if grep FAIL /etc/upsstatus 1> /dev/null 2> /dev/null ; then
# Signal UPS to shut off the inverter:
/sbin/genpowerd -k /dev/ttyS4 tripp-nt
if [ ! $? = 0 ]; then
echo
echo "There was an error signaling the UPS."
echo "Perhaps you need to edit /etc/rc.d/rc.6 to configure"
echo "the serial line and UPS type."
# Wasting 15 seconds of precious power:
sleep 15
fi
fi
fi
/usr/local/ups/bin/upsdrvctl shutdown

Zna4i tova vsi4ko osven poslednia red e izkarano ot istinskia shutdown script. Az prosto iztrih niakoi nesta kato halt i reboot (nali te ne mi triabvat).

Отговор