View Full Version : Spegnimento automatico Ubuntu quando inattivo
hunte888
08-12-2015, 13:00
Ciao a tutti, ho un microserver HP N40L con su installato ubuntu desktop cui funge da server NAS per XBMC. I file video e dati vengono condivisi tramite Samba.
I client possono connettersi al server con XBMC per mezzo di un file xml che gli dice praticamente dove si trova il server e le relative cartelle e file, inoltre ogni client può accedere manualmente attraverso le risorse di rete o via terminale al server.
Detto questo, ho creato una procedura sui client in modo tale che quando questi client vengono accesi, in automatico viene acceso anche il server attraverso wake on lan.
L'esigenza che ho è che il server venga spento o ad orari programmati o quando i vari client vengano spenti e comunque esser sicuri che la procedura di spegnimento vada a buon fine solo quando non vi è nessuno loggato sul server tramite terminale o risorse di rete, oppure che non stia accedendo tramite samba.
So che in Ubuntu si può usare crontab per programmare attività, ma non so come dettare le condizioni. Avete idea o qualche suggerimento da darmi ?
Grazie mille a tutti.
Wikipedia risponde alla tua domanda:
https://it.wikipedia.org/wiki/Crontab#Campi
hunte888
09-12-2015, 10:39
Wikipedia risponde alla tua domanda:
https://it.wikipedia.org/wiki/Crontab#Campi
Ciao, ti ringrazio per il link. Sicuramente utilizzerò crontab. Sai per caso dirmi come posso dettare delle condizioni per crontab e cioè quando c'è attività o meno sul server, del tipo solo quando non c'è nessun utente collegato oppure far si che il crontab si interrompa nel caso ci sia ancora qualcuno collegato ?
antenore
09-12-2015, 13:27
Se i client hanno un IP fisso,
prova a fare uno script bash che fa ping ai client, se nessuno client risponde procedi con lo spegnimento.
Lo script lo inserisci in crontab e lo esegui ad orari stabiliti, etc..
Tasslehoff
09-12-2015, 22:30
Quello di cui hai bisogno può essere tranquillamente fatto con un po' bash scripting.
Per avviare il nas all'avvio dei client è molto semplice, crei uno script che lancia wakeonlan seguito dal mac address del nas e lo piazzi all'avvio in /etc/rc.local (oppure crei una unit che parta all'avvio nel caso di systemd).
Per lo shutdown la cosa è un po' più complessa, lanciare lo shutdown in se è molto semplice (ssh root@nas "shutdown -h now"), idem per far partire il comando alla chiusura (metti uno script in /etc/rc.6 o fai una unit systemd.
Diventa un po' più interessante il controllo se ci sono altri client attivi e connessi via samba, potresti fare uno script bash che fa un controllo dei client connessi usando smbstatus sul nas, e solo in caso negativo lanciare lo shutdown del nas, altrimenti exit 0.
Per autenticarti sul nas con tutti questi comandi remoti usa i certificati, con le password rischieresti l'esaurimento nervoso. ;)
Happy scripting :)
hunte888
12-12-2015, 01:29
Se i client hanno un IP fisso,
prova a fare uno script bash che fa ping ai client, se nessuno client risponde procedi con lo spegnimento.
Lo script lo inserisci in crontab e lo esegui ad orari stabiliti, etc..
Ciao, l'idea è buona, e comunque si i client hanno tutti ip fisso. Il problema che potrebbe sorgere e di cui non avevo calcolato il rischio è che uno o due client potrebbero dover restare accesi poichè pc adibiti ad utilizzo normale oltre che da riproduttore video, esempio andar su internet, controllo posta elettronica etc. Tutti gli altri client che fungono solo da riproduttori possono essere configurati come hai detto.
Intanto ti ringrazio per il consiglio. Mi devo studiare un pò di scripting bash e poi provare.
Quello di cui hai bisogno può essere tranquillamente fatto con un po' bash scripting.
Per avviare il nas all'avvio dei client è molto semplice, crei uno script che lancia wakeonlan seguito dal mac address del nas e lo piazzi all'avvio in /etc/rc.local (oppure crei una unit che parta all'avvio nel caso di systemd).
Per lo shutdown la cosa è un po' più complessa, lanciare lo shutdown in se è molto semplice (ssh root@nas "shutdown -h now"), idem per far partire il comando alla chiusura (metti uno script in /etc/rc.6 o fai una unit systemd.
Diventa un po' più interessante il controllo se ci sono altri client attivi e connessi via samba, potresti fare uno script bash che fa un controllo dei client connessi usando smbstatus sul nas, e solo in caso negativo lanciare lo shutdown del nas, altrimenti exit 0.
Per autenticarti sul nas con tutti questi comandi remoti usa i certificati, con le password rischieresti l'esaurimento nervoso. ;)
Happy scripting :)
Ciao, grazie mille per l'aiuto.
Ti chiedo scusa ma avevo omesso alcuni dettagli: i client sono tutti windows o mac, di altri ubuntu ce ne sono ma non vengono usati come riproduttori, ad ogni modo ho capito benissimo la tua idea ed infatti almeno su windows per ora ho fatto una cosa simile con pianificazione dell'attivazione di un collegamento tramite prompt. Grazie mille in ogni caso per la dritta, nel caso dovessero subentrare dei pc riproduttori con ubuntu sfrutterò senz'altro il tuo consiglio.
Per quanto riguarda lo shutdown, ti ringrazio ed effettivamente era anche molto semplice il solo comando che hai indicato (non ci avevo proprio pensato).
Sui client che fanno esclusivamente da riproduttore posso implementare la procedura di invio del comando dello spegnimento del nas allo spegnimento del client stesso, dopodichè sul nas devo poter gestire questo comando, e cioè se non c'è nessun altro attivo sul nas allora il nas consente l'esecuzione del comando altrimenti resta acceso.
(questo controllo sarà ostico perchè ad esempio potrei a volte essere collegato io tramite ssh, ma vabbè vedrò di trovare una soluzione...)
Stavo pensando che forse mi conviene fare un mix del tipo, il nas viene spento sempre ad orari programmati tipo alle 3 o 4 di notte e nel caso ci sia qualcuno ancora attivo di posticipare lo spegnimento. Una volta spento, il nas resta spento solo fino a quando il primo client che si collecherà non gli manderà un pacchetto wake on lan, in questo modo eviterei un sacco di problemi (metti caso che qualche client si riavvi 2-3 volte a causa di qualche aggiornamento etc dopo il nas si riavvierebbe altrettante volte).
Grazie infinite.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.