+ Rispondi
Pagina 1 di 5 1 2 3 ... UltimaUltima
Risultati da 1 a 10 su 45
  1. #1

    Iscritto dal
    06/11/2011
    Messaggi
    7,965

    Shutdown automatico anche su UPS non dotati di alcun collegamento dati al PC

    Dato che ho a casa parecchi UPS di svariate dimensioni, ma quasi nessuno di loro possiede una connessione seriale/USB per gestire lo spegnimento automatico del PC in caso di batterie quasi scariche, ho buttato giù due righe per cercare di aggiungergli, anche se parzialmente ed in modo impreciso, questa funzionalità.

    L'idea di base sta nel verificare la presenza di alimentazione nella rete elettrica basandosi sulla presenza o no di connessione ad internet "pingando", naturalmente il modem/router non deve essere connesso all'UPS

    Per chi non lo sapesse, basta copiare il codice nel blocco note e salvarlo nel formato .bat, poi basta avviarlo.

    codice:
    @ECHO off
    
    :LoopPing
    PING -N 1 192.168.1.1 | FINDSTR "TTL="
    TIMEOUT -T 60
    
    IF ERRORLEVEL 1 (
       ECHO Connessione assente, avvio nuovo ping test...
       TIMEOUT -T 60
       PING -N 1 192.168.1.1 | FINDSTR "TTL="    
         IF ERRORLEVEL 1 (
         ECHO Connessione assente, ultimo tentativo...
         TIMEOUT -T 60
         PING -N 1 192.168.1.1 | FINDSTR "TTL="
           IF ERRORLEVEL 1 (
           shutdown -s -f -t 10 -c "Connessione assente, shutdown preventivo..."
           )
         )
    )
    IF ERRORLEVEL 0 (
       GOTO LoopPing
    )
    NOTE:
    • Compatibile con Windows Vista & 7;
    • Compatibile su Windows Server 2008 solo se con le adeguate autorizzazioni per l'utente che avvia l'applicazione (non testato);
    • Per modificare le pause temporali tra i test di connessione, modificare il valore a seguito del comando "TIMEOUT -T";



    Per le pari opportunità ( By xam8re ):

    codice:
    #!/bin/bash
    count=1
    while [ $count -le 3 ]
    do
        ping 192.168.1.2 -c 4
        if [ $? -eq 1 ]; then
            let count=count+1
        sleep 60
        else
            count=1;
        fi
    done
    echo "spegnimento"
    poweroff
    Necessita di essere avviato come root.
    Ultima modifica: 09-04-2013 alle 18:38, di Cere

  2. #2

    Iscritto dal
    07/09/2011
    Località
    Ambiente climatizzato
    Messaggi
    12,389
    Uhm.. prova a vedere su pct... un utente, mi pare Arti, aveva progettato "UPS SerialKiller" che faceva proprio quel che vuoi tu... ma se nel pc non hai seriali...
    "Motore danza - sento già - che il dolore avanza": le ultime parole registrate dalla scatola nera

    "Il vino è nemico dell'uomo; chi indietreggia davanti al nemico è un vigliacco"

  3. #3

    Iscritto dal
    06/11/2011
    Messaggi
    7,965
    Quote Originariamente inviato da Darlington Visualizza il messaggio
    Uhm.. prova a vedere su pct... un utente, mi pare Arti, aveva progettato "UPS SerialKiller" che faceva proprio quel che vuoi tu... ma se nel pc non hai seriali...
    Lo sto leggendo adesso...

    Comunque la mia non è una richiesta (), volevo fare un qualcosa software only, una cosa del tipo download e via per i meno esperti
    Ultima modifica: 07-04-2013 alle 01:56, di Cere

  4. #4

    Iscritto dal
    06/11/2011
    Messaggi
    7,965
    Aggiunta la nuova versione, testata e funzionante

  5. #5

    Iscritto dal
    24/11/2012
    Messaggi
    8,020
    Carino

    Metti che perda la portante per i cazzi suoi senza interruzione di corrente....ti spegne il pc. Oppure metti che la corrente vada via per un briciolo di secondo, il router perde la portante e ti tocca aspettare che la riagganci.
    Secondo me dovresti aggiungere un timer prima dello shutdown che "attenda" la nuova portante. Ovviamente la cosa varia da router a router quindi ognuno se lo deve modificare secondo le sue esigenze.
    Per es. il mio dgn3500 ci mette 3min ad agganciarsi
    Dopo questo tempo fai un altro ping e se fallisce allora spegni tutto.

    C'è poi da aggiungere la copertura dell'ups durante il tempo di attesa. Se non c'è corrente, l'ups deve reggere almeno il tempo di provare ad agganciare la nuova portante

    Life is short, play more.
    3770K - Z77 extreme4 - 8G Samsung green 30nm - 6950@70 - M4 128G
    DGN3500 (amod) + R7000 (kongac)






  6. #6

    Iscritto dal
    24/10/2011
    Località
    Marche
    Messaggi
    9,260
    Mi piacciono queste cose, bravo Simone!

  7. #7

    Iscritto dal
    06/11/2011
    Messaggi
    7,965
    Quote Originariamente inviato da ATIX Visualizza il messaggio
    Carino

    Metti che perda la portante per i cazzi suoi senza interruzione di corrente....ti spegne il pc. Oppure metti che la corrente vada via per un briciolo di secondo, il router perde la portante e ti tocca aspettare che la riagganci.
    Secondo me dovresti aggiungere un timer prima dello shutdown che "attenda" la nuova portante. Ovviamente la cosa varia da router a router quindi ognuno se lo deve modificare secondo le sue esigenze.
    Per es. il mio dgn3500 ci mette 3min ad agganciarsi
    Dopo questo tempo fai un altro ping e se fallisce allora spegni tutto.

    C'è poi da aggiungere la copertura dell'ups durante il tempo di attesa. Se non c'è corrente, l'ups deve reggere almeno il tempo di provare ad agganciare la nuova portante
    Al momento ho inserito solo 2 TIMEOUT configurabili a piacimento, se il router impiega (esempio) 3 minuti a riagganciarsi alla portante basta inserire un valore ai TIMEOUT di una manciata di secondi superiore ai 3 minuti
    Il codice è configurato, al momento, per funzionare in questo ordine:

    # Pinga;
    # Se è offline parte il TIMEOUT di #n secondi;
    # Se è online ricomincia da capo;
    # Finito il TIMEOUT pinga;
    # Se è offline parte il TIMEOUT di #n secondi;
    # Se è online ricomincia da capo;
    # Finito il TIMEOUT pinga;
    # Se è offline forza lo SHUTDOWN del sistema;
    # Se è online ricomincia da capo;


    Volendo si potrebbe ridurre la durata dei TIMEOUT e moltiplicare le pingate per aumentarne la precisione di lettura.
    Mettiamo, per esempio, che l'UPS regga il sistema per 12 minuti in caso di blackout, si potrebbe configurare cosi:

    PINGATA host n°1
    TIMEOUT 5 minuti
    PINGATA host n°2
    TIMEUOT 5 minuti
    PINGATA host n°3
    SHUTDOWN

    Oppure modificare cosi, tenendo presente il tempo di riaggancio del modem, nel tuo esempio 3 minuti:
    (ci sarebbe da cronometrare la durata di ogni ciclo PING fallito + TIMEOUT per settarlo al meglio, oppure forzare un -T per rendere il PING fallito istantaneo)

    PINGATA host n°1
    TIMEOUT 190 secondi
    PINGATA host n°2
    TIMEUOT 190 secondi
    PINGATA host n°3
    TIMEUOT 190 secondi
    PINGATA host n°1
    SHUTDOWN

    O nel caso di UPS con autonomia ben maggiore, aggiungere molti altri "loop" di PING-TIMEOUT, tenendo sempre un valore temporale al TIMEOUT di poco superiore al tempo richiesto al router a riagganciarsi alla portante.



    Quote Originariamente inviato da Luigi Visualizza il messaggio
    Mi piacciono queste cose, bravo Simone!
    Grazie
    Ultima modifica: 07-04-2013 alle 18:25, di Cere

  8. #8

    Iscritto dal
    07/09/2011
    Località
    Ambiente climatizzato
    Messaggi
    12,389
    Sennò... pinga l'ip del router anziché un ip esterno
    "Motore danza - sento già - che il dolore avanza": le ultime parole registrate dalla scatola nera

    "Il vino è nemico dell'uomo; chi indietreggia davanti al nemico è un vigliacco"

  9. #9

    Iscritto dal
    24/11/2012
    Messaggi
    8,020
    Quote Originariamente inviato da Darlington Visualizza il messaggio
    Sennò... pinga l'ip del router anziché un ip esterno
    Esatto. Cosa saggia e furba

    Life is short, play more.
    3770K - Z77 extreme4 - 8G Samsung green 30nm - 6950@70 - M4 128G
    DGN3500 (amod) + R7000 (kongac)






  10. #10

    Iscritto dal
    06/11/2011
    Messaggi
    7,965
    Quote Originariamente inviato da Darlington Visualizza il messaggio
    Sennò... pinga l'ip del router anziché un ip esterno
    Vero
    Modificato

    Ah, devo ancora inserire l'opzione che permetta, manualmente, di annullare lo SHUTDOWN a proprio piacimento. Al momento, una volta che il comando è stato avviato, non è più possibile annullarlo.
    Altra cosetta che volevo inserire è la segnalazione via SMS/MAIL ma personalmente non mi serve ad una cippa visto che non uso il cellulare


 
+ Rispondi
Pagina 1 di 5 1 2 3 ... UltimaUltima

Autorizzazioni

  • Non puoi iniziare nuove discussioni
  • Non puoi rispondere alle discussioni
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
Powered by vBulletin™ Version 4.1.5
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved
SEO by vBSEO ©2011, Crawlability, Inc.
Fuso orario: UTC +1, sono le 08:35.