Controllare (con email) lo shutdown [RISOLTO]

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Controllare (con email) lo shutdown [RISOLTO]

Messaggio da Burroughs »

Salve a tutti, ragazzi!

Per motivi di sicurezza, mi piacerebbe implementare sulla mia macchina una procedura che preveda la generazione di un'email tutte le volte che il sistema viene spento.
Attualmente, grazie a ssmtp, i log vengono smistati all'esterno senza particolari problemi, ma non so cosa fare per un evento particolare, lo shutdown, appunto.
Mi spiego meglio: nel profilo dell'utente, ho creato un .bash_logout con la seguente istruzione:

Codice: Seleziona tutto

echo 'ALERT - Disconnessione utente (nome_host) su:' `date` `who` | mail -s "Alert: Disconnessione utente da `who | cut -d"(" -f2 | cut -d")" -f1`" mio_indirizzo_email
Ora, se effettuo un logout, l'istruzione in questione mi genera l'email che mi serve, ma con lo shutdown come posso fare?

Burroughs.
Ultima modifica di Burroughs il gio 27 dic 2012, 17:41, modificato 1 volta in totale.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
boh
Linux 4.x
Linux 4.x
Messaggi: 1027
Iscritto il: ven 16 set 2005, 0:00
Slackware: 14.2 (x64)
Kernel: 4.4.111
Desktop: KDE 4.14.32
Località: Milano
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da boh »

Non è possibile inserire lo script che ti genera la mail in /etc/rc.local_shutdown?
"Be yourself. Everyone else is already taken." ~ Oscar Wilde

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da Burroughs »

boh ha scritto:Non è possibile inserire lo script che ti genera la mail in /etc/rc.local_shutdown?
Ovviamente sì, ma Arch, che uso da qualche anno ormai, è passata a systemd, per cui devo trovare un workaround per aggirare il problema.

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
Thraphyx
Linux 2.x
Linux 2.x
Messaggi: 212
Iscritto il: ven 28 ago 2009, 22:43
Slackware: 14.1 multilib
Kernel: 3.10.17
Desktop: KDE 4.11.5

Re: Controllare (con email) lo shutdown

Messaggio da Thraphyx »

La butto lì.. creare un alias di shutdown che prima esegue uno script per mandare la mail e poi il comando vero e proprio? Una cosa tipo

Codice: Seleziona tutto

alias shutdown="/path/to/mail/script && /sbin/shutdown -h now" 

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da Burroughs »

Thraphyx ha scritto:La butto lì.. creare un alias di shutdown che prima esegue uno script per mandare la mail e poi il comando vero e proprio? Una cosa tipo

Codice: Seleziona tutto

alias shutdown="/path/to/mail/script && /sbin/shutdown -h now" 
Scusami, puoi essere più chiaro?

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
Thraphyx
Linux 2.x
Linux 2.x
Messaggi: 212
Iscritto il: ven 28 ago 2009, 22:43
Slackware: 14.1 multilib
Kernel: 3.10.17
Desktop: KDE 4.11.5

Re: Controllare (con email) lo shutdown

Messaggio da Thraphyx »

Praticamente, la mia idea è quella di modificare il comando di shutdown in modo che invece di spegnere subito la macchina, esegua prima un comando o uno script per mandare l'email con il log.
Puoi farlo ad esempio impostando un alias per il comando shutdown (ma non sono sicuro di come impostarlo a livello di sistema, forse inserendolo in /etc/profile o /etc/bash.bashrc) come ti ho scritto nel messaggio precendente, ovvero una cosa del genere

Codice: Seleziona tutto

alias shutdown ="/sbin/lotgomail && /sbin/shutdown -h now"
dove /sbin/logtomail è uno script che esegue un comando simile a quello che utilizzi nel .bash_logout, ad esempio

Codice: Seleziona tutto

echo 'ALERT - Arresto sistema (nome_host) su:' `date` `who` | mail -s "Alert: Arresto sistema da `who | cut -d"(" -f2 | cut -d")" -f1`" mio_indirizzo_email
Però dipende da come pensi che gli utenti possano spegnere la macchina.
Da come gestisci i log per il logout, immagino che prevedi un utilizzo anche da console dell'utente, giusto? Non utilizzi interfacce grafiche? Se sì, quali sono e come si comportano con l'esecuzione di quello script al logout?

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da Burroughs »

Thraphyx ha scritto:Da come gestisci i log per il logout, immagino che prevedi un utilizzo anche da console dell'utente, giusto? Non utilizzi interfacce grafiche? Se sì, quali sono e come si comportano con l'esecuzione di quello script al logout?
Lo spegnimento avviene da init5, ecco il cuore del problema...
Se l'utente esce da X ed effettua lo shutdown da init3, passando per un semplice logout, il comando di cui sopra traccia la disconnessione...
Quello che mi piacerebbe implementare sarebbe un'istruzione simile alla precedente, che controlla "solo" un comando diverso.

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
Thraphyx
Linux 2.x
Linux 2.x
Messaggi: 212
Iscritto il: ven 28 ago 2009, 22:43
Slackware: 14.1 multilib
Kernel: 3.10.17
Desktop: KDE 4.11.5

Re: Controllare (con email) lo shutdown

Messaggio da Thraphyx »

Lo spegnimento avviene da init5, ecco il cuore del problema...
Se l'utente esce da X ed effettua lo shutdown da init3, passando per un semplice logout, il comando di cui sopra traccia la disconnessione...
Quello che mi piacerebbe implementare sarebbe un'istruzione simile alla precedente, che controlla "solo" un comando diverso.
Se sei in X, e vuoi eseguire uno script allo spegnimento del pc (effettuato via menu), usando KDE ad esempio, puoi farlo inserendolo in $HOME/.kde/shutdown. Hai già provato?

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da Burroughs »

Thraphyx ha scritto:Se sei in X, e vuoi eseguire uno script allo spegnimento del pc (effettuato via menu), usando KDE ad esempio, puoi farlo inserendolo in $HOME/.kde/shutdown. Hai già provato?
Ho provato a reimmettere l'istruzione di cui sopra in uno script ma non cambia nulla...

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da ZeroUno »

Non è possibile inserire lo script che ti genera la mail in /etc/rc.local_shutdown?
Ovviamente sì, ma Arch, che uso da qualche anno ormai, è passata a systemd, per cui devo trovare un workaround per aggirare il problema.
https://wiki.archlinux.org/index.php/Sy ... taliano%29
Emulazione degli Initscripts:
3. Eseguire /etc/rc.local.shutdown durante lo spegnimento
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da Burroughs »

D'accordo, ma io utilizzo solo ed esclusivamente systemd, per cui i vari /etc/rc.local, /etc/rc.local.shutdown sono stati da tempo piallati dal sistema.

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da ZeroUno »

non conosco systemd, ma installare l'emulazione degli initscripts non sarebbe una cattiva idea. Credo sia indispensabile, per esempio, se installi qualche applicativo che non supporta systemd.
In fondo anche slackware ha l'emulazione del subsystem systemV, che non è nativo slackware (infatti tempo fa non c'era, che io mi ricordi).

A questo punto credo che devi studiarti, forse nello stesso documento, come crearsi un init script per systemd e metterlo nell'equivalente di rc0.d & rc6.d di systemV.
Da quella guida credo che si chiamino "target". Su solaris 10 si chiamano milestone e rimpiazzano gli equivalenti rc[0-6] del precedente systemV.

Vediti anche, dalla stessa guida, la sezione ACPI che potrebbe esserti utile.

Quella guida ti consiglio di leggerla per intero. mi sembra ben fatta ed è probabile che riesci a trovarci roba utile per conoscere meglio la tua distribuzione.


edit: da uno degli articoli correlati:
"save the following script as /lib/systemd/system-shutdown/debug.sh and make it executable"
vedi che roba c'è in quella directory. forse ti basta mettere lì il tuo script.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da Burroughs »

Grazie, ZeroUno, per l'imbeccata, assai preziosa.
Ho provato a mettere uno script, contenente l'echo di cui sopra, nella directory (rigorosamente vuota) suggerita dalla guida, ma non viene generata l'email.
Penso che il tutto dipenda dal fatto che lo shutdown venga fatto in init5; anche adesso, senza ricorrere a virtuosismi particolari, se esco da X e da shell lancio lo shutdown, l'email di disconnessione viene prodotta.
Il problema è dargliela in pasto all'ambiente grafico, cosa che, al momento, non sono ancora riuscito a fare.

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da ZeroUno »

prova a metterci uno script (e renderlo eseguibile) con dentro

Codice: Seleziona tutto

#!/bin/bash
date >> /tmp/datashutdown
ps >> /tmp/datashutdown
ifconfig >> /tmp/datashutdown

per vedere se viene avviato (attento che tmp non sia in tmpfs, altrimenti scegli un altro path) e in che momento (magari viene avviato quando la rete è già down),
e prova a fare lo shutdown in vari modi (init 0, halt, reboot, i comandi appositi di systemd, da kde o chi per lui)
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Controllare (con email) lo shutdown

Messaggio da Burroughs »

Ho provato a riavviare/spegnere sia da KDE che in init3 ma il file /tmp/datashutdown non viene generato...
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Rispondi