Detta problem möter nästan alla Raspberry Pi-användare. Du har en Raspberry Pi som kör hemma och vill utföra ett kommando på den. Frågan är att du är utanför ditt hem, i ditt mobilnätverk och inte har något sätt att komma åt din Pi. Du kan få en statisk IP-adress eller använda en av de dynamiska DNS-tjänsterna för att möjliggöra åtkomst till ditt hemnätverk. Men det är alldeles för obekvämt för de flesta och tar för mycket ansträngning för liten vinst. Dessutom öppnar det din Raspberry Pi för brute-force attacker, eftersom SSH-porten nu är utsatt för världen.
Den goda nyheten är att det finns en bekvämare och säkrare metod - maila bara de kommandon du vill köra på din Raspberry Pi. På det här sättet är allt du behöver en e-postklient och en fungerande internetanslutning på din Pi. Inga inloggningar och inga statiska IP-adresser. Dessutom fungerar den här metoden inte bara med Raspberry Pi utan med någon Linux-distro med Bash-skalet och cURL installerat. Låter coolt? Här är vad du behöver för att ställa in det:
Krav
- En Raspberry Pi med en fungerande internetanslutning.
- Ett konto på IFTTT.com.
- Ett Dropbox-konto.
Komma igång
Ställ in IFTTT-recept
Vi kommer att använda IFTTT för att distribuera kommandon som levereras via e-post till Dropbox. När du har skapat ett IFTTT-konto måste du använda “Kör bash-kommandon på Raspberry Pi via e-post ”recept. Gå enkelt till detta IFTTT-recept och klicka på Lägg till.
Ställ in Dropbox Uploader
Vi behöver Dropbox Uploader - ett kommandoradsprogram som kan ladda upp, ladda ner, lista eller radera filer från Dropbox. Så här ställer du in det:
1. På din Raspberry Pi, hämta den nödvändiga programvaran ringla och wget. Du har förmodligen redan installerat dessa, men vi installerar dem i alla fall:
[sourcecode] sudo apt install wget curl [/ sourcecode]
2. Skapa en mapp där vi kommer att ställa upp det. Här har jag skapat en katalog som heter raspi_email
i min hemmapp:
[källkod] mkdir ~ / raspi_email
cd ~ / raspi_email [/ sourcecode]
3. Få den Dropbox Uploader-skript från GitHub, och markera det som körbart:
[sourcecode] wget https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
chmod + x ./dropbox_uploader.sh [/sourcecode]
4. Kör de dropbox_uploader.sh
manus. Du ser en utdata så här:
5. Nu måste du skapa en Dropbox-app. Logga in på Dropbox, gå till denna URL, där du ser en skärm som ser ut så här:
6. Som på bilden ovan, välj först Dropbox API, välj sedan Full Dropbox i vilken typ av åtkomst som behövs. Till sist, namn din app vad du än vill.
7. När din nya app har skapats, bläddra ner till OAuth2 och klicka på Generera -knappen för att skapa en åtkomsttoken. Nu ser du en genererad åtkomsttoken där Generera knappen var. Kopiera den här token, klistra in den i din terminal och tryck Stiga på:
8. Till verifiera att ditt konto fungerar, kör kommandot ./dropbox_uploader.sh-lista
- bör du se en lista över filerna i ditt Dropbox-konto.
Ställ in Raspi Runner
Ladda ner på din Raspberry Pi Raspi Runner-skript i raspi_email
mapp som vi skapade tidigare:
[sourcecode] cd ~ / raspi_email
wget https://raw.github.com/enkydu/Raspi_Runner/master/raspi_runner.sh [/sourcecode]
Gör manuset körbar, och kör den:
[källkod] chmod + x ./raspi_runner.sh
./raspi_runner.sh [/ källkod]
Du kommer nu att se en fråga som bilden nedan. När manuset ber om hela vägen till din Dropbox Uploader, ange vägen till din Hem katalog (förmodligen / hem / pi /
) följt av mappens namn där du laddade ner dropbox_uploader.sh
manus. Om du följde den här guiden ord för ord kommer du in / home / pi / raspi_email
här.
Ställ in Crontab
När grunderna är på plats är det nödvändigt att schemalägg körningen av Raspi Runner. Du kan till exempel ställa in den så att den söker efter e-post var femte minut. Vi kommer att använda den crontab för detta. Kör på din Raspberry Pi:
[sourcecode] crontab -e [/ sourcecode]
Lägg till följande rad längst ner i filen:
[sourcecode] * / 5 * * * * /home/pi/raspi_email/raspi_runner.sh> / dev / null 2> & 1 [/ sourcecode]
Naturligtvis i exemplet ovan, byta ut pi med ditt användarnamn och raspi_email med mappen du placerade raspi_runner.sh
skript in. Spara nu crontab.
Användande
Skicka bara ett e-postmeddelande med de kommandon du vill köra på din Pi till [email protected] från e-postadress som du använde för att ställa in ditt IFTTT-konto. E-postens innehåll innehåller kommandot. Du kan lägga till vilket ämne du vill i e-postmeddelandet, men det rekommenderas att du lägger till ett ämne. I följande exempel befaller jag min Raspberry Pi att stänga av:
Efter den fördröjning du anger i din crontab, de raspi_runner.sh kör och kör kommandot i din e-post.
SE OCH: Så här ställer du in och kommer igång med Raspberry Pi 3 (startguide)
Kör kommandon på distans på din Raspberry Pi med IFTTT
Så det här är hur du kan använda IFTTT, Dropbox och lite kommandoradsmagi för att köra kommandon på distans på din Raspberry Pi. Naturligtvis, som nämnts i början, fungerar den här metoden också med alla Linux- eller Unix-liknande system med Bash-skalet installerat.
Håll ögonen öppna för fler Raspberry Pi-tips och tricks i framtiden. Om du har problem med att ställa in det eller vill dela några av dina egna coola IFTTT-tricks med oss, se till att skicka oss en rad i kommentarfältet nedan.