Få notifiering på telefon när program slutar fungera

Permalänk
99:e percentilen

Få notifiering på telefon när program slutar fungera

Bakgrund:

Jag kör cgminer, men den kraschar flera gånger per dag. Jag vill då så snart som möjligt veta detta och funderar på en metod: Under My Account @ Slush's Pool kan man se hur lång tid det var sedan man senast lämnade in en share. Jag tänker mig då ett TamperMonkey-skript som laddar om sidan till exempel var femte minut och, om det då står någonting annat än "0 minutes" i rutan "Last share at" (så här långt klarar jag mig själv) ska den notifiera mig.

Problemet:

Som vi vet kan man inte skicka mail, sms eller dylikt med JavaScript. Därför behövs det en annan lösning. Jag har än så länge övervägt följande media:
- mail
- sms
- Facebook-meddelande

Men vad som helst som kan poppa upp som en notifiering på min mobil (Galaxy S II) eller surfplatta (iPad 4) funkar.

Det är centralt att det blir en notifiering, för poängen är att jag ska få veta det direkt och automatiskt – jag ska inte manuellt behöva gå in på nämnda sida och kolla, som jag gör idag.

Ett sätt som jag kan tänka mig vore om det fanns en sida som man kunde anropa så här:

Det spelar ingen roll vilken adress mailet kommer ifrån, så vilken sajt som helst som tillhandahåller ett sådant API skulle funka. Men några sådana verkar inte finnas, vilket förmodligen beror på att de skulle missbrukas.

Ett annat sätt vore om man på något sätt (typ med AJAX) kunde skicka ett mail från sitt eget Hotmail- eller Gmail-konto, eller ett meddelande från sitt Facebook-konto. Eller skulle man kunna få Outlook 2007 att skicka ett mail automatiskt?

Sammanfattning:

Hur kan få en notifiering av något slag att poppa upp på min mobil när cgminer slutar fungera?

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Går det inte att kontrollera att själva minern fortfarande körs lokalt istället för att kolla bitcoin sidan?
Finns ju många sätt att skicka mail från en dator när någon process slutat fungera.

Annars kan du sätta upp en egen sida, med PHP kan du skicka mail.

Visa signatur

Chassi: Svart, PSU: 230 volt, Moderkort: Stort, CPU: Med fläkt, Minne: Tappat, GPU: Klarar MsPaint jättebra, Hårddiskar: Stor och liten, Mus: Med rullhjul, Tangentbord: Svenskt, Skärm: Platt

Permalänk
99:e percentilen
Skrivet av TheCadde:

Går det inte att kontrollera att själva minern fortfarande körs lokalt istället för att kolla bitcoin sidan?
Finns ju många sätt att skicka mail från en dator när någon process slutat fungera.

Annars kan du sätta upp en egen sida, med PHP kan du skicka mail.

Så skulle jag absolut kunna tänka mig att göra, men jag vet inte hur jag ska detecta att den har kraschat. cgminer stängs nämligen inte ner, utan matar bara ut felmeddelanden i sin egen konsol (typ ett CMD-fönster). Ibland matar den inte ut några felmeddelanden, utan spammar bara "Stratum on pool 0 detected new block".

Jo, vet, men skulle föredra att inte behöva ha igång en webbserver. Då kommer jag antingen glömma att starta den eller att stänga av den. (Om Apache är igång krånglar exempelvis BF3.)

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Du skulle kunna köra ett cronjob som tankar hem sidan och kollar om taggen > 0
Snickra ihop nåt bash/ruby script och skicka mail med. Ruby har en klient för gmail om du inte orkar med sendmail eller liknande. Om du har tele2 kan du skicka mail till telefonen som tele2 översätter till sms.

Men vore det inte enklare att göra ett script som kollar att programmet funkar och om drt inte gör det startar om?
Skickades från m.sweclockers.com

Visa signatur

i5-12600KF | Noctua NH-D15S Chromax Black | MSI MAG B660M | 32 GB G.Skill Trident Z | 3 * WD Black SN750 | Asus TUF OC RTX 3080 | Silverstone FT02 | Corsair RM750W | Samsung Odyssey G9 49" |

Permalänk
Medlem
Skrivet av HurMycket:

Så skulle jag absolut kunna tänka mig att göra, men jag vet inte hur jag ska detecta att den har kraschat. cgminer stängs nämligen inte ner, utan matar bara ut felmeddelanden i sin egen konsol (typ ett CMD-fönster). Ibland matar den inte ut några felmeddelanden, utan spammar bara "Stratum on pool 0 detected new block".

Jo, vet, men skulle föredra att inte behöva ha igång en webbserver. Då kommer jag antingen glömma att starta den eller att stänga av den. (Om Apache är igång krånglar exempelvis BF3.)

cgminer.exe > log.txt

Sedan kan du alltså kolla den filen med valfri lösning. Är för trött för att googla åt dig tyvärr.

Visa signatur

Chassi: Svart, PSU: 230 volt, Moderkort: Stort, CPU: Med fläkt, Minne: Tappat, GPU: Klarar MsPaint jättebra, Hårddiskar: Stor och liten, Mus: Med rullhjul, Tangentbord: Svenskt, Skärm: Platt

Permalänk
99:e percentilen
Skrivet av PierreB:

Du skulle kunna köra ett cronjob som tankar hem sidan och kollar om taggen > 0
Snickra ihop nåt bash/ruby script och skicka mail med. Ruby har en klient för gmail om du inte orkar med sendmail eller liknande. Om du har tele2 kan du skicka mail till telefonen som tele2 översätter till sms.

Men vore det inte enklare att göra ett script som kollar att programmet funkar och om drt inte gör det startar om?

Vet inte hur man skickar mail med bash. (Är det samma sak som batch?) Kan inget om Ruby.

Låter bra. Hur kollar jag om programmet inte funkar?

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
99:e percentilen
Skrivet av TheCadde:

cgminer.exe > log.txt

Sedan kan du alltså kolla den filen med valfri lösning. Är för trött för att googla åt dig tyvärr.

Aha, får undersöka det. Tackar!

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Den lösning som ligger inom mitt kunskapsområde är att göra ett PHP-skript som man lägger upp på en webbserver. Då detta skript blir anropat (genom en HTTP-request för t.ex. http://mindomän.se/miner-is-down.php) så skickar detta PHP-skript iväg ett mail. Iaf jag som redan har en korrekt konfigurerad webbserver på min dator gör ju detta lätt men men.

Permalänk
99:e percentilen
Skrivet av jetten:

Den lösning som ligger inom mitt kunskapsområde är att göra ett PHP-skript som man lägger upp på en webbserver. Då detta skript blir anropat (genom en HTTP-request för t.ex. http://mindomän.se/miner-is-down.php) så skickar detta PHP-skript iväg ett mail. Iaf jag som redan har en korrekt konfigurerad webbserver på min dator gör ju detta lätt men men.

Jo, det ligger förstås nära till hands. Det finns två problem:
1. Jag har aldrig lyckats få mail() att fungera.
2. Jag vill helst inte ha igång Apache förutom när jag jobbar med webbutveckling.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Okej, jag googlade lite ändå nu... Eftersom du inte sagt vad din server kör på antar jag Windows.

Skicka mail med vbscript:
http://www.paulsadowski.com/wsh/cdo.htm

Köra vbscript från kommandopromten (cmd):
http://technet.microsoft.com/en-us/library/ee156587.aspx
(Med andra ord, bara att köra rakt av)

Läs sista raden i en loggfil med vbscript:
http://blogs.technet.com/b/heyscriptingguy/archive/2006/03/03...

Efter detta handlar det bara om att se om sista raden i loggfilen innehåller en viss text. Som t.ex "Error".
När detta sker så skickar den mail (med SMTP eller outlook, info finns i första länken) och slutar läsa loggfilen.

Efter detta kan du hitta på mer lösningar, som t.ex automatisk omstart av cgminer och loggläsaren osv osv.

Om du sitter med linux på servern man du göra samma sak med cron jobs:
http://service.futurequest.net/index.php?/Knowledgebase/Artic...

och sedan använda perl eller varfritt linux baserat språk och återskapa det som jag föreslog ovan för windows.
Även där kan du sedan ordna automatisk omstart vid fel osv.

Visa signatur

Chassi: Svart, PSU: 230 volt, Moderkort: Stort, CPU: Med fläkt, Minne: Tappat, GPU: Klarar MsPaint jättebra, Hårddiskar: Stor och liten, Mus: Med rullhjul, Tangentbord: Svenskt, Skärm: Platt

Permalänk
99:e percentilen
Skrivet av TheCadde:

cgminer.exe > log.txt

Sedan kan du alltså kolla den filen med valfri lösning. Är för trött för att googla åt dig tyvärr.

Det fungerar inte. (Jag gör säkert fel.) Min fil ser ut så här:

@echo on echo "Starting cgminer ..." echo. cgminer.exe -o http://stratum.bitcoin.cz:3333 -u username -p password

Det funkar. Lägger jag till > cgminer.txt så att det står

cgminer.exe > cgminer.txt -o http://stratum.bitcoin.cz:3333 -u username -p password

eller

cgminer.exe -o http://stratum.bitcoin.cz:3333 -u username -p password > cgminer.txt

stängs fönstret omedelbart ner så fort det öppnas.

Filen cgminer.txt skapas men den är tom när jag öppnar den.

EDIT: Man ska använda --sharelog cgminer.txt. Nu matar den ut sina meddelanden i filen cgminer.txt. Men jag vet inte hur man ska starta om den. Kan någon se om deras readme nämner något vettigt om det, eller om man kan göra det med ett batchskript?

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem
Skrivet av HurMycket:

Det fungerar inte. (Jag gör säkert fel.) Min fil ser ut så här:

@echo on echo "Starting cgminer ..." echo. cgminer.exe -o http://stratum.bitcoin.cz:3333 -u username -p password

Det funkar. Lägger jag till > cgminer.txt så att det står

cgminer.exe > cgminer.txt -o http://stratum.bitcoin.cz:3333 -u username -p password

eller

cgminer.exe -o http://stratum.bitcoin.cz:3333 -u username -p password > cgminer.txt

stängs fönstret omedelbart ner så fort det öppnas.

Filen cgminer.txt skapas men den är tom när jag öppnar den.

EDIT: Man ska använda --sharelog cgminer.txt. Nu matar den ut sina meddelanden i filen cgminer.txt. Men jag vet inte hur man ska starta om den. Kan någon se om deras readme nämner något vettigt om det, eller om man kan göra det med ett batchskript?

Andvänd taskkill för att stänga ett program:
http://technet.microsoft.com/en-us/library/bb491009.aspx

@echo on / @echo off gör så att du ser vad som händer i din bat-fil när du kör den. @echo on är standard.
(Ifall du inte visste alltså)

"> loggfil.txt" skall ALLTID hamna sist i ett kommando.

Att den stänger så fort den körs kan bero på att cgminer inte klarar av att skicka sin COUT (standard output) till en fil, jag vet inte mycket om cgminer projektet och dess syfte. Men att den erbjuder "--sharelog fil.ext" är möjligen en produkt av detta. Bra att du hitttade!

du kan starta programmet efter det krashat i vbscript med något liknande:

Dim objShell Set objShell = WScript.CreateObject( "WScript.Shell" ) objShell.Run("""c:\Program Files\Mozilla Firefox\firefox.exe""") Set objShell = Nothing

Det gäller alltså att modifiera dom skripten jag föreslog tidigare så att dom har mer funktioner än en... t.ex (pseudokod):

  • Starta cgminer

  • Taila loggfilen (läs sista raden)

  • om sista raden matchar en kodition (t.ex innehåller texten error) skicka mail.

  • Stoppa cgminer processen vid fel.

  • starta ny cgminer process, börja om från början.

Visa signatur

Chassi: Svart, PSU: 230 volt, Moderkort: Stort, CPU: Med fläkt, Minne: Tappat, GPU: Klarar MsPaint jättebra, Hårddiskar: Stor och liten, Mus: Med rullhjul, Tangentbord: Svenskt, Skärm: Platt

Permalänk
Medlem

Jag kör själv notifiering via sms när mina olika program går ner på datorn. Det jag gör är att ett program (i python) kollar om andra program (de du vill övervaka) skickar ut rätt output eller inte, hur du kollar detta är valfritt. Är allting bra uppdaterar programmet ett google kalender event (flyttar fram det 5 min). Är det inte bra uppdaterar jag inte eventet och eventet inträffar (efter5 min) och skickar en sms påminnelse till min telefon att eventet har börjat, då vet jag att något är tokigt.

Denna metod fungerar bra fast google kalendar api var inte så användarvänligt.

Om någon vill ha programmet, som är skrivet i python kan jag skicka det.

Permalänk
Medlem

Lägg upp en task som varje minut kör ett powershell-script. Du kan enkelt kedja script. Ett som parsar loggfilen och om felet uppstår så länka vidare till t.ex ett mailscript.

Visa signatur

Sony Vaio FE21M