DIY

Cum se execută comenzi pe Raspberry Pi prin e-mail

Cum se execută comenzi pe Raspberry Pi prin e-mail

Această problemă se confruntă cu aproape fiecare utilizator Raspberry Pi. Aveți un Raspberry Pi care rulează acasă și doriți să executați o comandă pe acesta. Problema este că sunteți în afara casei dvs., în rețeaua dvs. mobilă și nu aveți nicio modalitate de a accesa Pi. Puteți obține o adresă IP statică sau puteți utiliza unul dintre serviciile DNS dinamice pentru a permite accesul la rețeaua dvs. de acasă. Cu toate acestea, acest lucru este prea incomod pentru majoritatea oamenilor și necesită prea mult efort pentru câștiguri mici. În plus, vă deschide Raspberry Pi la atacuri cu forță brută, deoarece portul SSH este acum expus lumii.

Vestea bună este că există o metodă mai convenabilă și mai sigură - pur și simplu trimiteți prin e-mail comenzile pe care doriți să le rulați pe Raspberry Pi. În acest fel, tot ce aveți nevoie este un client de e-mail și o conexiune de internet funcțională pe Pi. Fără conectări și fără adrese IP statice. Mai mult, această metodă nu funcționează doar cu Raspberry Pi, ci cu orice distribuție Linux cu shell Bash și cURL instalate. Suna bine? Iată de ce aveți nevoie pentru ao configura:

Cerințe

Noțiuni de bază

Configurați rețeta IFTTT

Vom folosi IFTTT pentru a distribui comenzile livrate prin e-mail către Dropbox. După configurarea unui cont IFTTT, va trebui să utilizați „Rulați comenzile bash pe Raspberry Pi prin e-mail ”rețetă. Pur și simplu, accesați această rețetă IFTTT și faceți clic pe Adăuga.

Configurați Dropbox Uploader

Avem nevoie Dropbox Uploader - un program de linie de comandă care poate încărca, descărca, lista sau șterge fișiere din Dropbox. Iată cum să îl configurați:

1. Pe Raspberry Pi, obțineți software-ul prealabil răsuci și wget. Probabil că le aveți deja instalate, dar le vom instala pentru orice eventualitate:

[cod sursă] sudo apt install wget curl [/ cod sursă]

2. Creați un folder unde o vom instala. Aici, am creat un director numit raspi_email în dosarul meu de acasă:

[cod sursă] mkdir ~ / raspi_email
cd ~ / raspi_email [/ sourcecode]

3. Obține Script Dropbox Uploader de la GitHub, și marcați-l executabil:

[cod sursă] wget https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh

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

4. Aleargă dropbox_uploader.sh scenariu. Veți vedea o ieșire ca aceasta:

5. Acum trebuie creați o aplicație Dropbox. Conectați-vă la Dropbox, accesați această adresă URL, unde veți vedea un ecran care arată astfel:

6. Ca și în imaginea de mai sus, alegeți mai întâi API Dropbox, apoi selectați Dropbox complet în tipul de acces necesar. In cele din urma, Nume aplicația dvs. orice doriți.

7. După ce noua aplicație este creată cu succes, derulați în jos până la OAuth2 și faceți clic pe Genera pentru a genera un jeton de acces. Acum veți vedea un jeton de acces generat unde Genera butonul a fost. Copiați acest jeton, lipiți-l în terminal și apăsați introduce:

8. La verificați dacă contul dvs. funcționează, executați comanda ./dropbox_uploader.sh list - ar trebui să vedeți o listă a fișierelor din contul dvs. Dropbox.

Configurați Raspi Runner

Pe Raspberry Pi, descărcați fișierul Script Raspi Runner în raspi_email dosar pe care l-am creat anterior:

[cod sursă] cd ~ / raspi_email

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

Realizați scenariul executabil, și rulați-l:

[cod sursă] chmod + x ./raspi_runner.sh

./raspi_runner.sh[/sourcecode]

Acum veți vedea o solicitare precum imaginea de mai jos. Când scriptul cere calea completă către Dropbox Uploader, intra pe cale pentru dumneavoastră Acasă director (probabil / acasă / pi /), urmat de numele dosarului în care ați descărcat fișierul dropbox_uploader.sh scenariu. Dacă ați urmat acest ghid cuvânt cu cuvânt, veți intra / home / pi / raspi_email Aici.

Configurați Crontab

Odată ce elementele de bază sunt la locul lor, este necesar programează alergarea Raspi Runner. De exemplu, îl puteți seta pentru a verifica e-mailurile la fiecare 5 minute. Vom folosi crontab pentru aceasta. Pe Raspberry Pi, executați:

[sourcecode] crontab -e [/ sourcecode]

În partea de jos a fișierului, adăugați următoarea linie:

[cod sursă] * / 5 * * * * /home/pi/raspi_email/raspi_runner.sh> / dev / null 2> & 1 [/ cod sursă]

Desigur, în exemplul de mai sus, a inlocui pi cu numele dvs. de utilizator și raspi_email cu folderul pe care l-ați plasat raspi_runner.sh script în. Acum salvați crontab-ul.

Utilizare

Pur și simplu trimiteți un e-mail cu comenzile pe care doriți să le executați pe Pi [email protected] de la adresa de e-mail pe care ați folosit-o pentru a vă configura contul IFTTT. Corpul e-mailului va conține comanda. Puteți adăuga orice subiect doriți la e-mail, dar este recomandat să adăugați unul. În exemplul următor, îi comand Raspberry Pi să închide:

După întârzierea pe care ați setat-o ​​în crontab, raspi_runner.sh va rula și va executa comanda conținută în e-mailul dvs..

VEZI ȘI: Cum să configurați și să începeți cu Raspberry Pi 3 (Ghid de pornire)

Rulați comenzile de la distanță pe Raspberry Pi utilizând IFTTT

Deci, astfel puteți utiliza IFTTT, Dropbox și unele magii de linie de comandă pentru a rula comenzi de la distanță pe Raspberry Pi. Desigur, așa cum am menționat la început, această metodă va funcționa și cu orice sistem Linux sau Unix-like cu shell-ul Bash instalat.

Rămâneți la curent pentru mai multe sfaturi și trucuri Raspberry Pi în viitor. Dacă aveți probleme la configurare sau doriți să ne împărtășiți unele dintre propriile trucuri interesante IFTTT cu noi, asigurați-vă că ne trimiteți o linie în secțiunea de comentarii de mai jos.

Sărbători fericite Google Doodle în acțiune [Video]
Google ne urează tuturor sărbători fericite și Crăciun fericit cu un Doodle uimitor. Litere dansând, Clopotele sunând, Stelele luminează și Jingle Bel...
Cum a reacționat Silicon Valley după ce Steve Jobs a fost deconectat
„Lumea rar vede pe cineva care a avut impactul profund pe care l-a avut Steve, ale cărui efecte vor fi resimțite pentru multe generații viitoare. Pent...
Cum să partajați internetul de pe Mac prin WiFi sau Ethernet
Există o mulțime de motive pentru care ați putea dori să partajați conexiunea la internet a Mac-ului dvs. prin WiFi sau Ethernet. S-ar putea să stați ...