• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
automatico riavvio

[Problema] Riavvio Automatico
#1
Salve, ho una Raspberry Pi3 B+ e avrei bisogno di farla riavviare automaticamente con il crontab. In teoria avrei bisogno solo di questo in pratica vorrei imparare a fare anche qualcos'altro che per sempre mi tornerà utile. Creo una scaletta delle cose che vorrei far fare tutto con il crontab sperando che non chiedo l'impossibile e che mi possiate dare una mano.

  1. Creare script chiamato "RiavvioAutomatico"
  2. Inserire in "RiavvioAutomatico" il codice che permetterà il riavvio automatico senza che il sistema possa chiedergli i permessi o password amministratore 
  3. Inserire in crontab il comando che permetterà alle 0:00 (di ogni giorno, di ogni mese, di ogni anno) di avviare lo script "RiavvioAutomatico"
  4. Creare un file di testo "LogRiavvii" con una lista dei riavvii effettuata e non
  5. All'avvio della scheda  "LogRiavvii" si auto-aggiornerà con una nuova riga scrivendo l'informazione relativa al riavvio avvenuto (importante specificare a che ora  e in che giorno in quanto se ci sono più riavvii durante una giornata poi diventa problematico capire quale riavvio è avvenuto con successo; per intenderci una situazione di DEBUG)
  6. Se dopo, in questo caso le 0:00, la scheda non ha subito il riavvio programmato... "LogRiavvii" si auto-aggiornerà come nel punto 5 però indicando lo stato "FAIL" o qualcosa che faccia capire che non è avvenuto.
Mi rendo conto che tutto questo potrebbe essere complicato (o almeno per me lo è) però se riusciste ad aiutarmi questo "tutorial" potrebbe essere utile anche per il comando "sudo update" e simili. Rolleyes 

Grazie in anticipo.
Risposta
#2
Codice:
nano RiavvioAutomatico

dentro ci metti

Codice:
reboot

lo rendi eseguibile

Codice:
chmod +x RiavvioAutomatico

poi dai

Codice:
sudo crontab -e

e alla fine ci scrivi

Codice:
0 0 * * * /home/pi/RiavvioAutomatico

se vuoi implementare il debug su fail come dici tu è un po' piu complicato. sarebbe facile farlo che logghi data&ora ogni volta che viene eseguito ma gestire l'avvenuto successo o fallimento del riavvio prevede altre cose che devo provare e su due piedi non so dirti.
per dirtela in breve, oltre alla scrittura su un file del riavvio tramite crontab, devi mettere un'altro script ad avvio del sistema (in rc.local per esempio) che andrà a scrivere nello stesso formato nello stesso file.
così potresti addirittura loggare l'esecuzione dello script di riavvio e la bontà di questo.

in ogni modo, la via semplice intanto è riaprire RiavvioAutomatico

Codice:
nano RiavvioAutomatico

e la riga SOPRA il comando reboot metterci

Codice:
printf '%s %s\n' "$(date)" "Richiesto Riavvio" >> /home/pi/logreboot

avendo cura di creare la prima volta il file logreboot con

Codice:
touch logreboot

ho fatto delle modifiche a posteriori Tongue



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#3
Ciao,
forse la faccio troppo facile, perché non ho provato.

Programmi il crontab (vedi questa guida https://www.mrwebmaster.it/linux/crontab_6638.html) con il comando sudo reboot.

Saluti

LaPa
With a little/big help from my friends Rolleyes
Risposta
#4
o anche QUESTO ad opera del nostro grande Gabriele.
il log te lo farebbe telegram in pratica



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#5
(27/06/2019, 12:26)Painbrain Ha scritto:
Codice:
nano RiavvioAutomatico

dentro ci metti

Codice:
reboot

lo rendi eseguibile

Codice:
chmod +x RiavvioAutomatico

poi dai

Codice:
sudo crontab -e

e alla fine ci scrivi

Codice:
0 0 * * * /home/pi/RiavvioAutomatico

se vuoi implementare il debug su fail come dici tu è un po' piu complicato. sarebbe facile farlo che logghi data&ora ogni volta che viene eseguito ma gestire l'avvenuto successo o fallimento del riavvio prevede altre cose che devo provare e su due piedi non so dirti.
per dirtela in breve, oltre alla scrittura su un file del riavvio tramite crontab, devi mettere un'altro script ad avvio del sistema (in rc.local per esempio) che andrà a scrivere nello stesso formato nello stesso file.
così potresti addirittura loggare l'esecuzione dello script di riavvio e la bontà di questo.

in ogni modo, la via semplice intanto è riaprire RiavvioAutomatico

Codice:
nano RiavvioAutomatico

e la riga SOPRA il comando reboot metterci

Codice:
printf '%s %s\n' "$(date)" "Richiesto Riavvio" >> /home/pi/logreboot

avendo cura di creare la prima volta il file logreboot con

Codice:
touch logreboot

ho fatto delle modifiche a posteriori Tongue

Wow mi piace già il fatto che si possa riavviare escludendo il debug e rendendo lo script eseguibile (questo non sapevo proprio esistesse nell'ambiente linux). Per quanto riguarda la parte debug era per rendere più completa la cosa in se per se però anche come l'hai impostata tu diciamo nella maniera semplice è comunque una cosa utile che fa comodo avere. Mi è tutto chiaro solo l'ultima riga di comando mi crea qualche difficoltà di comprensione. Cioè se dal terminale do il comando:
Codice:
touch logreboot
automaticamente il sistema mi crea il file nella directory: "/home/pi/"? O devo dargli un comando complementare in cui dovrò scegliere la directory di creazione del file?

Chiedo scusa se faccio domande del genere, ma in questo momento ho il raspberry fuori uso a causa di un qualcosa che non permette di collegarmici tramite putty... credo sia dovuto al php7 installato per un webserver. A proposito devo creare una nuova discussione relativa ad un'altra domanda per trovare una soluzione al mio problema da principiante  
Blush


Per quanto riguarda la risposta con l'uso di telegram per il debug...carina come idea e magari bella ad averla, ma solo all'inizio poi dopo un po' comincia a dar fastidio con le continue notifiche dovute ai riavvii programmati.

Ho già provato a programmare il crontab e sì, ha funzionato però non mi dava il risultato come l'ho chiesto in questa discussione. Comunque attendo l'ultimo chiarimento da @Painbrain e poi credo che si può anche dichiarare come risolta questa discussione. Grazie mille ancora per la vostra disponibilità.  Big Grin
Risposta
#6
Tutti i comandi che ti ho suggerito sono da intendersi eseguiti in /home/pi
Per maggior sicurezza indicagli il percorso manualmente, ergo "touch /home/pi/logreboot" Smile

Inviato dal mio Redmi Note 4X utilizzando Tapatalk



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#7
(28/06/2019, 20:01)Painbrain Ha scritto: Tutti i comandi che ti ho suggerito sono da intendersi eseguiti in /home/pi
Per maggior sicurezza indicagli il percorso manualmente, ergo "touch /home/pi/logreboot" Smile

Inviato dal mio Redmi Note 4X utilizzando Tapatalk

Perfetto proverò. Per spostarmi nella directory /home/pi si usa il comando cd giusto? O è cp?
Risposta
#8
cd = change directory

Per il log, dico una sciocchezza, ma credo sia sufficiente il log di sistema

Inviato dal mio A0001 utilizzando Tapatalk
Risposta
#9
Perfetto, grazie mille a tutti. Proverò e vedrò se andrà tutto come mi aspetto nel caso sarò qui di nuovo Big Grin
Risposta
#10
Allora ho provato ma non funziona... ho provato a mettere l'estensione ".sh" al file RiavvioAutomatico e sembra succedere qualcosa dopo che gli do i permessi quando dopo da ssh do questo comando per provare:

Codice:
./RiavvioAutomatico.sh

E il risultato è questo:

Citazione:Failed to set wall message, ignoring: Interactive authentication required.
Failed to reboot system via logind: Interactive authentication required.
Failed to open /dev/initctl: Permesso negato
Failed to talk to init daemon.


Che problemi ho ora? :'D

Ho risolto! Big Grin 
Ho provato ad aggiugere sudo prima di reboot in questo modo:


Codice:
printf '%s %s\n' "$(date)" "Riavvio Effettuato" >> /home/pi/logreboot

sudo reboot


e quando ho dato il comando:
Codice:
./RiavvioAutomatico.sh

ha funzionato!  Cool
Grazie mille a tutti, possiamo anche chiudere la discussione se i moderatori vogliono.
Risposta
  


Vai al forum:


Navigazione: 6 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect