Raccomandato, 2024

Scelta Del Redattore

Come eseguire comandi su Raspberry Pi tramite e-mail

Questo problema è affrontato da quasi tutti gli utenti di Raspberry Pi. Hai un Raspberry Pi in esecuzione a casa e vuoi eseguire un comando su di esso. Il problema è che sei fuori casa, sulla tua rete mobile e non hai modo di accedere al tuo Pi. È possibile ottenere un indirizzo IP statico o utilizzare uno dei servizi DNS dinamici per abilitare l'accesso alla rete domestica. Tuttavia, questo è troppo sconveniente per la maggior parte delle persone e richiede troppi sforzi per un piccolo guadagno. Inoltre, apre il tuo Raspberry Pi agli attacchi a forza bruta, dal momento che la porta SSH è ora esposta al mondo.

La buona notizia è che esiste un metodo più conveniente e più sicuro: invia semplicemente i comandi che desideri eseguire sul tuo Raspberry Pi . In questo modo, tutto ciò di cui hai bisogno è un client di posta elettronica e una connessione Internet funzionante sul tuo Pi. Nessun accesso e nessun IP statico. Inoltre, questo metodo non funziona solo con Raspberry Pi, ma con qualsiasi distribuzione Linux con la shell Bash e CURL installati. Sembra fantastico? Ecco cosa è necessario per configurarlo:

Requisiti

  • Un Raspberry Pi con una connessione Internet funzionante.
  • Un account su IFTTT.com.
  • Un account Dropbox.

Iniziare

Configura la ricetta IFTTT

Useremo IFTTT per distribuire i comandi inviati via e-mail a Dropbox. Dopo aver impostato un account IFTTT, dovrai utilizzare la ricetta " Esegui comandi bash su Raspberry Pi via e-mail" . Semplicemente, vai a questa ricetta IFTTT e fai clic su Aggiungi .

Imposta Uploader Dropbox

Abbiamo bisogno di Dropbox Uploader - un programma a riga di comando che può caricare, scaricare, elencare o eliminare file da Dropbox. Ecco come configurarlo:

1. Sul tuo Raspberry Pi, ottieni il software prerequisito cURL e wget . Probabilmente ne hai già installati, ma li installeremo nel caso in cui:

[codice sorgente] sudo apt install wget curl [/ sourcecode]

2. Crea una cartella in cui la configureremo. Qui, ho creato una directory chiamata raspi_email nella mia cartella home:

[codice sorgente] mkdir ~ / raspi_email
cd ~ / raspi_email [/ sourcecode]

3. Scarica lo script di Dropbox Uploader da GitHub e contrassegnalo come eseguibile :

[codice sorgente] wget //raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh

chmod + x ./dropbox_uploader.sh[/sourcecode]

4. Eseguire lo script dropbox_uploader.sh . Vedrai un risultato come questo:

5. Ora devi creare un'app Dropbox . Accedi a Dropbox, vai a questo URL, dove vedrai una schermata simile a questa:

6. Come nell'immagine sopra, prima scegli l' API Dropbox, quindi seleziona Dropbox completo nel tipo di accesso necessario. Infine, dai un nome alla tua app come preferisci.

7. Una volta creata la nuova app, scorrere verso il basso fino alla sezione OAuth2 e fare clic sul pulsante Genera per generare un token di accesso. Verrà ora visualizzato un token di accesso generato in cui si trovava il pulsante Genera . Copia questo token, incollalo nel tuo terminale e premi Invio :

8. Per verificare che il tuo account ./dropbox_uploader.sh list, esegui il comando ./dropbox_uploader.sh list - dovresti vedere un elenco dei file nel tuo account Dropbox.

Imposta Raspi Runner

Sul tuo Raspberry Pi, scarica lo script Raspi Runner nella cartella raspi_email abbiamo creato in precedenza:

[codice sorgente] cd ~ / raspi_email

wget //raw.github.com/enkydu/Raspi_Runner/master/raspi_runner.sh[/sourcecode]

Rendi lo script eseguibile ed eseguilo:

[codice sorgente] chmod + x ./raspi_runner.sh

./raspi_runner.sh[/sourcecode]

Ora vedrai un prompt come l'immagine qui sotto. Quando lo script richiede il percorso completo del tuo Dropbox Uploader, inserisci il percorso della tua directory Home (probabilmente /home/pi/ ), seguito dal nome della cartella in cui hai scaricato lo script dropbox_uploader.sh . Se hai seguito questa guida parola per parola, inserirai /home/pi/raspi_email qui.

Configura Crontab

Una volta che le basi sono a posto, è necessario pianificare la corsa di Raspi Runner . Ad esempio, puoi impostarlo per controllare le e-mail ogni 5 minuti. Useremo crontab per questo. Sul tuo Raspberry Pi, esegui:

[codice sorgente] crontab -e [/ sourcecode]

Nella parte inferiore del file, aggiungi la seguente riga:

[sourcecode] * / 5 * * * * /home/pi/raspi_email/raspi_runner.sh> / dev / null 2> & 1 [/ codice sorgente]

Ovviamente, nell'esempio sopra, sostituisci pi con il tuo nome utente e raspi_email con la cartella in cui hai inserito lo script raspi_runner.sh . Ora salva il tuo crontab.

uso

Invia semplicemente una email con i comandi che desideri eseguire sul tuo Pi a [email protected] dall'indirizzo email che hai utilizzato per configurare il tuo account IFTTT . Il corpo dell'e-mail conterrà il comando. Puoi aggiungere qualsiasi cosa ti piaccia all'email, ma ti consigliamo di aggiungerne una. Nel seguente esempio, sto comandando al mio Raspberry Pi di spegnersi :

Dopo la quantità di ritardo impostata nel crontab, il raspi_runner.sh verrà eseguito ed eseguirà il comando contenuto nella tua e-mail.

Esegui comandi in remoto sul tuo Raspberry Pi utilizzando IFTTT

Ecco come è possibile utilizzare IFTTT, Dropbox e alcune linee di comando magic per eseguire comandi in remoto sul tuo Raspberry Pi. Naturalmente, come detto all'inizio, questo metodo funzionerà anche con qualsiasi sistema simile a Linux o Unix con la shell Bash installata.

Restate sintonizzati per ulteriori consigli e trucchi su Raspberry Pi in futuro. Se hai problemi a configurarlo, o vuoi condividere con noi alcuni dei tuoi trucchi IFTTT, assicurati di mandarci una riga nella sezione commenti qui sotto.

Top