#BashScript
Explore tagged Tumblr posts
Text
Wetterdaten mit XSLT visualisieren: Raspberry Pi & CronJob steuern Bash Script

In meinem letzten Beitrag habe ich gezeigt, wie man mit XSLT und Apache FOP aus Wetterdaten automatisch ein grafisches Dashboard generiert. Damit dieses Bild regelmäßig und automatisch erzeugt wird – zum Beispiel stündlich oder einmal täglich – eignet sich ein CronJob auf dem Raspberry Pi perfekt. In diesem Beitrag zeige ich dir, wie du mit einem Bash Script, einem passenden CronJob und deinem Raspberry Pi eine solche Automatisierung realisierst. https://youtu.be/wsOeFisDvNY
Was ist ein CronJob?
Ein CronJob ist ein zeitgesteuerter Task unter Unix/Linux-Systemen. Er erlaubt es dir, Skripte oder Programme zu festen Zeitpunkten automatisch auszuführen – zum Beispiel jeden Tag um 6 Uhr oder alle 15 Minuten. Das macht Cron zu einem perfekten Werkzeug für wiederkehrende Aufgaben wie das Generieren von Reports oder – in unserem Fall – das Erstellen eines Wetter-Dashboards. Aufbau eines CronJob-Patterns Ein CronJob besteht aus einem zeitlichen Ausdruck (Pattern) und dem Befehl, der ausgeführt werden soll. Das Pattern besteht aus fünf Feldern, die wie folgt interpretiert werden:
Aufbau eines CronJob-Patterns Beispiel: 0 6 * * * /home/pi/xml2weatherpng/templating/transform.sh → führt das Skript jeden Tag um 6:00 Uhr morgens aus. Zugriff auf die Crontab Um einen CronJob auf dem Raspberry Pi (oder einem anderen Linux-System) einzurichten, verwendet man die sogenannte Crontab – das ist die Konfigurationsdatei, in der geplante Aufgaben definiert werden. Du gelangst zur Crontab über das Terminal mit folgendem Befehl: crontab -e Beim ersten Aufruf wirst du möglicherweise aufgefordert, einen Editor auszuwählen (z. B. nano, vim, mcedit). Für Einsteiger empfiehlt sich nano, da er leicht zu bedienen ist.
CronTab - Auswahl des Editors Nach der Auswahl öffnet sich die Crontab-Datei im gewählten Editor. Hier kannst du neue Zeilen hinzufügen, um Jobs zeitgesteuert auszuführen.
CronTab im Editor Nano Beispiel für einen Eintrag: 0 * * * * /home/pi/wetterdashboard/transformXML2PNG.sh Dieser Job würde das Bash-Script stündlich zur vollen Stunde ausführen. Wichtig: - Jeder Benutzer hat seine eigene Crontab. Wenn du z. B. als pi angemeldet bist, gilt die Crontab nur für diesen Nutzer. - Der vollständige Pfad zur Datei ist zwingend notwendig. - Falls Umgebungsvariablen (wie PATH) im Script verwendet werden, empfiehlt es sich, diese im Script selbst korrekt zu setzen oder absolute Pfade zu verwenden.
Git Repository klonen ins Home-Verzeichnis
Öffne ein Terminal auf deinem Raspberry Pi. Wechsle in dein Home-Verzeichnis (optional, falls du nicht schon dort bist): cd ~ Klonen des Repositories: git clone https://github.com/StefanDraeger/xml2weatherpng.git
Nach dem Ausführen befindet sich das Repository unter: /home//xml2weatherpng Dort kannst du anschließend dein meteomatic_fetch.sh-Script ausführen oder für den CronJob hinterlegen.
Projekt xml2weatherpng auf dem Pi
Berechtigungen für meteomatics_fetch.sh setzen
Nachdem du das Repository mit git clone auf deinen Raspberry Pi geladen hast, fehlt dem Bash-Skript standardmäßig oft die Ausführungsberechtigung. Um das Skript ausführbar zu machen, musst du einmalig folgende Zeile ausführen: chmod +x meteomatics_fetch.sh Anschließend lässt sich das Skript wie gewohnt starten:
Hier ist ein passender Abschnitt für deinen Blogbeitrag, in dem du erklärst, wie FOP auf dem Raspberry Pi heruntergeladen und entpackt wird:
Apache FOP auf dem Raspberry Pi installieren
Damit das Bash-Skript später aus den XML- und XSL-Dateien eine PNG-Datei erzeugen kann, benötigen wir Apache FOP. Dieses Tool kannst du direkt mit wget herunterladen: wget --content-disposition https://www.apache.org/dyn/closer.cgi?filename=/xmlgraphics/fop/binaries/fop-2.11-bin.zip -O fop-2.11-bin.zip
Apache FOP download mit wget Anschließend entpackst du das ZIP-Archiv mit: unzip fop-2.11-bin.zip Anschließend muss der Ordner fop im entpackten Verzeichniss fop-2.11 eine Ebene nach oben verschoben werden (oder man passt alternativ die Pfade in den Bash Scripts an): cd fop-2.11 mv fop ../
verschieben des Ordners fop auf dem Pi Java JDK installieren Bevor Apache FOP auf dem Raspberry Pi genutzt werden kann, muss eine Java-Laufzeitumgebung installiert werden. Apache FOP basiert auf Java und benötigt daher ein entsprechendes JDK (Java Development Kit). 1. System aktualisieren Es empfiehlt sich, das System vor der Installation zu aktualisieren, um sicherzustellen, dass alle Paketquellen aktuell sind: sudo apt-get update sudo apt-get upgrade 2. OpenJDK installieren Anschließend installierst du das OpenJDK – die freie Referenzimplementierung von Java: sudo apt install default-jdk
install default-jdk auf Pi Dabei wird aktuell (Stand Juni 2025) OpenJDK 17.0.15 installiert, was vollständig kompatibel mit Apache FOP ist. 3. Version prüfen Ob die Installation erfolgreich war, kannst du mit folgendem Befehl prüfen: java -version
installiertes Open JDK 17 auf dem Pi Mit einem aktuellen und funktionierenden Java-Setup kannst du im nächsten Schritt Apache FOP herunterladen und einsetzen. Wetterdaten abrufen und PNG erzeugen Sobald Apache FOP korrekt eingerichtet und das Java JDK installiert ist, kann das vorbereitete Bash-Script ausgeführt werden. Dieses ruft die Wetterdaten im XML-Format von Meteomatics ab und erzeugt daraus mithilfe von XSLT und FOP eine PNG-Grafik für das ePaper-Display. Führe dazu einfach folgenden Befehl aus: ./fetch_weatherdata.sh Das Script erledigt automatisch folgende Schritte: - Download der aktuellen Wetterdaten (im XML-Format) - Transformation per XSLT in ein XSL-FO-Dokument - Generierung des fertigen PNG-Bildes mit Apache FOP Das Ergebnis findest du anschließend im Verzeichnis output/ – z. B.: output/forecast.png Dieses Bild kann dann direkt auf einem Display dargestellt oder weiterverwendet werden.
abrufen der Wetterdaten sowie transformieren der XML Datei in ein PNG mit Apache FOP
Bereitstellung des PNG-Bildes über einen HTTP-Server
Da sich das erzeugte Bild nun lokal auf dem Raspberry Pi befindet, muss es über einen HTTP-Server bereitgestellt werden, damit beispielsweise ein ESP32-ePaper-Display es abrufen und darstellen kann.
Bild vom Raspberry PI im Browser Ein einfacher Weg ist die Nutzung von Python, da auf den meisten Systemen bereits eine Python-Installation vorhanden ist: cd output/ python3 -m http.server 8080 Dieser Befehl startet einen kleinen lokalen Webserver auf Port 8080, der das aktuelle Verzeichnis (output/) bereitstellt. Das PNG-Bild kann dann über folgende URL abgerufen werden: http://:8080/forecast.png Ersetze durch die tatsächliche IP deines Raspberry Pis im Netzwerk. Diese findest du mit dem Befehl: hostname -I HTTP-Server automatisch starten mit tmux und CronJob Im vorherigen Abschnitt habe ich gezeigt, wie man mit python3 -m http.server schnell und unkompliziert das generierte Wetterbild im Netzwerk verfügbar macht. Doch nach einem Neustart des Raspberry Pi ist der Server wieder beendet – das ist natürlich nicht gewünscht. Um sicherzustellen, dass der HTTP-Server automatisch beim Systemstart gestartet wird, nutzen wir eine Kombination aus: - dem Terminal-Multiplexer tmux, der den Serverprozess im Hintergrund dauerhaft laufen lässt, - einem CronJob mit @reboot, der die tmux-Sitzung beim Hochfahren automatisch startet. Schritt 1: Webserver-Befehl in tmux starten (manuell testen) Du kannst testen, ob der Server wie gewünscht läuft: tmux new -s webserver 'cd ~/xml2weatherpng/output && python3 -m http.server 8080' Schritt 2: Automatischen Start per CronJob konfigurieren Öffne die Crontab deines Benutzers: crontab -e Füge am Ende folgende Zeile hinzu: @reboot tmux new -d -s webserver 'cd /home//xml2weatherpng/output && python3 -m http.server 8080' 🔁 Der Parameter -d sorgt dafür, dass tmux die Sitzung im Hintergrund startet – du musst dich also nicht einloggen. Ergebnis Nach einem Neustart des Raspberry Pi wird der kleine Webserver automatisch gestartet und stellt das aktuelle PNG bereit – ganz ohne manuelles Zutun. Read the full article
0 notes
Text
استعراض بعض أمثلة Bash Script لتعلم تقنيات برمجة Linux بسهولة
Bash Script هو ملف نصي يحتوي على أوامر Bash. Bash هو مُفسِّر سطر أوامر قياسي في أنظمة التشغيل Linux و Unix. يُستخدم Bash Script لتشغيل أوامر Bash تلقائيًا. ��حيث يُمكن استخدامه لأتمتة المهام أو إنشاء تطبيقات بسيطة. تُعد ملفات Bash Script إحدى الطرق الأكثر شيوعًا والتي يُمكن الوصول إليها لبرمجة الكمبيوتر الذي يعمل بنظام Linux. ستُساعدك الأمثلة البسيطة هذه على فهم العملية وتعريفك بأساسيات Bash Script. يُعتبر استخدام Bash Script أمرًا حيويًا للتحكم في العمليات وتحسين فعالية البرمجة. يقدم هذا المقال نظرة شاملة على مجموعة من أمثلة Bash Script التي تُساعدك على استكشاف وفهم البرمجة في بيئة Linux بسهولة. تحقق من مُقارنة بين Zsh و Bash: اختيار واجهة الأوامر (Shell) المُناسبة للبرمجة وإدارة النصوص. Read the full article
0 notes
Text
How to Keep Docker Containers Updated
How to Keep Docker Containers Updated #vmwarecommunities #docker #containers #kubernetes #containerizedapps @portainerio @NeilC_Portainer #dockercompose #appstacks #bashscript #watchtowerdocker
If you are running more and more Docker containers, and I see many in-home labs and business environments that are doing just that, one of the challenges that you will note when you start running containers at scale across many Docker hosts is lifecycle management. Keeping your containers updated is a necessity for security and keeping updated with the latest features. Let’s look at three ways…
0 notes
Text
Headshot Commission Bashscript
0 notes
Photo

What tools do you use to track your todo lists in your projects? Using text files and an editor? . I use and like #taskwarrior. The problem with taskwarrior was that I couldn't commit stuff in the #git repository. So, I made a #bashscript named gtask that uses the .task and .taskrc config files while you're in the git directory. . So if you are in a git directory and there's a .task or .taskrc file in it, gtask uses those configurations, otherwise, it uses the default configurations. . Now I can track my todo lists and also have the whole taskwarrior power in my hand. . . #coding #coder #dev #devlife #programming #programmer #tech #tehnology #techie #codinglife #lifeofacoder #todo #todolist https://www.instagram.com/p/ByxftxmAi6f/?igshid=14pul69vlyy2r
#taskwarrior#git#bashscript#coding#coder#dev#devlife#programming#programmer#tech#tehnology#techie#codinglife#lifeofacoder#todo#todolist
29 notes
·
View notes
Link
#rootkit#rkhunter#rootkithunter#securitymonitoringtool#securitytool#opensource#bashscript#scanmalware#linux#linuxsecurity#hostnextra#scanrootkit
0 notes
Video
#np "Love Nwantiti (Ah Ah Ah)" by @ckay_yo == #programmer #ubuntu #github #technology #pythoncode #pythonprogramming #computer #git #python #android #programmerslife #design #automatingstuff #bashscript #scripting ##triphopmusic #synthesizer #esotericmusic #organichouse #lofiaesthetic #lofibeats #darkambient #experimentalmusic #chillmusic #lofihiphop #chillwave #postrock #triphop #ambientmusic #instrumental #downtempomusic #beat #electro #downtempo #chilloutmusic #chillhop #chillbeats #meditationmusic #nctrnm #indiedance #soundscape #atmosphericmusic #esotericart #housemusic #chillstep https://www.instagram.com/p/CEQImHIDaIc/?igshid=1274sk486mj1h
#np#programmer#ubuntu#github#technology#pythoncode#pythonprogramming#computer#git#python#android#programmerslife#design#automatingstuff#bashscript#scripting#triphopmusic#synthesizer#esotericmusic#organichouse#lofiaesthetic#lofibeats#darkambient#experimentalmusic#chillmusic#lofihiphop#chillwave#postrock#triphop#ambientmusic
0 notes
Photo

View Package info @bernadsuper #linux #bashshell #ternaryoperator #ternary #cprogramming #shellscript #programminglife #coderlife #linuxtips #linuxshell #bashscript #linuxterminal #linuxkernel #opensource #gnulinux #kalilinux #pentest #techtips #techtutorials #linuxtutorial #unix #sysadmin #linuxadmin #devopsengineer #devopslife #commandline #dennisritchie #linustorvalds #computersciencemajor #linuxuser (at DKI Jakarta) https://www.instagram.com/p/CAF5IttBkaZ/?igshid=i2b70y5x9c7z
#linux#bashshell#ternaryoperator#ternary#cprogramming#shellscript#programminglife#coderlife#linuxtips#linuxshell#bashscript#linuxterminal#linuxkernel#opensource#gnulinux#kalilinux#pentest#techtips#techtutorials#linuxtutorial#unix#sysadmin#linuxadmin#devopsengineer#devopslife#commandline#dennisritchie#linustorvalds#computersciencemajor#linuxuser
0 notes
Photo

The Power of Automation #bruteforce #hacking #bashscript #willinspireus https://www.instagram.com/p/B5JucIkA8vZ/?igshid=181hev4s612ly
0 notes
Link

0 notes
Text
Bheem - Bash-Scripts Which Runs Iteratively To Carry Out Various Tools
Bheem - Bash-Scripts Which Runs Iteratively To Carry Out Various Tools #BashScripts #Bheem #Carry #COLLECTION
Project Bheem is a simple collection of small bash-scripts which runs iteratively to carry out various tools and recon process & store output in an organized way. This project was created initially for automation of Recon for personal usage and was never meant to be public as there is nothing fancy about it but due to request by community, Project Bheem is now Public. Please feel free to improve…
View On WordPress
#BashScripts#Bheem#Carry#COLLECTION#Discovery#Iteratively#Port scanning#process#recon#Runs#Scanner#Scanning#Simple#Small#Subdomain Enumeration#Tools
0 notes
Photo

I know I wrote an script that does the same thing before but I'm not sure where I put it, so here I am writing the same script. It's converting my videos as I'm typing right now. #bashscript is the best weapon a programmer can have in his pocket. It's one of the reasons I prefer *nix operating systems. . . . #code #script #coding #bash #programming #techie #linux #tech #technology #ffmpeg #coder #vim #terminal #computer #cse #computersience #science #music #video #musicvideo https://www.instagram.com/p/Bt_6H-Zhe2X/?utm_source=ig_tumblr_share&igshid=amfljqzn49pf
#bashscript#code#script#coding#bash#programming#techie#linux#tech#technology#ffmpeg#coder#vim#terminal#computer#cse#computersience#science#music#video#musicvideo
15 notes
·
View notes
Photo

May pa-award ang Department ko! 💪🏻👍👏🏻😇🤣😍💚 #awardee #eliteteam #unixmaster #bashscripting #nambawan #innovationaward #corevalue #senioranalyst #technicalstuff https://www.instagram.com/p/BwpSJ_CHHBNXM6glhUwf-ygOpfdF2RPX3-CMAk0/?utm_source=ig_tumblr_share&igshid=1sihipbu06vz0
#awardee#eliteteam#unixmaster#bashscripting#nambawan#innovationaward#corevalue#senioranalyst#technicalstuff
0 notes
Photo

Data Theft As A Service Lets Hackers Rob Your Data For Hardly $10
https://www.abservetech.com/blog/data-theft-hackers-rob-data-for-10dollars/
#Hackers #Data #Rob #Hack #Theft #DataTheft #Dollars #Bleeping #BleepingComputer #DarkUtilities #CiscoTalos #BashScript #Cyber #CyberAttacks #HackingServices #abs #Abservetech
0 notes
Text
Btop++ Systemmonitor
Systemmonitore gibt es einige unter Linux. Neben top fallen mir gerade htop, gtop, vtop, atop und glances ein. Kürzlich habe ich btop++ entdeckt und nutze es seitdem anstelle von htop. Das Tool hat bereits einige Häutungen hinter sich. Begonnen hat es als bashtop und war, wie kann es anders sein, ein Bashscript. Bekannter war dann bpytop, eine Umsetzung in Python, die ich aber optisch als zu überladen empfand ...
https://linuxnews.de/2022/03/btop-systemmonitor/
sudo snap install btop
0 notes
Photo

Byp4Xx – Bypass 403 Forbidden Messages With Well-Known Methods | MrHacker.Co #bash #bashscript #bugbountytips #byp4xx #bypass #hacker #hacking #cybersecurity #hackers #linux #ethicalhacking #programming #security #mrhacker
0 notes