Dit probleem wordt door bijna elke Raspberry Pi-gebruiker geconfronteerd. Je hebt thuis een Raspberry Pi en je wilt er een commando op uitvoeren. Het probleem is dat u zich buiten uw huis bevindt, op uw mobiele netwerk, en geen toegang heeft tot uw Pi. U kunt een statisch IP-adres krijgen of een van de dynamische DNS-services gebruiken om toegang tot uw thuisnetwerk mogelijk te maken. Dat is echter voor de meeste mensen gewoon te vervelend en kost te veel moeite voor weinig winst. Bovendien stelt het je Raspberry Pi open voor brute-force-aanvallen, aangezien de SSH-poort nu wordt blootgesteld aan de wereld.
Het goede nieuws is dat er een gemakkelijkere en veiligere methode is - e-mail gewoon de opdrachten die u op uw Raspberry Pi wilt uitvoeren. Op deze manier heb je alleen een e-mailclient en een werkende internetverbinding op je Pi nodig. Geen logins en geen statische IP's. Bovendien werkt deze methode niet alleen met de Raspberry Pi, maar ook met elke Linux-distro waarop de Bash-shell en cURL zijn geïnstalleerd. Klinkt goed? Hier is wat je nodig hebt om het in te stellen:
Vereisten
- Een Raspberry Pi met een werkende internetverbinding.
- Een account op IFTTT.com.
- Een Dropbox-account.
Beginnen
Stel IFTTT-recept in
We zullen IFTTT gebruiken om opdrachten die per e-mail naar Dropbox worden gestuurd, te distribueren. Nadat u een IFTTT-account heeft aangemaakt, moet u de “Voer bash-opdrachten uit op Raspberry Pi via e-mail ”recept. Ga gewoon naar dit IFTTT-recept en klik op Toevoegen.
Dropbox Uploader instellen
Wij hebben nodig Dropbox Uploader - een opdrachtregelprogramma dat bestanden uit Dropbox kan uploaden, downloaden, weergeven of verwijderen. Hier is hoe je het instelt:
1. Op je Raspberry Pi, verkrijg de vereiste software krullen en wget. U heeft deze waarschijnlijk al geïnstalleerd, maar we zullen ze installeren voor het geval:
[sourcecode] sudo apt install wget curl [/ sourcecode]
2. Maak een map waar we het zullen opzetten. Hier heb ik een map gemaakt met de naam raspi_email
in mijn thuismap:
[broncode] mkdir ~ / raspi_email
cd ~ / raspi_email [/ broncode]
3. Pak de Dropbox Uploader-script van GitHub, en markeer het uitvoerbaar
[broncode] wget https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
chmod + x ./dropbox_uploader.sh[/sourcecode]
4. Rennen de dropbox_uploader.sh
script. Je zult een output als deze zien:
5. Nu moet je maak een Dropbox-app. Log in op Dropbox, ga naar deze URL, waar je een scherm ziet dat er als volgt uitziet:
6. Kies, net als in de afbeelding hierboven, eerst de Dropbox-API, selecteer vervolgens Volledige Dropbox in het type toegang dat nodig is. Tenslotte, Naam uw app wat u maar wilt.
7. Nadat uw nieuwe app is gemaakt, scrolt u omlaag naar het OAuth2 sectie, en klik op het Genereer knop om een toegangstoken te genereren. U ziet nu een gegenereerd toegangstoken waar het Genereer knop was. Kopieer dit token, plak het in uw terminal en druk op Enter
8. Naar controleer of uw account werkt, voer het commando uit ./dropbox_uploader.sh lijst
- je zou een lijst met de bestanden in je Dropbox-account moeten zien.
Raspi Runner instellen
Download op uw Raspberry Pi het Raspi Runner-script in de raspi_email
map die we eerder hebben gemaakt:
[broncode] cd ~ / raspi_email
wget https://raw.github.com/enkydu/Raspi_Runner/master/raspi_runner.sh[/sourcecode]
Maak het script uitvoerbaar, en voer het uit:
[broncode] chmod + x ./raspi_runner.sh
./raspi_runner.sh[/broncode]
U ziet nu een prompt zoals de afbeelding hieronder. Wanneer het script om het volledige pad naar uw Dropbox Uploader, voer het pad in aan jouw Huis directory (waarschijnlijk / home / pi /
), gevolgd door de naam van de map waarin u het dropbox_uploader.sh
script. Als je deze gids woord voor woord hebt gevolgd, kom je binnen / home / pi / raspi_email
hier.
Crontab instellen
Als de basis eenmaal op zijn plaats zit, is het noodzakelijk om plan de uitvoering van Raspi Runner. U kunt het bijvoorbeeld zo instellen dat er elke 5 minuten op e-mails wordt gecontroleerd crontab voor deze. Voer op je Raspberry Pi het volgende uit:
[broncode] crontab -e [/ broncode]
Voeg onder aan het bestand de volgende regel toe:
[sourcecode] * / 5 * * * * /home/pi/raspi_email/raspi_runner.sh> / dev / null 2> & 1 [/ sourcecode]
In het bovenstaande voorbeeld natuurlijk, vervangen pi met uw gebruikersnaam, en raspi_email met de map waarin u het raspi_runner.sh
script in. Sla nu uw crontab op.
Gebruik
Stuur gewoon een e-mail met de opdrachten die u op uw Pi wilt uitvoeren [email protected] van de e-mailadres dat u hebt gebruikt om uw IFTTT-account in te stellen. De hoofdtekst van de e-mail bevat de opdracht. U kunt elk gewenst onderwerp aan de e-mail toevoegen, maar het wordt aanbevolen om er een toe te voegen. In het volgende voorbeeld beveel ik mijn Raspberry Pi om afsluiten
Na de hoeveelheid vertraging die u in uw crontab, de raspi_runner.sh zal de opdracht in uw e-mail uitvoeren en uitvoeren.
ZIE OOK: Instellen en aan de slag gaan met Raspberry Pi 3 (startershandleiding)
Voer opdrachten op afstand uit op uw Raspberry Pi met IFTTT
Dus dit is hoe je IFTTT, Dropbox en wat opdrachtregelmagie kunt gebruiken om opdrachten op afstand uit te voeren op je Raspberry Pi. Zoals in het begin vermeld, werkt deze methode natuurlijk ook met elk Linux- of Unix-achtig systeem waarop de Bash-shell is geïnstalleerd.
Blijf ons volgen voor meer Raspberry Pi-tips en -trucs in de toekomst. Als je problemen hebt met het opzetten ervan, of als je een aantal van je eigen coole IFTTT-trucs met ons wilt delen, laat het ons dan weten in de comments hieronder.