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
- Un Raspberry Pi cu o conexiune la internet funcțională.
- Un cont pe IFTTT.com.
- Un cont Dropbox.
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.