Blog umgestellt von Serendipity auf WordPress…
Nach einigem hin und her mit <> …. ist nun wieder alles im Lot 😉
Das alte Blog ist vorerst unter http://old.baetmaen.de zu erreichen.
Server, Software und Basteleien
Blog umgestellt von Serendipity auf WordPress…
Nach einigem hin und her mit <> …. ist nun wieder alles im Lot 😉
Das alte Blog ist vorerst unter http://old.baetmaen.de zu erreichen.
Um die Daten aus einem p12 Container auszulösen, die folgenden Schritte ausführen:
openssl pkcs12 -clcerts -nokeys -in ZERTIFIKAT.P12 -out newfile.crt
openssl pkcs12 -nocerts -nodes -in ZERTIFIKAT.P12 -out newfile.key
Statt der Zeile:
pkcs12 ZERTIFIKAT.p12
benötigt man nun die folgenden 3 Zeilen:
ca cacert.pem cert newfile.crt key newfile.key
Die Passphrase die der p12 Datei beiligt wird so natürlich ausgehebelt (wird beim Openssl Export abgefragt)
Wikipedia zum Thema 1wire:
1-Wire bzw. One-Wire oder Eindraht-Bus beschreibt eine serielle Schnittstelle, die mit einer Datenader (DQ) auskommt, die sowohl als Stromversorgung als auch als Sende- und Empfangsleitung genutzt wird. Der Begriff 1-Wire ist irreführend, weil zudem noch eine Masse-Verbindung (GND) erforderlich ist. Diese Masseverbindung wird bei Knopf-förmigen Anordnungen über eine gegenseitige Isolation der Gehäusehälften erreicht. Tatsächlich werden immer zwei physikalische Leiterverbindungen benutzt (GND, DQ).
Verfügbar sind integrierte Bausteine zur Temperaturmessung, Akkuüberwachung, Echtzeituhr, kleine Speicher etc. Die Technik wurde zur Kommunikation zwischen den Komponenten eines Gerätes entwickelt, z. B. zur Erfassung des Akkuzustandes in einem mobilem Datenerfassungsgerät (PDA).
Durch owfs wird der 1wire Bus mittles Fuse als Dateibaum ansprechbar. Gemountet sieht das so aus:
# mount | grep 1wire
OWFS on /srv/1wire type fuse.OWFS (rw,nosuid,nodev)
# ls /srv/1wire/ -1
10.0A04E6010800
10.472701020800
10.89FFE5010800
10.E02D01020800
81.F6D42D000000
alarm
bus.0
settings
simultaneous
statistics
structure
system
uncached
Hier sind 10.0A04E6010800, 10.472701020800, 10.89FFE5010800 und 10.E02D01020800 die DS18S20 Temperatursensoren. Aktuell im Testbetrieb 2 innen, 2 außen. 81.F6D42D000000 ist der USB 1wire Adapter selbst.
Das folgende Script liest per cron jede Minute die 4 Temperaturwerte aus, updated eine RRD Datenbank/Grafiken und schreibt die 4 Werte in eine MySQL Datenbank (Teilweise von http://owfs.org/index.php?page=garden).
#!/bin/bash
for i in `cat /proc/mounts | cut -d' ' -f2`; do
if [ "/srv/1wire" = "$i" ]; then
echo "owfs mounted, starting...."
echo "reading sensors..."
# Read data from sensors
inside1=`cat /srv/1wire/10.89FFE5010800/temperature`
inside2=`cat /srv/1wire/10.0A04E6010800/temperature`
outside1=`cat /srv/1wire/10.472701020800/temperature`
outside2=`cat /srv/1wire/10.E02D01020800/temperature`
echo "format data..."
# Format reading
inside1=`echo $inside1 | cut -c -4`
inside2=`echo $inside2 | cut -c -4`
outside1=`echo $outside1 | cut -c -4`
outside2=`echo $outside2 | cut -c -4`
if ([ $inside1 == "0" ] && [$inside2 == "0"]); then
echo "update rrd..."
# Update database
rrdtool update database.rrd N:$inside1:$inside2:$outside1:$outside2
echo "update mysql..."
# Insert into mysql
mysql -h MYSQL_SERVER -u MYSQL_USER --password=MYSQL_PASSWORT 1wire <
CREATE TABLE IF NOT EXISTS `temperature` (
`idx` int(11) NOT NULL AUTO_INCREMENT,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`inside1` float NOT NULL,
`inside2` float NOT NULL,
`outside1` float NOT NULL,
`outside2` float NOT NULL,
PRIMARY KEY (`idx`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
Datenbankstruktur die im Beispiel verwendet wurde.
aptitude download PAKETNAME
dpkg --extract PAKETNAME.deb ZIELORDNER
Habe mir letzte Woche ein bash Skript zusammengebastelt um unseren VDR einmal täglich neu zu booten (diverse Timer sind ins leere gelaufen weil entweder das CI Modul oder das Alphacrypt Modul hingen). Also morgens um 6 täglich neu booten und vorher prüfen ob in den nächsten 5 Minuten ein Timer startet bzw. gerade aktiv ist:
!/bin/bash
# Inform user what will happen
/usr/bin/svdrpsend MESG "Daily Reboot, checking Timers...."
# Result is time until next timer starts in seconds, if result is negative, a recording is currenly made
nxttmr=`svdrpsend NEXT rel | egrep "^250" | cut -d ' ' -f3 | tr -d '\r'`
if [ $nxttmr -gt 300 ]; then
/usr/bin/svdrpsend MESG "Naechster Timer in $nxttmr sek. Daily Reboot in 10 sek..."
/bin/sleep 10
/usr/bin/sudo /sbin/shutdown -r now
else
/usr/bin/svdrpsend MESG "Naechster Timer in unter 300 sek oder gerade aktiv...Reboot abgebrochen :("
fi