K.inc Tec Blog

Mein kleines EDV Logbuch

Page 3 of 23

Linsensuppe

Hmm ich weiss nicht die mengen genau, aber so ca 200, 250 gram linsen, 2 mittel bis größe Karotten und min 2 Stange Selerie. Abhängig von linsen, einige muss man mehrere stunden einweichen…..dan zwiebeln und knobi karotte und selerie im öl anbraten….zu letzt linsen rein wasser bis zum ende linsen und 40min kochen….das ist für braune linsen, rote passen nicht gut…salz pfeffer ca….und am.ende mit balsamiko im teller geniessen🙂

Kartoffelgratin

https://www.chefkoch.de/rezepte/837601188560864/Kartoffelgratin.html?portionen=4

1.000 g Kartoffeln, vorwiegend festkochend
¼ Liter Milch
¼ Liter Rahm (süße Sahne)
2 Knoblauchzehe(n)
Salz und Pfeffer
Rosmarin
Butter für die Form
6 EL Käse, frisch geriebener (z. B. Parmesan oder Pecorino)

Zubereitung

Die Kartoffeln schälen und in dünne Scheiben (ca. 2 mm) schneiden.

Milch und Rahm vermischen, Knoblauch fein gehackt oder gepresst dazugeben. Etwas Salz und Pfeffer sowie Rosmarin beifügen und mit den Kartoffelscheiben sanft aufkochen lassen, dann unter häufigem vorsichtigem Rühren ca. 10 Minuten köcheln lassen.

Eine Auflaufform mit Butter ausstreichen, die Kartoffelmasse einfüllen und mit Käse bestreuen.

Im vorgeheizten Ofen bei 220 °C Ober-/Unterhitze ca. 15 – 20 Minuten überbacken.

Okroschka

https://www.chefkoch.de/rezepte/2060241333351072/Die-beste-Okroschka-nach-Mamas-Rezept.html

Zutaten

1 Ring/e Fleischwurst (Geflügel-), fein gewürfelt
6 m.-große Kartoffel(n), gekocht und gewürfelt
5 Ei(er), gekocht und gewürfelt
1 Bund Radieschen, geraspelt
1 Gurke(n), geraspelt
½ Bund Petersilie, fein gehackt
½ Bund Dill, fein gehackt
3 Frühlingszwiebel(n), in feine Ringe geschnitten
1 Becher Schmand
1 Becher saure Sahne
1 Becher Buttermilch
1 EL, gestr. Senf
etwas Zitronensaft
1 ½ Liter Mineralwasser, mit Kohlensäure, gekühlt
Salz und Pfeffer

Zubereitung

Die Kartoffeln gar und die Eier hart kochen und richtig abkühlen lassen. Oft mache ich das schon am Vortag.
Die Geflügelfleischwurst, das Gemüse und die Kräuter wie oben beschrieben würfeln bzw. raspeln. Dabei genau daran halten, ob gewürfelt oder geraspelt, das macht meines Erachtens nach sehr viel aus.
Alle Zutaten in eine große Schüssel oder einen großen Topf (auf jeden Fall mit Deckel) geben und Schmand, saure Sahne und Buttermilch, Senf und Zitronensaft dazugeben und vorsichtig umrühren. Dann mit dem kalten Mineralwasser aufgießen, bis die gewünschte Dicke erreicht ist. Eine 1,5 l Flasche braucht man dabei mindestens, meist werden es 2 l. Am Ende dann mit Salz und Pfeffer abschmecken.
Am besten schmeckt die Suppe, wenn sie einige Stunden gut durchgezogen ist und am zweiten Tag sowieso am besten. Sie ist gut 3 Tage im Kühlschrank haltbar und die beste Lösung für heiße Sommertage. Sehr erfrischend, vor allem, da man so viel Flüssigkeit zu sich nimmt. Vegetarier können die Fleischwurst einfach weglassen.

Das Rezept kenne ich so, seit ich klein bin von meiner Mama und es ist seitdem absolutes Lieblingsessen.
Richtig ausgesprochen wird der Name der Suppe „Akroschka“.

Powershell als Systembenutzer ausführen

Das Ausführen von Powershell Befehlen mit dem Systemkonto erreicht man am besten mit PsExec aus der Sysinternals Suite, die inzwischen zu Microsoft gehört:

Start-Process -FilePath cmd.exe -Verb Runas -ArgumentList ‘/k C:\tools\PsExec.exe -i -s powershell.exe’

https://www.heise.de/download/product/sysinternals-suite-48696

Nginx unter MotionEyeOS installieren

Nginx von Raspbian kopieren

https://wiki.satria.de/index.php?title=MotionEyeOS

Da MotionEyeOs gut gegen Schreibzugriffe gesichert ist und auch kein apt nutzt, muss man etwas kreativ werden. Glücklicherweise ist Nginx nur ein kleines Paket und kann leicht von Raspbian kopiert werden.

Folgende Dateien werden benötigt:

/etc/nginx/nginx.conf
/etc/nginx/*
/usr/lib/libpcre.so.3.13.3 plus Symlink auf /usr/lib/libpcre.so.3
/usr/sbin/nginx
/var/lib/nginx/ (Ordner muss nur angelegt werden. Berechtigung muss für www-data vergeben werden, damit nginx dort temporäre Dateien speichern kann. Mit chown www-data:root /var/lib/nginx/)
/var/log/nginx/ (Ordner muss nur angelegt werden)

Schreibzugriff auf das Dateisystem

Dateisystem:

mount -o remount,rw / 

Bootpartition:

mount -o remount,rw /boot

Nginx Konfiguration

server {
  listen 80;
  listen [::]:80;

  listen              443 ssl;
  ssl_certificate     /etc/nginx/ssl/example.crt;
  ssl_certificate_key /etc/nginx/ssl/example.key;
  ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers         HIGH:!aNULL:!MD5;

  server_name example.com;

  location / {
      proxy_pass http://localhost:8080/;
      proxy_cache off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
  }
}

SSL Zertifikat mit OpenSSL erzeugen

Siehe OpenSSL Befehlsübersicht

Init.d Script anlegen

Das mit Raspbian gelieferte Bootscript ist zu komplex, daher nutzen wir für MotionEyeOs das folgende.

/etc/init.d/S89nginx

case "$1" in
  start)
    echo Starting nginx...
    /usr/sbin/nginx
    ;;
  stop)
    echo Terminating all nginx instances...
    killall nginx
    ;;
  *)
    echo "Usage: /etc/init.d/nginx {start|stop}"
    exit 1
    ;;
esac

exit 0

Linux IP Änderung an E-Mail senden via Python Script

#!/usr/bin/env python2
import os
import urllib2
import smtplib
import time

from datetime import datetime
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

site= "https://api.ipify.org"
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
       'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
       'Accept-Encoding': 'none',
       'Accept-Language': 'en-US,en;q=0.8',
       'Connection': 'keep-alive'}

req = urllib2.Request(site, headers=hdr)

current_ip = ""

while (True):
        fqn = os.uname()[1]
        external_ip = urllib2.urlopen(req).read()

        #print(external_ip)
        if current_ip != external_ip:
                current_ip = external_ip
                fromaddr = "FROMADDR"
                toaddr = "TOADDR"
                msg = MIMEMultipart()
                msg['From'] = fromaddr
                msg['To'] = toaddr
                msg['Subject'] = "IP Address change"
                body = 'A new IP has been detected: %s' % str(external_ip)
                msg.attach(MIMEText(body, 'plain'))
                server = smtplib.SMTP('mail.domain.de', 587)
                server.starttls()
                server.login(fromaddr, "Passwort")
                text = msg.as_string()
                server.sendmail(fromaddr, toaddr, text)
                server.quit()
        time.sleep(600)

Nginx als ReverseProxy

Basiskonfiguration

server {
  listen 80;
  listen [::]:80;

  server_name example.com;

  location / {
      proxy_pass http://localhost:8080/;
  }
}

SSL

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.crt;
    ssl_certificate_key www.example.com.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ...
}

Websockets

https://www.nginx.com/blog/websocket-nginx/

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;

Linux Zeitzone ändern

Die Systemzeit wird konfiguriert, indem der Symlink /etc/localtime gegen eine Binärdatei mit dem Zeitzonen-Indentifier im Verzeichnis /usr/share/zoneinfo erzeugt wird. Also einfach auf eine andere Datei linken.

Initd startup script template

Folgendes Template nehme ich normalerweise als Vorlage für ein Initd Script. Habe das irgendwann mal so im Internet gefunden, weiß nicht mehr genau wo. Dürfte selbsterklärend sein.

#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....

# Source function library.
. /etc/init.d/functions

start() {
    # code to start app comes here 
    # example: daemon program_name &
}

stop() {
    # code to stop app comes here 
    # example: killproc program_name
}

case "$1" in 
    start)
       start
       ;;
    stop)
       stop
       ;;
    restart)
       stop
       start
       ;;
    status)
       # code to check status of app comes here 
       # example: status program_name
       ;;
    *)
       echo "Usage: $0 {start|stop|status|restart}"
esac

exit 0 

The format is pretty standard and you can view existing scripts in /etc/init.d. You can then use the script like so /etc/init.d/myscript start or chkconfig myscript start. The ckconfig man page explains the header of the script:

 > This says that the script should be started in levels 2,  3,  4, and
 > 5, that its start priority should be 20, and that its stop priority
 > should be 80.

The example start, stop and status code uses helper functions defined in /etc/init.d/functions

  1. Enable the script $ chkconfig --add myscript $ chkconfig --level 2345 myscript on
  2. Check the script is indeed enabled – you should see „on“ for the levels you selected. $ chkconfig --list | grep myscript

MariaDB installieren

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

© 2016 kinc.de