Mac Mini M4: Unterschied zwischen den Versionen

Aus WIKI
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 11: Zeile 11:


= Sensordaten versenden =
= Sensordaten versenden =
* Dafür hab ich ein script unter "bin" abgelegt
* Dafür hab ich ein script unter "bin" abgelegt
<pre>
#!/bin/bash
Uuid=`hostname`
Load10m=`uptime | cut -f2 -d"g" | cut -f2 -d":" | cut -f3 -d" "`
Load15m=`uptime | cut -f2 -d"g" | cut -f2 -d":" | cut -f4 -d" "`
Load1m=`uptime | cut -f2 -d"g" | cut -f2 -d":" | cut -f2 -d" "`
Processes=`ps hax|wc -l`
Users=`who | cut -f 1 -d ' ' | sort | wc -l`
JsonLoad10m={\"value_type\":\""load 10 min"\",\"value\":\"$Load10m\"}
JsonLoad15m={\"value_type\":\""load 15 min"\",\"value\":\"$Load15m\"}
JsonLoad1m={\"value_type\":\""load 1 min"\",\"value\":\"$Load1m\"}
JsonProcesses={\"value_type\":\""Processes"\",\"value\":\"$Processes\"}
JsonUsers={\"value_type\":\""Users"\",\"value\":\"$Users\"}
Json={\"software_version\":\"1\",\"uuid\":\"$Uuid\",\"sensordatavalues\":[$JsonLoad1m,$JsonLoad10m,$JsonLoad15m,$JsonProcesses,$JsonUsers]}
#echo $Json
/usr/bin/curl --silent -H "Content-Type: application/json" -X POST -d "$Json" -u <sensor_name>:<sensor_passwort> <sensor_server_url> > /dev/null
</pre>
* Datei <code>send.semnsor.data.plist</code> unter <code>/Library/LaunchDaemons</code> mit dem folgenden Inhalt angelegt:
* Datei <code>send.semnsor.data.plist</code> unter <code>/Library/LaunchDaemons</code> mit dem folgenden Inhalt angelegt:
<pre>
<pre>
Zeile 37: Zeile 58:
</plist>
</plist>
</pre>
</pre>
* Rechte setzen:
 
* Rechte setzen
<pre>
<pre>
sudo chown root:wheel /Library/LaunchDaemons/send.semnsor.data.plist
sudo chown root:wheel /Library/LaunchDaemons/send.semnsor.data.plist
sudo chmod 644 /Library/LaunchDaemons/send.semnsor.data.plist
sudo chmod 644 /Library/LaunchDaemons/send.semnsor.data.plist
</pre>
</pre>
* Job starten:
 
* Job starten
<pre>
<pre>
sudo launchctl load /Library/LaunchDaemons/send.semnsor.data.plist
sudo launchctl load /Library/LaunchDaemons/send.semnsor.data.plist
</pre>
</pre>
* Im ersten versuch hatte ich es mit einem Cronjob versucht, aber das hatte nur zuverlässig funktioniert wenn ein Benutzer angemeldet war...
* Im ersten versuch hatte ich es mit einem Cronjob versucht, aber das hatte nur zuverlässig funktioniert wenn ein Benutzer angemeldet war...
** das sript wird via cronjob ausgeführt
** das sript wird via cronjob ausgeführt

Version vom 16. November 2025, 05:56 Uhr

Was möchte ich haben:

  1. Externe Festplatte anbinden
  2. Ich möchte Sensor-daten versenden
  3. Ich möchte einen Docker container laufen lassen


Externe Festplatte anbinden

Externes Laufwerk automatisch einbinden lassen
sudo defaults write /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin -bool true

Sensordaten versenden

  • Dafür hab ich ein script unter "bin" abgelegt
#!/bin/bash
Uuid=`hostname`
Load10m=`uptime | cut -f2 -d"g" | cut -f2 -d":" | cut -f3 -d" "`
Load15m=`uptime | cut -f2 -d"g" | cut -f2 -d":" | cut -f4 -d" "`
Load1m=`uptime | cut -f2 -d"g" | cut -f2 -d":" | cut -f2 -d" "`
Processes=`ps hax|wc -l`
Users=`who | cut -f 1 -d ' ' | sort | wc -l`

JsonLoad10m={\"value_type\":\""load 10 min"\",\"value\":\"$Load10m\"}
JsonLoad15m={\"value_type\":\""load 15 min"\",\"value\":\"$Load15m\"}
JsonLoad1m={\"value_type\":\""load 1 min"\",\"value\":\"$Load1m\"}
JsonProcesses={\"value_type\":\""Processes"\",\"value\":\"$Processes\"}
JsonUsers={\"value_type\":\""Users"\",\"value\":\"$Users\"}

Json={\"software_version\":\"1\",\"uuid\":\"$Uuid\",\"sensordatavalues\":[$JsonLoad1m,$JsonLoad10m,$JsonLoad15m,$JsonProcesses,$JsonUsers]}
#echo $Json
/usr/bin/curl --silent -H "Content-Type: application/json" -X POST -d "$Json" -u <sensor_name>:<sensor_passwort> <sensor_server_url> > /dev/null
  • Datei send.semnsor.data.plist unter /Library/LaunchDaemons mit dem folgenden Inhalt angelegt:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>send.semnsor.data</string>

    <key>ProgramArguments</key>
    <array>
        <string>/Users/DEINUSER/bin/sendsensordata.sh</string>
    </array>

    <key>StartInterval</key>
    <integer>120</integer> <!-- alle 2 Minuten -->

    <key>StandardErrorPath</key>
    <string>/tmp/send.semnsor.data.err</string>

    <key>StandardOutPath</key>
    <string>/tmp/send.semnsor.data.out</string>
</dict>
</plist>
  • Rechte setzen
sudo chown root:wheel /Library/LaunchDaemons/send.semnsor.data.plist
sudo chmod 644 /Library/LaunchDaemons/send.semnsor.data.plist
  • Job starten
sudo launchctl load /Library/LaunchDaemons/send.semnsor.data.plist
  • Im ersten versuch hatte ich es mit einem Cronjob versucht, aber das hatte nur zuverlässig funktioniert wenn ein Benutzer angemeldet war...
    • das sript wird via cronjob ausgeführt
    • conjob kann mit crontab -e angelegt werden
    • mit export EDITOR=nano kann man den default editor auf nano umstellen

Docker

Colima

  • Installation via brew: brew install colima
  • Start: colina start
  • Informationen: colima ls
    
PROFILE    STATUS     ARCH       CPUS    MEMORY    DISK      RUNTIME    ADDRESS
default    Running    aarch64    2       2GiB      100GiB    docker
  • Startparameter:
-c, --cpus int                    number of CPUs (default 2)
-d, --disk int                    disk size in GiB (default 100)
-m, --memory float32              memory in GiB (default 2)