Linux Mint 18 : Pulse Audio aufzeichen

Mit diesem Skript ist es möglich eine beliebige Quelle von Pulse Audio aufzuzeichnen.
Ich habe das Skript unter Linux Mint 18 erstellt und getestet.
Es müssen die vorbis-tools installiert sein dies kann so erledigt werden !
apt-get install vorbis-tools
Hier das Skript :
#!/bin/bash
RED=$(tput setaf 1)
YELLOW=$(tput setaf 3)
WHITE=$(tput setaf 7)
NORMAL=$(tput sgr0)
if [[ ${#} -lt 1 ]]
	then
		echo ""
		echo ""
		echo "${WHITE}Bitte den PulseAudio Index angeben !!"
		count=$(pacmd list-sink-inputs | grep -E 'index:' | wc -l)
		if (( $count > 0 ));then
			echo "${YELLOW}_____________________________________________________________________"		    
			echo ""
			echo "Alle Pulseaudio Sinks werden angezeigt"
			echo "_____________________________________________________________________${RED}"
		    echo ""
			pacmd list-sink-inputs | grep -E 'index:|client:'
			echo "${YELLOW}_____________________________________________________________________"
		else
			echo "${YELLOW}_____________________________________________________________________"
		    echo ""
			echo " Wenn keine Musik läuft kann kein Sink ermittelt werden"
			echo "_____________________________________________________________________${NORMAL}"
		    echo "Bitte Skript neu starten NACHDEM die Musik gestartet wurde !"
			exit 1
		fi
		echo -n "Bitte den Index wählen : "
		read inp0
		INDEX=$inp0
	else
		INDEX=$1
	fi
if [[ ${#} -lt 2 ]]
	then
		echo "${WHITE}Bitte den Zielpfad & Namen angeben OHNE LEERZEICHEN mit ogg am Ende !${NORMAL}"
		read inp1
		FILE="$inp1"
	else
		FILE="$2"
	fi
pactl load-module module-null-sink sink_name=steam
pactl move-sink-input $INDEX steam
parec -d steam.monitor | oggenc -b 192 -o $FILE --raw -


pdftk : bearbeiten von PDF Dateien

Es gibt zwar schon tausende von Einträge zu diesem Thema dennoch schreibe ich jetzt mal was zu pdftk was mir in der Shell immer gute Dienste leistet. Ich hatte gerade wieder die Anforderung eine PDF zu verkleinern und zu drehen, sicher man könnte sich irgendeine GUI Sache auf die Kiste laden die das macht, aber warum es gibt doch pdftk ;-)

Hier kann man pdftk für Windows downloaden , bei Linux ist PDFTk meist über Repository verfügbar.

Debian
apt-get install pdftk

OpenSuse
zypper install pdftk


Beispiele :

Seiten drehen mit pdftk von Seite 1 bis Ende um 90°
pdftk input.pdf cat 1-endwest output out.pdf


Seiten drehen mit pdftk von Seite 1 bis 3 90° drehen den Rest so mit rein
pdftk input.pdf cat 1-3west 3-end output out.pdf


Seiten um 180° drehen
pdftk input.pdf cat 1-endsouth output out.pdf


Wie man Formulare ausfüllt habe ich hier erklärt : PDFtk - PDF Formulare automatisch befüllen

Mehr Informationen zu pdftk : pdftk - cli examples

Nextcloud 11 : Anlegen von Benutzern über Script

Erstellt und getestet wurde das ganze unter Nextcloud 11, sollte aber auch mit der Owncloud funktionieren.

Problem : Wir setzten hier produktiv eine Nextcloud ein, es kommt immer wieder vor das ich einige Benutzer für Kunden oder Projekte anlegen muss. Hier ist das dann immer gleich eine Gruppe von 10 - 20 Usern. Um mir das Leben zu erleichtern habe ich ein kleines Skript geschrieben das mir eine Textdatei ausliest und Benutzer anlegt.

Lösung : Als erstes muss eine Textdatei mit den ganzen Benutzern angelegt werden. Eine Zeile = ein Benutzer. z.B. users.txt
Vorname Nachname;v.nachname;Gruppe
Vorname Nachname1;v.nachname1;Gruppe1
Vorname Nachname2;v.nachname2;Gruppe2
Auf dem System muss pwgen installiert sein. Kann unter debian mit dem Befehl installiert werden.
apt-get install pwgen
Natürlich müssen alle Variablen im Skript eurem Server angepasst werden.

Dieses Skript erstellen und ausführbar (chmod u+x skriptname) machen.
#!/bin/bash
var_datum=$(date +"%Y%m%d")
var_user_file="users.txt"
var_apache_user=www-data
var_path_nextcloud=/var/www/cloud
var_result_file="${var_datum}_user_create.txt"
while read -r line
do
var_password=$(pwgen 12 -c -n -N 1)
set -e
export OC_PASS=$var_password
var_username=$(echo "${line}" | cut -d";" -f2)
var_name=$(echo "${line}" | cut -d";" -f1)
var_group=$(echo "${line}" | cut -d";" -f3)
su -s /bin/sh ${var_apache_user} -c "php ${var_path_nextcloud}/occ user:add ${var_username} --password-from-env --group='${var_group}' --display-name='${var_name}'"
echo "Benutzer ${var_username} wurde mit Passwort ${var_password} erstellt" >> "${var_result_file}"
done < $var_user_file
Wenn alles funktioniert hat müsste ein Output kommen der ca. so aussieht.

erstellen mehrer Benutzer in Nextcloud
Im Screenshot habe ich auch nochmal den Aufbau für die Demo mit cat ausgegeben. (Zeile 2)

Danach findet ihr eine Datei DATUM_users_created.txt in der alle Benutzer mit Password aufgeführt sind.

Leider ist es noch nicht möglich (Stand 03/17) Benutzer mit E-Mail Adresse zu hinterlegen hier muss dann entweder noch ein sql query abgefeuert werden oder manuell im Backend nachpflegen.

Mehr Informationen zu occ : Using OCC Command on Nextcloud 11

PI-HOLE anzeigen geblocketer Webseiten auf Sense Hat

Ich hatte mal wieder Lust etwas mit dem Raspberry Pi zu basteln. Also hab ich mir ein Sense Hat besorgt und mein erstes Projekt war die geblockten Seiten von pi-hole auf der LED Matrix anzuzeigen. Grün heißt die Seite ist ok, rot sie ist geblockt.

Raus gekommen ist das hier :


Hier das Skript dazu :
#!/usr/bin/python

import tailer
from sense_hat import SenseHat
sense = SenseHat()
sense.set_rotation(180)
sense.clear()
sense.low_light = True

logfile = '/var/log/pihole.log'
searchs = '/etc/pihole/gravity.list'
pix_h = 0
pix_v = 0

def sense_pixel(pixcol):
        global pix_h
        global pix_v
        sense.set_pixel(pix_h, pix_v, pixcol)
        pix_h +=1
        if pix_h > 7:
                pix_h = 0
                pix_v +=1
        if pix_v > 7:
                pix_h = 0
                pix_v = 0

def main():
        for line in tailer.follow(open(logfile)):
                if line.find(searchs) == -1:
                        # NOT BLOCKED
                        sense_pixel([5,58,0])
                else:
                        # BLOCKED
                        sense_pixel([255,0,0])

main()


Installation Sense Hat

sudo apt-get update
sudo apt-get install sense-hat
danach einen Neustart machen

Installation tailer für python 2.X

sudo apt-get install python-setuptools
sudo easy_install pip
sudo pip install tailer


Installation tailer für python 3.X

sudo apt-get install python3-setuptools
sudo easy_install3 pip
sudo pip install tailer



Quelle : https://pythonhosted.org/sense-hat/

Exchange 2013: Powershell Error : FailureCategory=Cafe-SendFailure FullyQualifiedErrorId : -2144108477

Problem:
Szenario: Windows Server 2008 R2 aktuell gepatcht - Exchange 2013 CU14 installiert

Beim Versuch auf die Powershell zuzugreifen, wird folgender Fehler mehrfach ausgegeben:
VERBOSE: Connecting to exchange2013. New-PSSession : [exchange2013] Connecting to remote server exchange2013 failed with the following error message : [ClientAccessServer=exchange2013,BackEndServer=exchange2013,RequestId=fd9724cd-19fb-4842-b30d-c9c4b976119f,TimeStamp =2016-03-24 18:55:58] [FailureCategory=Cafe-SendFailure] For more information, see the about_Remote_Troubleshooting He lp topic. At line:1 char:1 + New-PSSession -ConnectionURI “$connectionUri” -ConfigurationName Microsoft CategoryInfo : OpenError: (System.Manageme….RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin gTransportException + FullyQualifiedErrorId : -2144108477,PSSessionOpenFailed


Lösung:
Nach etwas Recherche war mir klar, dass es mit dem SSL-Zertifikat von Exchange zu tun haben muss.

1. Lösungsansatz:
Bitte prüfen Sie im IIS-Manager ob sowohl bei der "Default Web Site" und der "Exchange Back End" unter "Bindungen" -> HTTPS das richtige (oder überhaupt ein gültiges) SSL-Zertifikat zugewiesen ist. Eventuell bei der Powershell-Website unter "Exchange Back End" auch mal bei den "SSL-Einstellungen" den Haken bei "SSL erforderlich" entfernen - somit wird das SSL-Zertifikat ignoriert und man kann prüfen, ob dann die Powershell-Verbindung funktioniert.

2. Lösungsansatz (Fehler bei mir):
Nachdem das Zertifikat in Ordnung war, musste ich nach einem anderem Fehler suchen.
Fündig würde ich im Ereignisprotokoll hier habe ich folgenden Eintrag gefunden:
Schannel - Event-ID: 36885
Bei der Nachfrage der Clientauthentifizierung sendet dieser Server eine Liste vertrauenswürdiger Zertifizierungsstellen an den Client. Der Client verwendet diese Liste, um ein Clientzertifikat auszuwählen, das für den Server vertrauenswürdig ist. Momentan vertraut dieser Server sehr vielen Zertifizierungsstellen, sodass die Liste zu lang ist. Die Liste wurde abgeschnitten. Der Administrator dieses Computer sollte die für Clientauthentifizierung vertrauenswürdigen Zertifizierungsstellen überprüfen und diejenigen entfernen, die nicht unbedingt als vertrauenswürdig eingestuft werden müssen.
Mit dieser Meldung habe ich mittels Zertifikats-MMC ein mal die "Vertrauenswürdigen Stammzertifikatsstellen überprüft" und hier 299(!!) Zertifikate gefunden, die Großteils mir überhaupt nicht bekannt waren. Eine weitere Suche im Netz hat folgenden Microsoft-Artikel hervorgebracht: Microsoft: SSL/TLS communication problems after you install KB931125
Hier wird beschrieben, dass so etwas auftreten kann, nach der Installation des Updates KB931125.
Die Lsöung im Artikel habe ich wie folgt durchgeführt:

1.) Öffnen Sie den Registry-Editor (regedit.exe)
2.) Navigieren Sie zu folgendem Pfad: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\AuthRoot\Certificates
3.) Exportieren Sie diesen Pfad sicherheitshalber und löschen Sie Ihn danach!

Danach hatte ich nur noch ca. 20 Zertifikate in den vertrauenswürdigen Stammzertifikatsstellen und meine Powershell und alle HTTPS-Seiten auf meinem Exchange 2013 liesen sich problemlos öffnen!

Quelle der Lösungsfindung:
blackseals.net: Liste der vertrauenswürdigen Stamm-Zertifizierungsstellen ist zu lang
Microsoft: SSL/TLS communication problems after you install KB931125

“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)