<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blattertech informatik</title>
	<atom:link href="https://www.blattertech.ch/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.blattertech.ch</link>
	<description></description>
	<lastBuildDate>Fri, 13 Feb 2026 08:33:13 +0000</lastBuildDate>
	<language>de-CH</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Win11 &#8211; Gerätedaten auslesen</title>
		<link>https://www.blattertech.ch/2025/10/win11-geraetedaten-auslesen/</link>
					<comments>https://www.blattertech.ch/2025/10/win11-geraetedaten-auslesen/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Tue, 14 Oct 2025 14:39:54 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[WMIC]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=10591</guid>

					<description><![CDATA[Serien-Nr Gerät auslesen Modell auslesen Hersteller auslesen RAM auslesen]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Serien-Nr Gerät auslesen</strong></p>



<pre class="wp-block-code"><code>wmic bios get serialnumber
Get-WmiObject -Class Win32_BIOS | Select-Object SerialNumber
Get-CimInstance -ClassName Win32_BIOS | Select-Object SerialNumber</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Modell auslesen</strong></p>



<pre class="wp-block-code"><code>wmic csproduct get name</code></pre>



<p class="wp-block-paragraph"><strong>Hersteller auslesen</strong></p>



<pre class="wp-block-code"><code>wmic computersystem get name
wmic computersystem get model
wmic computersystem get manufacturer

(Get-CimInstance -ClassName Win32_ComputerSystem).Name
Get-CimInstance -ClassName Win32_BIOS | Select-Object Manufacturer
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model</code></pre>



<p class="wp-block-paragraph"><strong>RAM auslesen</strong></p>



<pre class="wp-block-code"><code>Get-CimInstance Win32_PhysicalMemory | Select-Object Manufacturer, PartNumber, Capacity, Speed, BankLabel, DeviceLocator</code></pre>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2025/10/win11-geraetedaten-auslesen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows 11 komplett neustarten</title>
		<link>https://www.blattertech.ch/2025/02/windows-11-komplett-neustarten/</link>
					<comments>https://www.blattertech.ch/2025/02/windows-11-komplett-neustarten/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Sat, 08 Feb 2025 16:00:56 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Restart]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=6982</guid>

					<description><![CDATA[Mit Windows 10 hat Microsoft den Schnellstart (Fast Startup) eingeführt. Dadurch wird der Computer nicht mehr komplett neugestartet, sondern lagert Einstellungen und Treiber aus, um scheller starten zu können. Damit können sich Probleme auch nach einem Neustart bestehen bleiben. Um Windows einmal komplett neuzustarten, folgender Befehl &#8230; <p><a href="https://www.blattertech.ch/2025/02/windows-11-komplett-neustarten/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mit Windows 10 hat Microsoft den Schnellstart (Fast Startup) eingeführt. Dadurch wird der Computer nicht mehr komplett neugestartet, sondern lagert Einstellungen und Treiber aus, um scheller starten zu können.</p>



<p class="wp-block-paragraph">Damit können sich Probleme auch nach einem Neustart bestehen bleiben. Um Windows einmal komplett neuzustarten, folgender Befehl entweder in der Eingabeaufforderung oder mit Ausführen (Windows + R) eingeben:</p>



<pre class="wp-block-code"><code>shutdown /g /f /t 0</code></pre>



<p class="wp-block-paragraph"><strong>Erklärung der Befehlsparameter:</strong></p>



<ul class="wp-block-list">
<li><code>/g</code> fährt den Computer vollständig herunter und startet ihn neu.</li>



<li><code>/f</code> schliesst alle geöffneten Anwendungen (force).</li>



<li><code>/t</code> legt die Zeit fest, wann dies ausgeführt wird (0 = jetzt ausführen).</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2025/02/windows-11-komplett-neustarten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Oracle &#8211; Datum formatieren</title>
		<link>https://www.blattertech.ch/2024/02/oracle-datum-formatieren/</link>
					<comments>https://www.blattertech.ch/2024/02/oracle-datum-formatieren/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Tue, 20 Feb 2024 12:46:24 +0000</pubDate>
				<category><![CDATA[Snipplets]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=3606</guid>

					<description><![CDATA[Damit ich das nächste Mal nicht suchen muss: oder auch ausführlich mit Zeit]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Damit ich das nächste Mal nicht suchen muss:</p>



<pre class="wp-block-code"><code>SELECT
  vorname,
  name,
  to_char(geburtstag, 'DD.MM.YYYY') as geburtstag
FROM personen;</code></pre>



<p class="wp-block-paragraph">oder auch ausführlich mit Zeit</p>



<pre class="wp-block-code"><code>TO_CHAR(datum,'DD.MM.YYYY HH24:MI') datum</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2024/02/oracle-datum-formatieren/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Audacity &#8211; mehrere MP3-Dateien verbinden</title>
		<link>https://www.blattertech.ch/2024/02/audacity-mehrere-mp3-dateien-verbinden/</link>
					<comments>https://www.blattertech.ch/2024/02/audacity-mehrere-mp3-dateien-verbinden/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Sun, 11 Feb 2024 22:04:40 +0000</pubDate>
				<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[Audacity]]></category>
		<category><![CDATA[mp3]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=3472</guid>

					<description><![CDATA[Vor kurzem muste ich mehrere mp3 Dateien zusammen verbinden. Die Dateien waren ab CD und enthielten einen Vortrag der in mehrere Tracks aufgespittet war. Mit Audacity wird das wie folgt gemacht:]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Vor kurzem muste ich mehrere mp3 Dateien zusammen verbinden. Die Dateien waren ab CD und enthielten einen Vortrag der in mehrere Tracks aufgespittet war.</p>



<p class="wp-block-paragraph">Mit Audacity wird das wie folgt gemacht:</p>



<ul class="wp-block-list">
<li>Klicken Sie auf „Datei > Importieren > Audio“ und alle Dateien auswählen (die Dateien werden dem Namen nach sortiert importiert).<br>Um alle Dateien zu markieren kann Ctrl+A gedrückt werden. aus.</li>



<li>In der Menüleiste folgendes wählen: &#171;Spuren > Spuren ausrichten > Ende an Ende ausrichten“.<br>Die Dateien werden dadurch zeitlich aneinander ausgerichtet, sind aber immer noch in mehreren Spuren.</li>



<li>Nun in der Menüleiste &#171;Spuren > Mix > Mischen und rendern“ wählen<br>Dadurch werden die Spuren zu einer Spur zusammengefügt.</li>



<li>Nun kann die Datei über die Menüleiste &#171;Datei > Exportieren&#187; als mp3 exportiert werden.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2024/02/audacity-mehrere-mp3-dateien-verbinden/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Citrix Receiver &#8211; ica Datei startet mit falschem Programm</title>
		<link>https://www.blattertech.ch/2024/01/citrix-receiver-ica-datei-startet-mit-falschem-programm/</link>
					<comments>https://www.blattertech.ch/2024/01/citrix-receiver-ica-datei-startet-mit-falschem-programm/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Tue, 09 Jan 2024 21:25:50 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Citrix]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=3161</guid>

					<description><![CDATA[Manchmal kann es vorkommen, dass eine Citrix *.ica Datei nicht mit Citrix sondern z.B. mit dem Word geöffnet wird. Um das zu korrigieren ist wie folgt vorzugehen: Klicke mit der rechten Maustaste auf die *.ica Datei und wähle Eigenschaften. Danach klicke auf Ändern. Nun an das &#8230; <p><a href="https://www.blattertech.ch/2024/01/citrix-receiver-ica-datei-startet-mit-falschem-programm/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Manchmal kann es vorkommen, dass eine Citrix *.ica Datei nicht mit Citrix sondern z.B. mit dem Word geöffnet wird.</p>



<p class="wp-block-paragraph">Um das zu korrigieren ist wie folgt vorzugehen: Klicke mit der rechten Maustaste auf die *.ica Datei und wähle Eigenschaften.</p>



<figure class="wp-block-image size-full"><a href="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_01.png" data-lbwps-width="581" data-lbwps-height="301" data-lbwps-srcsmall="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_01-300x155.png"><img fetchpriority="high" decoding="async" width="581" height="301" src="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_01.png" alt="" class="wp-image-3162" srcset="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_01.png 581w, https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_01-300x155.png 300w" sizes="(max-width: 581px) 100vw, 581px" /></a></figure>



<p class="wp-block-paragraph"> Danach klicke auf <strong>Ändern</strong>.</p>



<figure class="wp-block-image size-full"><a href="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_02.png" data-lbwps-width="480" data-lbwps-height="229" data-lbwps-srcsmall="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_02-300x143.png"><img decoding="async" width="480" height="229" src="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_02.png" alt="" class="wp-image-3163" srcset="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_02.png 480w, https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_02-300x143.png 300w" sizes="(max-width: 480px) 100vw, 480px" /></a></figure>



<p class="wp-block-paragraph">Nun an das Ende der Liste scrollen und auf <strong>Wählen Sie eine App auf Ihrem PC aus</strong> klicken.</p>



<figure class="wp-block-image size-full"><a href="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_03.png" data-lbwps-width="555" data-lbwps-height="776" data-lbwps-srcsmall="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_03-215x300.png"><img decoding="async" width="555" height="776" src="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_03.png" alt="" class="wp-image-3165" srcset="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_03.png 555w, https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_03-215x300.png 215w" sizes="(max-width: 555px) 100vw, 555px" /></a></figure>



<p class="wp-block-paragraph">Wechsle in den Pfad <strong>C:\Programme (x86)\Citrix\ICA Client\ </strong> und selektiere die Anwendung <strong>wfcrun32.exe </strong>und drücken anschliessend auf <strong>Öffnen</strong>.</p>



<figure class="wp-block-image size-large"><a href="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_04.png" data-lbwps-width="1221" data-lbwps-height="664" data-lbwps-srcsmall="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_04-300x163.png"><img decoding="async" width="1024" height="557" src="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_04-1024x557.png" alt="" class="wp-image-3166" srcset="https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_04-1024x557.png 1024w, https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_04-300x163.png 300w, https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_04-768x418.png 768w, https://www.blattertech.ch/wp-content/uploads/2024/01/Citrix_ica_04.png 1221w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">Die <strong>*.ica </strong>Dateien<strong> </strong>starten nun wieder standardmässig mit der installierten Citrix Workspace App.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2024/01/citrix-receiver-ica-datei-startet-mit-falschem-programm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Win11 &#8211; Bing Suche deaktivieren</title>
		<link>https://www.blattertech.ch/2023/12/win11-bing-suche-deaktivieren/</link>
					<comments>https://www.blattertech.ch/2023/12/win11-bing-suche-deaktivieren/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Mon, 18 Dec 2023 21:10:24 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Bing]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=3035</guid>

					<description><![CDATA[In Windows 11 hat Microsoft in die Suche der Taskleiste Bing integriert. Erkennbar ist es am &#171;B&#187; in der Sprechblase rechts im Suchfeld. Sucht man nun etwas, wird gleichzeitig über Bing nach dem Suchbegriff gesucht. Will man keine automatische Bing-Suche, so kann diese wie folgt deaktiviert &#8230; <p><a href="https://www.blattertech.ch/2023/12/win11-bing-suche-deaktivieren/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img decoding="async" width="407" height="109" src="https://www.blattertech.ch/wp-content/uploads/2023/12/Bing-Search.png" alt="" class="wp-image-3036" srcset="https://www.blattertech.ch/wp-content/uploads/2023/12/Bing-Search.png 407w, https://www.blattertech.ch/wp-content/uploads/2023/12/Bing-Search-300x80.png 300w" sizes="(max-width: 407px) 100vw, 407px" /></figure>



<p class="wp-block-paragraph">In Windows 11 hat Microsoft in die Suche der Taskleiste Bing integriert. Erkennbar ist es am &#171;B&#187; in der Sprechblase rechts im Suchfeld.</p>



<p class="wp-block-paragraph">Sucht man nun etwas, wird gleichzeitig über Bing nach dem Suchbegriff gesucht. Will man keine automatische Bing-Suche, so kann diese wie folgt deaktiviert werden:</p>



<ol class="wp-block-list">
<li>Mit Win+R die Eingabeauforderung öffnen und dann nach <strong>regedit</strong> suchen und den Registrier-Editor öffnen.</li>



<li>Nun folgenden Pfad öffnen: <em>HKEY_CURRENT_USER</em>, <em>Software</em>, <em>Microsoft</em>, <em>Windows, </em><em>CurrentVersion und Search</em>.</li>



<li>Nun im Bereich Search mit der rechten Maustaste klicken.</li>



<li>Im erscheinenden Menü klicken Sie auf <em>Neu</em> und <em>DWORD-Wert (32-Bit)</em>.</li>



<li>Den Text in <strong>BingSearchEnabled</strong> ändern.</li>



<li>Als Wert eine &#171;0&#187; (Null) definieren.</li>



<li>Nun den Registrier-Editor schliessen. Beim nächsten Klick in die Suchleiste ist das Bing-Icon weg.</li>
</ol>



<p class="wp-block-paragraph">Noch schneller geht es mit folgendem Powershell Befehl:</p>



<pre class="wp-block-code"><code>Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "BingSearchEnabled" -Value 0 -Type DWord </code></pre>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/12/win11-bing-suche-deaktivieren/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>E-Book aus &#171;Bücher&#187;-App exportieren</title>
		<link>https://www.blattertech.ch/2023/12/e-book-aus-buecher-app-exportieren/</link>
					<comments>https://www.blattertech.ch/2023/12/e-book-aus-buecher-app-exportieren/#comments</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Mon, 11 Dec 2023 19:54:07 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[eBook]]></category>
		<category><![CDATA[epub]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=2974</guid>

					<description><![CDATA[Will man ein E-Book auf der &#171;Bücher&#187;-App (ehemals iBook) von Apple wieder exportieren, muss wie folgt vorgegangen werden. Für den Vorgang ist ein Mac mit der Bücher-App Voraussetzung. Das gewünschte E-Book mit der Maus aus der Bücher-App auf den Desktop ziehen. Die nun auf dem Desktop &#8230; <p><a href="https://www.blattertech.ch/2023/12/e-book-aus-buecher-app-exportieren/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Will man ein E-Book auf der &#171;Bücher&#187;-App (ehemals iBook) von Apple wieder exportieren, muss wie folgt vorgegangen werden.</p>



<p class="wp-block-paragraph">Für den Vorgang ist ein Mac mit der Bücher-App Voraussetzung. Das gewünschte E-Book mit der Maus aus der Bücher-App auf den Desktop ziehen.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="423" src="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_01-1024x423.png" alt="" class="wp-image-2975" srcset="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_01-1024x423.png 1024w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_01-300x124.png 300w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_01-768x317.png 768w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_01-1536x635.png 1536w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_01-2048x847.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Die nun auf dem Desktop befindliche .epub Datei kann in keiner anderen App wie z.B. Calibre geöffnet werden, da Apple ein eigenes Format mit weiteren Metadaten verwendet. Um das E-Book wieder nutzbar zu machen, muss der Paketinhalt angezeigt werden.</p>



<p class="wp-block-paragraph">Dazu mit der rechten Maustaste auf die Datei klicken und &#171;Paketinhalt anzeigen&#187; wählen.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="718" height="376" src="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_02.png" alt="" class="wp-image-2977" srcset="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_02.png 718w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_02-300x157.png 300w" sizes="(max-width: 718px) 100vw, 718px" /></figure>



<p class="wp-block-paragraph">Nun werden in der Regel mehrere Ordner angezeigt:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="168" src="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_03-1024x168.png" alt="" class="wp-image-2979" srcset="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_03-1024x168.png 1024w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_03-300x49.png 300w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_03-768x126.png 768w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_03.png 1526w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Für uns interessant sind die Daten im Ordner OEBPS. Diesen Ordner öffnen und den Inhalt mit CMD + A markieren und komprimieren:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="437" src="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_04-1024x437.png" alt="" class="wp-image-2981" srcset="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_04-1024x437.png 1024w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_04-300x128.png 300w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_04-768x328.png 768w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_04-1536x655.png 1536w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_04.png 1542w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Unter Umständen kann das E-Book auch anders aussehen:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="572" src="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_05-1024x572.png" alt="" class="wp-image-2980" srcset="https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_05-1024x572.png 1024w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_05-300x168.png 300w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_05-768x429.png 768w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_05-1536x858.png 1536w, https://www.blattertech.ch/wp-content/uploads/2023/12/ebub_aus_buecher-app_05.png 1546w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">In diesem Fall die hier markierten Bereiche selektieren und komprimieren. </p>



<p class="wp-block-paragraph">Danach die erstelle Archive.zip an einen anderen Ort auf dem Mac kopieren. Nun kann die Datei beliebig umbenannt und mit der Endung *.epub versehen werden. Also z.B. &#171;Buchname.epub&#187;.</p>



<p class="wp-block-paragraph">Die Datei kann nun in Calibre wieder problemlos geöffnet werden. </p>



<p class="wp-block-paragraph">Sollte es dennoch ein Problem mit der Datei geben, kann versucht werden diese mit Sigil zu reparieren.</p>



<p class="wp-block-paragraph"><a href="https://sigil-ebook.com/sigil/">https://sigil-ebook.com/sigil/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/12/e-book-aus-buecher-app-exportieren/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Carousel-Backup mit rsync</title>
		<link>https://www.blattertech.ch/2023/11/carousel-backup-mit-rsync/</link>
					<comments>https://www.blattertech.ch/2023/11/carousel-backup-mit-rsync/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Wed, 08 Nov 2023 20:41:52 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Snipplets]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[rsync]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=2720</guid>

					<description><![CDATA[Vor längerem habe ich ein Backup-Script geschrieben mit dem ich Webseiten über rsync sichern und wiederherstellen kann. Die hier publizierten Scripts sind ohne jegliches Gewähr. Aufruf des Scripts credentials.txt Parameter Aufbau Datenstruktur backup.sh restore.sh]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Vor längerem habe ich ein Backup-Script geschrieben mit dem ich Webseiten über rsync sichern und wiederherstellen kann.</p>



<p class="wp-block-paragraph">Die hier publizierten Scripts sind ohne jegliches Gewähr.</p>



<h2 class="wp-block-heading">Aufruf des Scripts</h2>



<pre class="wp-block-code"><code># Backup
backup.sh /pfad/zu/credentials.txt

# Restore
restore.sh /pfad/zu/credentials.txt /pfad/zu/backup/daily/2023.11.01</code></pre>



<h2 class="wp-block-heading">credentials.txt</h2>



<pre class="wp-block-code"><code>name=domain.ch
email=vorname@domain.ch
server=domain.ch

ssh_user=username
ssh_privkey=/home/username/.ssh/bak_id_rsa
ssh_port=22

rsync_source=/home/domain/public_html/
basedir=/home/username/backup/domain.ch

mysql_server=localhost
mysql_user=database_username
mysql_pw='database_pw'
mysql_db=database_name

keep_backup_hours=48
keep_backup_days=14
keep_backup_weeks=8
keep_backup_months=12</code></pre>



<h2 class="wp-block-heading">Parameter</h2>



<ul class="wp-block-list">
<li><code>name</code> &#8211; Name der Webseite die gesichert werden soll</li>



<li><code>email</code> &#8211; E-Mailadresse an welche Fehler gesendet werden sollen</li>



<li><code>server</code> &#8211; in der Regel die Domain der Webseite oder eine IP des Servers. </li>



<li><code>ssh_user</code> &#8211; Benutzername mit dem man sich per SSH auf dem Server der Webseite einloggen kann</li>



<li><code>ssh_privkey</code> &#8211; Pfad zum SSH Private Key</li>



<li><code>ssh_port</code> &#8211; (optional) &#8211; Default: 22 &#8211; SSH-Port </li>



<li><code>rsync_source</code> &#8211; Pfad auf dem Webserver. Wichtig, muss einen Slash am Ende enthalten, damit der direkte Inhalt des angegebenen Ordners synchronisiert wird.</li>



<li><code>basedir</code> &#8211; Ordner auf dem lokalen Backup-Server in dem das Backup abgelegt wird</li>



<li><code>mysql_server</code> &#8211; (optional) &#8211; Host des MySQL/MariaDB Servers</li>



<li><code>mysql_user</code> &#8211; (optional) &#8211; Datenbank Benutzer</li>



<li><code>mysql_pw</code> &#8211; (optional) &#8211; Passwort des Datenbank Benutzers</li>



<li><code>mysql_db</code> &#8211; (optional) &#8211; Datenbank</li>



<li><code>mysql_port</code> &#8211; (optional) &#8211; Default: 3306 &#8211; Port über den die Datenbank angesprochen wird</li>



<li><code>mysql_direct</code> &#8211; (optional) &#8211; Default=<code>false</code> &#8211; bei <code>true</code> wird die Datenbank direkt verbunden und nicht über die SSH Verbindung</li>



<li><code>keep_backup_hours</code> &#8211; (optional) &#8211; Default <code>48</code> &#8211; Anzahl Stunden in denen jedes Backup aufbewart wird</li>



<li><code>keep_backup_days</code> &#8211; (optional) &#8211; Default: <code>14</code> &#8211; Anzahl Tage in denen das letzte Backup des Tages aufbewahrt wird</li>



<li><code>keep_backup_weeks</code> &#8211; (optional) &#8211; Default: <code>8</code> &#8211; Anzahl Wochen an denen das sonntägliche Backup aufbewahrt wird &#8211; sollte es kein Backup am Sonntag geben, so wird das nächste danach erstellte Backup aufbewahrt</li>



<li><code>keep_backup_months</code> &#8211; (optional) &#8211; Default:<code>12</code>  &#8211; Anzahl Monate an denen das Backup am ersten Tag des Monats aufbewahrt wird &#8211; sollte es kein Backup am am ersten Tag des Monats geben, so wird das nächste danach erstellte Backup aufbewahrt</li>
</ul>



<h2 class="wp-block-heading">Aufbau Datenstruktur</h2>



<pre class="wp-block-code"><code>├── domain.ch
│   ├── credentials.txt
│   ├── backup.log
│   ├── current
│   │   ├── backup.log
│   │   ├── database
│   │   │   └── database.sql.gz
│   │   ├── files
│   │   │   ├── Datei 1
│   │   │   ├── Datei 2
│   │   │   └── etc...
│   ├── daily
│   │   ├── 2011.01.01
│   │   │   ├── backup.log
│   │   │   ├── database
│   │   │   │   └── database.sql.gz
│   │   │   ├── files
│   │   │   │   ├── Datei 1
│   │   │   │   ├── Datei 2
│   │   │   │   └── etc...
│   │   ├── 2011.01.02
│   │   │   ├── ....
│   ├── hourly
│   │   ├── 2023.11.01_22.00.20
│   │   │   ├── ...
│   │   ├── 2023.11.01_23.00.10
│   ├── monthly
│   │   ├── 2023.10.01
│   │   │   ├── ...
│   │   ├── 2023.11.01
│   ├── weekly
│   │   ├── 2023.10.29
│   │   │   ├── ...
│   │   ├── 2023.11.05
</code></pre>



<h2 class="wp-block-heading">backup.sh</h2>



<pre class="wp-block-code"><code>#!/bin/bash

# ------------------------
# Backup Script 
# Variablen:
#   name
#   email
#   server
#   ssh_user
#   ssh_privkey
#   ssh_port
#   rsync_source
#   rsync_dest
#   mysql_server
#   mysql_user
#   mysql_pw
#   mysql_db
#   mysql_port
#   mysql_direct=false
# ------------------------

# load

name=''
email='info@blattertech.ch'
server=''
ssh_user=''
ssh_privkey=''
ssh_port=''
rsync_source=''
mysql_server=localhost
mysql_user=''
mysql_pw=''
mysql_db=''
mysql_port=''
mysql_direct=false
basedir=''



if &#91; $# -eq 0 ]; then
    echo "No configuration file defined"
    exit 1
fi

if &#91; ! -f $1 ]; then
    echo "Configuration file $1 does not exist"
    exit 1
fi



# load configuration
source $1

# check if basedir exist
if &#91; ! -d ${basedir} ]; then
    echo "Basedir ${basedir} does not exist"
    exit 1
fi

# Check if private ssh key exist
if &#91; ! -f ${ssh_privkey} ]; then
    echo "SSH private key ${ssh_privkey} does not exist"
    exit 1
fi

lockfile=${basedir}/backup.lock

# Check is Lock File exists, if not create it and set trap on exit
if { set -C; 2>/dev/null >${lockfile}; }; then
	trap "rm -f ${lockfile}" EXIT
else
	echo "Lock file exists… exiting"
	exit
fi


# set directorys
current=$basedir/current
hourly=$basedir/hourly
daily=$basedir/daily
weekly=$basedir/weekly
monthly=$basedir/monthly


# set default values
keep_backup_hours=${keep_backup_hours:-'72'}
keep_backup_days=${keep_backup_days:-'14'}
keep_backup_weeks=${keep_backup_weeks:-'8'}
keep_backup_months=${keep_backup_months:-'15'}

ssh_port=${ssh_port:-'22'}
mysql_port=${mysql_port:-'3306'}
mysql_server=${mysql_server:-$server}

rsync_dest=$current/files
mysql_dest=$current/database
mysql_dest_file=$mysql_dest/database.sql.gz

logfile=$current/backup.log
logfile_basic=$basedir/backup.log


# delete existing logfile
if &#91; -f "$logfile" ] ; then
    rm "$logfile"
fi

log () {
    if &#91; -z "$1" ]; then
        cat
    else
        printf '%s\n' "$@" 
    fi | tee -a "$logfile" "$logfile_basic"
}

senderror () {
    tail -1000 "$logfile" | mail -s "Backup $name failed" $email
}


# create folders if not exist
mkdir -p $rsync_dest
mkdir -p $hourly
mkdir -p $daily
mkdir -p $weekly
mkdir -p $monthly 


# sync files

log "-------------------------- start backup $name  --------------------------"
log ' '
log "Date: $(date)"
log ' '
log 'Start rsync'


rsync -e "ssh -p $ssh_port -i $ssh_privkey" --links --recursive --times --out-format="%n" --human-readable --partial --delete --compress --stats $ssh_user@$server:$rsync_source $rsync_dest 2> >(tee -a $logfile $logfile_basic >&amp;2) | log

if &#91; $? -eq 0 ]; then
	log 'Rsync finished'
else
	log 'An error has occurred during rsync'
        log '================= ERROR ================='
	senderror
	exit 1
fi

log ' '

# backup remote database
if &#91; $mysql_db != '' ]; then
	log 'Start database backup'

	mkdir -p $mysql_dest
	rm -rv $mysql_dest/* | log
	# Forward Port dynamisch nach Minute und Sekunde definieren, damit parallel laufende Scripts nicht den gleichen Port nutzen -> liesse sich mit Milisekunden allenfalls noch verbessern
	# on Mac and BSD: jot -r 1  2000 65000
	# other way: seq 2000 65000 | sort -R | head -n 1
	# https://stackoverflow.com/questions/2556190/random-number-from-a-range-in-a-bash-script

	if &#91; "$mysql_direct" = true ]; then
		mysqldump -h $mysql_server -P ${mysql_port} --max_allowed_packet=512M --no-tablespaces --extended-insert --compress --quote-names --single-transaction --routines --triggers --opt -u $mysql_user --password="$mysql_pw" $mysql_db  2> >(tee -a $logfile $logfile_basic >&amp;2) | gzip -c > $mysql_dest_file
 	else
		forward_port=$(shuf -i 2000-65000 -n 1)

		#ssh -p $ssh_port -i $ssh_privkey $ssh_user@$server "mysqldump -h '$mysql_server' --extended-insert --compress --quote-names --single-transaction --routines --triggers --opt -u $mysql_user --password='$mysql_pw' $mysql_db || exit 42;"  | gzip -c > $mysql_dest_file
		ssh -C -f -L${forward_port}:$mysql_server:$mysql_port -p $ssh_port -i $ssh_privkey $ssh_user@$server sleep 5
		# weitere Optionen: --events
		mysqldump -h 127.0.0.1 -P ${forward_port} --max_allowed_packet=512M --no-tablespaces --extended-insert --compress --quote-names --single-transaction --routines --triggers --opt -u $mysql_user --password="$mysql_pw" $mysql_db  2> >(tee -a $logfile $logfile_basic >&amp;2) | gzip -c > $mysql_dest_file
	fi
	mysql_retval=${PIPESTATUS&#91;0]}

	if &#91; ${mysql_retval} -ne 0 ]; then
		log 'Database backup FAILED'
		log '================= ERROR ================='
		senderror
		exit 1
	else
		#file_size_kb=`du -k "$mysql_dest_file" | cut -f1`
		file_size=$(ls -lh $mysql_dest_file | awk '{print  $5}')
		log "Database backup created successfully with $file_size"
	 fi
	log ' '
fi

log "start carousel"


#calculate backup days
let keep_backup_hours*=60
let keep_backup_weeks*=7
let keep_backup_months*=30

#https://nicaw.wordpress.com/2013/04/18/bash-backup-rotation-script/

# destination file names
date_hourly=`date +"%Y.%m.%d_%H.%M.%S"`
date_daily=`date +"%Y.%m.%d"`
#date_weekly=`date +"%V sav. %m-%Y"`
#date_monthly=`date +"%m-%Y"`

# Get current month and week day number
month_day=`date +"%d"`
week_day=`date +"%u"`

# It is logical to run this script daily. We take files from source folder and move them to
# appropriate destination folder

# On first month day do
if &#91; "$month_day" -eq 1 ] ; then
	destination=$monthly/$date_daily
	mkdir -p $destination
	cp -al $current/* $destination
	log "monthly backup first day to $destination"

else # if there is no folder in the last 31 days, create a month backup
	hasMonthlyFolder=$(find $monthly -maxdepth 1 -mtime -31 -type d -printf '.' | wc -c)
	if &#91; $hasMonthlyFolder -le 1 ] ; then
		destination=$monthly/$date_daily
		mkdir -p $destination
		cp -al $current/* $destination
		log "monthly backup other day to $destination"
	fi
fi
# copy weekly on sundays
if &#91; "$week_day" -eq 7 ] ; then
	destination=$weekly/$date_daily
	mkdir -p $destination
	cp -al $current/* $destination
	log "weekly backup on day 7 to $destination"
else # if there is no folder in the last 7 days, create a week backup
	hasWeeklyFolder=$(find $weekly -maxdepth 1 -mtime -7 -type d -printf '.' | wc -c)
	if &#91; $hasWeeklyFolder -le 1 ] ; then
		destination=$weekly/$date_daily
		mkdir -p $destination
		cp -al $current/* $destination
		log "weekly backup other day to $destination"
	fi
fi

#cron hourly
destination=$hourly/$date_hourly
mkdir -p $destination
cp -al $current/* $destination
log "hourly backup to $destination"

# copy daily
destination=$daily/$date_daily
# copy files with hardlinks
mkdir -p $destination
cp -al $current/* $destination
log "daily backup to $destination"
log "end carousel"
log ' '
log "Endtime: $(date)"
log ' '
log "------------------------- end backup $name -----------------------------"
log ' '

echo "start cleaning carousel"

# hourly - keep for defined hours
find $hourly/ -maxdepth 1 -cmin +$keep_backup_hours -type d -exec rm -rf {} \;

# daily - keep for defined days
find $daily/ -maxdepth 1 -mtime +$keep_backup_days -type d -exec rm -rf {} \;

# weekly - keep for defined weeks
find $weekly/ -maxdepth 1 -mtime +$keep_backup_weeks -type d -exec rm -rf {} \;

# monthly - keep for defined yearss
find $monthly/ -maxdepth 1 -mtime +$keep_backup_months -type d -exec rm -rf {} \;

echo "end cleaning carousel"
</code></pre>



<h2 class="wp-block-heading">restore.sh</h2>



<pre class="wp-block-code"><code>#!/bin/bash

# ------------------------
# Backup Script 
# Variablen:
#   server
#   ssh_user
#   ssh_privkey
#   ssh_port
#   rsync_source
#   rsync_dest
#   mysql_server
#   mysql_user
#   mysql_pw
#   mysql_db
# ------------------------

# load

server=''
ssh_user=''
ssh_privkey=''
rsync_source=''
mysql_server=$server
mysql_user=''
mysql_pw=''
mysql_db=''
mysql_port=''
ssh_port=''
basedir=''

if &#91; $# -eq 0 ]; then
    echo "No configuration file defined"
    exit 1
fi

# Check if configuration file exist
if &#91; ! -f $1 ]; then
    echo "Conficuration file '$1' not found!"
    exit 1 
fi

# check if source directory exist
if &#91;&#91; ! -d "$2" ]]; then
    echo "The source directory '$2' not found!"
    exit 1
fi

# load configuration
source $1
current=$2

rsync_restore_dest=$rsync_source
rsync_restore_source=$current/files/
mysql_source_file=$current/database/database.sql.gz

ssh_port=${ssh_port:-'22'}
mysql_port=${mysql_port:-'3306'}
mysql_server=${mysql_server:-$server}

success=1

logfile_basic=$basedir/restore.log

log () {
    if &#91; -z "$1" ]; then
        cat
    else
        printf '%s\n' "$@" 
    fi | tee -a "$logfile_basic"
}


# sync files

log '-------------------------- start restore data --------------------------' 
log ' '
log "Date: $(date)"
log ' '
log 'Start rsync'

{
   rsync -e "ssh -p $ssh_port -i $ssh_privkey" --recursive --times --progress --partial --delete --stats $rsync_restore_source $ssh_user@$server:$rsync_restore_dest
} | log

if &#91; $? = 0 ]; then
  log 'Rsync restore files finished'
else
  log 'An error has occurred during rsync'
  success=0
fi
log ' '

# backup remote database
log 'Start database restore'
{
   gunzip -c $mysql_source_file | ssh -p $ssh_port -i $ssh_privkey $ssh_user@$server "mysql -h $mysql_server -P $mysql_port -u $mysql_user --password='$mysql_pw' $mysql_db" 
} | log
if &#91; $? = 0 ]; then
  log 'Database restore successfully'
else
  log 'Database restore FAILED'
  success=0
fi

log ' '
log "Endtime: $(date)"
log ' '
log '------------------------- end restore -----------------------------'
log ' '
</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/11/carousel-backup-mit-rsync/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Raspi: Chromium ohne Pinch to Zoom starten</title>
		<link>https://www.blattertech.ch/2023/07/raspi-chromium-ohne-pinch-to-zoom-starten/</link>
					<comments>https://www.blattertech.ch/2023/07/raspi-chromium-ohne-pinch-to-zoom-starten/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Thu, 27 Jul 2023 19:03:39 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Chromium]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Raspi]]></category>
		<category><![CDATA[Touchpad]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=2280</guid>

					<description><![CDATA[Im Kioskbetrieb eines Raspberry Pi mit Touchpad möchte ich das Zoomen per Hand unterdrücken. Dazu müssen folgende zwei Parameter beim Starten von Chromium mitgegeben werden: --disable-pinch &#8211; deaktiviert die pinch-to-zoom Funktionalität --overscroll-history-navigation=0 &#8211; deaktiviert die swipe-to-navigate Funktionalität Hier mein Beispiel wie ich den Chromium im Kiosk-Modus &#8230; <p><a href="https://www.blattertech.ch/2023/07/raspi-chromium-ohne-pinch-to-zoom-starten/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Im Kioskbetrieb eines Raspberry Pi mit Touchpad möchte ich das Zoomen per Hand unterdrücken. Dazu müssen folgende zwei Parameter beim Starten von Chromium mitgegeben werden:</p>



<p class="wp-block-paragraph"><code>--disable-pinch</code> &#8211; deaktiviert die pinch-to-zoom Funktionalität</p>



<p class="wp-block-paragraph"><code>--overscroll-history-navigation=0</code> &#8211; deaktiviert die swipe-to-navigate Funktionalität</p>



<p class="wp-block-paragraph">Hier mein Beispiel wie ich den Chromium im Kiosk-Modus starte:</p>



<pre class="wp-block-code"><code>/usr/bin/chromium-browser --disable-session-crashed-bubble --disable-infobars --kiosk --no-first-run --incognito --disable-pinch --overcroll-history-navigation=0 'https://web.page'</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/07/raspi-chromium-ohne-pinch-to-zoom-starten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows &#8211; SMTP Testing über die Powershell</title>
		<link>https://www.blattertech.ch/2023/07/windows-smtp-testing-ueber-die-powershell/</link>
					<comments>https://www.blattertech.ch/2023/07/windows-smtp-testing-ueber-die-powershell/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Tue, 25 Jul 2023 11:52:03 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[smtp]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=2273</guid>

					<description><![CDATA[Um eine SMTP Verbindung ab Powershell zu testen braucht es zwei Befehle die ausgeführt werden müssen: Nun erscheint die Aufforderung den Benutzernamen und das Passwort einzugeben. Dieser Werte werden in die Variable $creds gespeichert. Sobald diese Anmeldeinformationen in der Variablen gespeichert sind, kann der nächste Befehl &#8230; <p><a href="https://www.blattertech.ch/2023/07/windows-smtp-testing-ueber-die-powershell/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Um eine SMTP Verbindung ab Powershell zu testen braucht es zwei Befehle die ausgeführt werden müssen:</p>



<pre class="wp-block-code"><code>$creds = get-credential </code></pre>



<p class="wp-block-paragraph">Nun erscheint die Aufforderung den Benutzernamen und das Passwort einzugeben. Dieser Werte werden in die Variable $creds gespeichert.</p>



<p class="wp-block-paragraph">Sobald diese Anmeldeinformationen in der Variablen gespeichert sind, kann der nächste Befehl ausgeführt werden.</p>



<pre class="wp-block-code"><code>Send-MailMessage -From &lt;Absenderadresse> -To &lt;Empfänger> -Subject "Test Email" -Body "Test SMTP Service from Powershell on Port 587" -SmtpServer smtp.servername.ch -Credential $creds -UseSsl -Port 587</code></pre>



<p class="wp-block-paragraph">Gibt es keine Fehlermeldung, konnte das E-Mail ohne Probleme versandt werden.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/07/windows-smtp-testing-ueber-die-powershell/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mac: SMTP Testing vom Terminal aus</title>
		<link>https://www.blattertech.ch/2023/07/mac-smtp-testing-vom-terminal-aus/</link>
					<comments>https://www.blattertech.ch/2023/07/mac-smtp-testing-vom-terminal-aus/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Tue, 18 Jul 2023 06:17:59 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[swaks]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=2249</guid>

					<description><![CDATA[Um eine SMTP Verbindung zu testen, kann unter Mac das Programm swaks genutzt werden. Dieses ist auch für Linux / BSD verfügbar. Die Ausgabe: ExamplesDokumentation]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Um eine SMTP Verbindung zu testen, kann unter Mac das Programm <code>swaks</code> genutzt werden. Dieses ist auch für Linux / BSD verfügbar.</p>



<pre class="wp-block-code"><code>brew install swaks</code></pre>



<pre class="wp-block-code"><code>swaks -tls --to lb@blattertech.ch --from btsrv@blattertech.com --server mail.cyon.ch --auth-user btsrv@blattertech.com</code></pre>



<p class="wp-block-paragraph">Die Ausgabe:</p>



<pre class="wp-block-code"><code>user@mac ~ % swaks -tls --to lb@blattertech.ch --from btsrv@blattertech.com --server mail.cyon.ch --auth-user btsrv@blattertech.com
Password: 
=== Trying mail.cyon.ch:25...
=== Connected to mail.cyon.ch.
&lt;-  220 mail.cyon.ch ESMTP ready
 -&gt; EHLO btmb02.local
&lt;-  250-mail.cyon.ch
&lt;-  250-SIZE 52428800
&lt;-  250-8BITMIME
&lt;-  250-PIPELINING
&lt;-  250-HELP
&lt;-  250 STARTTLS
 -&gt; STARTTLS
&lt;-  220 2.0.0 Start TLS
=== TLS started with cipher TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128
=== TLS no local certificate set
=== TLS peer DN="/CN=*.cyon.ch"
 ~&gt; EHLO btmb02.local
&lt;~  250-mail.cyon.ch
&lt;~  250-SIZE 52428800
&lt;~  250-8BITMIME
&lt;~  250-PIPELINING
&lt;~  250-HELP
&lt;~  250 AUTH LOGIN
 ~&gt; AUTH LOGIN
&lt;~  334 VXNlcm5hbWU6
 ~&gt; YnRzcnZAYmxhdHRlcnRlY2guY29t
&lt;~  334 UGFzc3dvcmQ6
 ~&gt; NHlDRlR0UWpkNno=
&lt;~  235 2.0.0 OK
 ~&gt; MAIL FROM:&lt;btsrv@blattertech.com&gt;
&lt;~  250 OK
 ~&gt; RCPT TO:&lt;lb@blattertech.ch&gt;
&lt;~  250 Accepted
 ~&gt; DATA
&lt;~  354 Enter message, ending with "." on a line by itself
 ~&gt; Date: Tue, 18 Jul 2023 08:09:44 +0200
 ~&gt; To: lb@blattertech.ch
 ~&gt; From: btsrv@blattertech.com
 ~&gt; Subject: test Tue, 18 Jul 2023 08:09:44 +0200
 ~&gt; Message-Id: &lt;20230718080944.016976@btmb02.local&gt;
 ~&gt; X-Mailer: swaks v20201014.0 jetmore.org/john/code/swaks/
 ~&gt; 
 ~&gt; This is a test mailing
 ~&gt; 
 ~&gt; 
 ~&gt; .
&lt;~  250 OK id=1qLdu8-007MqM-2t
 ~&gt; QUIT
&lt;~  221 s078.cyon.net closing connection
=== Connection closed with remote host.
</code></pre>



<p class="wp-block-paragraph"><a rel="noreferrer noopener" href="https://easyengine.io/tutorials/mail/swaks-smtp-test-tool/" target="_blank">Examples</a><br><a href="https://www.jetmore.org/john/code/swaks/" target="_blank" rel="noreferrer noopener">Dokumentation</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/07/mac-smtp-testing-vom-terminal-aus/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mac: ip Befehl in Terminal</title>
		<link>https://www.blattertech.ch/2023/07/mac-ip-befehl-in-terminal/</link>
					<comments>https://www.blattertech.ch/2023/07/mac-ip-befehl-in-terminal/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Tue, 18 Jul 2023 06:00:04 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[brew]]></category>
		<category><![CDATA[ip]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=2242</guid>

					<description><![CDATA[Um den unter Linux genutzen ip Befehl im Terminal von Mac OS zu nutzen, kann das Paket über brew instaliert werden: IP Befehl nutzen Dokumentation https://github.com/brona/iproute2machttps://www.policyrouting.org/iproute2.doc.htmlhttps://lartc.org/howto/]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Um den unter Linux genutzen <code>ip</code> Befehl im Terminal von Mac OS zu nutzen, kann das Paket über <a href="https://brew.sh/index_de" target="_blank" rel="noreferrer noopener">brew</a> instaliert werden:</p>



<pre class="wp-block-code"><code>user@mac ~ % brew install iproute2mac
==&gt; Fetching iproute2mac
==&gt; Downloading https://ghcr.io/v2/homebrew/core/iproute2mac/manifests/1.4.1-1
############################################################################################################################################################################################################################################### 100.0%
==&gt; Downloading https://ghcr.io/v2/homebrew/core/iproute2mac/blobs/sha256:eb6014521de7f35e1b16bb7465d9541355d981befff05dfe044291b234cf15a7
############################################################################################################################################################################################################################################### 100.0%
==&gt; Pouring iproute2mac--1.4.1.all.bottle.1.tar.gz
🍺  /opt/homebrew/Cellar/iproute2mac/1.4.1: 6 files, 29.5KB
==&gt; Running `brew cleanup iproute2mac`...
</code></pre>



<h2 class="wp-block-heading">IP Befehl nutzen</h2>



<pre class="wp-block-code"><code>user@mac ~ % ip addr show en0
en0: flags=8863&lt;UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
    ether 54:46:12:fc:45:12
    inet6 fe80::3636:3bff:fecf:1294/64 scopeid 0x4
    inet 192.168.1.5/24 brd 192.168.1.255 en0</code></pre>



<h2 class="wp-block-heading">Dokumentation</h2>



<p class="wp-block-paragraph"><a href="https://github.com/brona/iproute2mac">https://github.com/brona/iproute2mac</a><br><a href="https://www.policyrouting.org/iproute2.doc.html">https://www.policyrouting.org/iproute2.doc.html</a><br><a href="https://lartc.org/howto/">https://lartc.org/howto/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/07/mac-ip-befehl-in-terminal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mac: sudo mit Touch-ID im Terminal</title>
		<link>https://www.blattertech.ch/2023/06/mac-sudo-mit-touch-id-im-terminal/</link>
					<comments>https://www.blattertech.ch/2023/06/mac-sudo-mit-touch-id-im-terminal/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Sun, 11 Jun 2023 08:00:00 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Touch-ID]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=2025</guid>

					<description><![CDATA[Will man im Terminal beim Ausführen des sudo-Befehls nicht immer das Passwort eingeben, so kann die Touch-ID konfiguriert werden. Die Konfiguration befindet sich in der Datei /etc/pam.d/sudo. In der Datei nun auf der zweiten Zeile nach &#171;pam_smarcard.do&#187; folgende Zeile hinzufügen: Danach die Datei speichern. Nach dem &#8230; <p><a href="https://www.blattertech.ch/2023/06/mac-sudo-mit-touch-id-im-terminal/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Will man im Terminal beim Ausführen des sudo-Befehls nicht immer das Passwort eingeben, so kann die Touch-ID konfiguriert werden. Die Konfiguration befindet sich in der Datei <code>/etc/pam.d/sudo</code>.</p>



<pre class="wp-block-code"><code>sudo nano /etc/pam.d/sudo</code></pre>



<p class="wp-block-paragraph">In der Datei nun auf der zweiten Zeile nach &#171;pam_smarcard.do&#187; folgende Zeile hinzufügen:</p>



<pre class="wp-block-code"><code>auth       sufficient     pam_tid.so</code></pre>



<p class="wp-block-paragraph">Danach die Datei speichern. Nach dem das Terminal neugestartet wurde, erscheint nun die normale Abfrage zur Eingabe der Touch-ID, sobald ein sudo Befehl ausgeführt wird. Mit &#171;Abbrechen&#187; kann jederzeit auch das Passwort eingegeben werden.</p>



<p class="wp-block-paragraph">Der Inhalt der Datei /etc/pam.d/sudo sieht nach der Anpassung so aus:</p>



<pre class="wp-block-code"><code># sudo: auth account password session
auth       sufficient     pam_smartcard.so
auth       sufficient     pam_tid.so
auth       required       pam_opendirectory.so
account    required       pam_permit.so
password   required       pam_deny.so
session    required       pam_permit.so</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/06/mac-sudo-mit-touch-id-im-terminal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Softwareverwaltung über winget</title>
		<link>https://www.blattertech.ch/2023/05/softwareverwaltung-ueber-winget/</link>
					<comments>https://www.blattertech.ch/2023/05/softwareverwaltung-ueber-winget/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Sun, 07 May 2023 06:58:23 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[winget]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=2009</guid>

					<description><![CDATA[winget ist ein Windowspaket Manager über den ähnlich wie unter Linux Anwendungen installiert und aktualisiert werden können. winget ist der einfachste Weg einen PC aktuell zu halten. In diesem Artikel zeige ich wie winget genutzt werden kann. Die Verwendung von winget beginnt mit dem Öffnen eines &#8230; <p><a href="https://www.blattertech.ch/2023/05/softwareverwaltung-ueber-winget/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">winget ist ein Windowspaket Manager über den ähnlich wie unter Linux Anwendungen installiert und aktualisiert werden können. winget ist der einfachste Weg einen PC aktuell zu halten. In diesem Artikel zeige ich wie winget genutzt werden kann.</p>



<p class="wp-block-paragraph">Die Verwendung von winget beginnt mit dem Öffnen eines PowerShell-Fensters mit Administratorrechten: Drücken Sie die Windows-Taste + X und wählen Sie dann PowerShell (Admin) oder Terminal(Admin) aus dem Popup-Menü. Da winget ein PowerShell-Befehl ist, verwendet es eine einfache PowerShell-Syntax, um Informationen bereitzustellen oder Aktionen auszuführen.</p>



<p class="wp-block-paragraph">Ist <code>winget</code> noch nicht installiert, so kann dieses über den Windows Store installiert werden.</p>



<figure class="wp-block-image size-full"><a href="https://www.blattertech.ch/wp-content/uploads/2023/05/AppInstaller.png" data-lbwps-width="924" data-lbwps-height="281" data-lbwps-srcsmall="https://www.blattertech.ch/wp-content/uploads/2023/05/AppInstaller-300x91.png"><img decoding="async" width="924" height="281" src="https://www.blattertech.ch/wp-content/uploads/2023/05/AppInstaller.png" alt="" class="wp-image-2012" srcset="https://www.blattertech.ch/wp-content/uploads/2023/05/AppInstaller.png 924w, https://www.blattertech.ch/wp-content/uploads/2023/05/AppInstaller-300x91.png 300w, https://www.blattertech.ch/wp-content/uploads/2023/05/AppInstaller-768x234.png 768w" sizes="(max-width: 924px) 100vw, 924px" /></a></figure>



<p class="wp-block-paragraph">Zur Abfrage welche Version installiert ist führen wr diesen Befehl aus.</p>



<pre class="wp-block-code"><code>winget –version</code></pre>



<p class="wp-block-paragraph">Gibt man <code>winget </code>in der Befehlszeile ein und führt in aus, werden die Optionen zum ausführen angezeigt: </p>



<pre class="wp-block-code"><code>PS C:\Users\lb&gt; winget
Windows-Paket-Manager v1.4.10173
Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.

Das “winget”-Befehlszeilenprogramm ermöglicht das Installieren von Anwendungen und anderen Paketen mithilfe der Befehlszeile.

Verwendung: winget &#91;&lt;Befehl&gt;] &#91;&lt;Optionen&gt;]

Folgende Befehle sind verfügbar:
  install    Installiert das angegebene Paket
  show       Zeigt Informationen zu einem Paket an
  source     Verwalten von Paketquellen
  search     Suchen und Anzeigen grundlegender Informationen zu Paketen
  list       Installierte Pakete anzeigen
  upgrade    Zeigt verfügbare Upgrades an und führt sie aus.
  uninstall  Deinstalliert das angegebene Paket
  hash       Hilfsprogramm zum Hashen von Installationsdateien
  validate   Überprüft eine Manifestdatei
  settings   Einstellungen öffnen oder Administratoreinstellungen festlegen
  features   Zeigt den Status von experimentellen Features an
  export     Exportiert eine Liste der installierten Pakete
  import     Installiert alle Pakete in einer Datei
</code></pre>



<h2 class="wp-block-heading">Verfügbare Software auflisten</h2>



<p class="wp-block-paragraph">Mit dem &#171;list&#187; Befehl wird die installierte Software aufgelistet:</p>



<pre class="wp-block-code"><code>winget list</code></pre>



<p class="wp-block-paragraph">Ausgabe:</p>



<pre class="wp-block-code"><code>PS C:\Users\lb&gt; winget list
Name                                      ID                                        Version          Verfügbar   Quelle
-----------------------------------------------------------------------------------------------------------------------
Bang &amp; Olufsen Audio Control Panel        22094SynapticsIncorporate.BangOlufsenAud… 1.3.98.0
LogiOptionsPowerPointAddin                2C15990041C0A40782166403A24D0F52DFC41095  9.50.19.0
Joplin 2.9.17                             499c114e-8890-5040-9c02-24abe7d3ebe9      2.9.17
LogiOptionsExcelAddin                     5B9DBC017A73395321F758581D1CBC19EA9DF4FF  9.50.19.0
FreeTube 0.18.0                           PrestonN.FreeTube                         0.18.0                       winget
7-Zip 21.06 (x64)                         7zip.7zip                                 21.06            22.01       winget
LogiOptionsWordAddin                      77F95DB8F75F35C40BD868B4D39ADCCB966A0FD1  9.50.19.0
Signal 5.48.0                             OpenWhisperSystems.Signal                 5.48.0           6.15.0      winget
HP Support Assistant                      AD2F1837.HPSupportAssistant_v10z8vjag6ke6 9.25.18.0
HP System Information                     AD2F1837.HPSystemInformation_v10z8vjag6k… 8.10.39.0
Adobe Creative Cloud                      Adobe Creative Cloud                      5.10.0.573
Adobe Notification Client                 AdobeNotificationClient_enpm4xejd91yc     3.0.1.1
Intel® Grafik-Kontrollraum                AppUp.IntelGraphicsExperience_8j3eq9eme6… 1.100.4779.0
ThunderboltTM Kontrollcenter              AppUp.ThunderboltControlCenter_8j3eq9eme… 1.0.36.0
Beyond Compare 4.4.1                      ScooterSoftware.BeyondCompare4            4.4.1.26165      4.4.6.27483 winget
Ubuntu 20.04 on Windows                   Canonical.Ubuntu.2004                     2004.2022.8.0                winget
Ubuntu on Windows                         CanonicalGroupLimited.UbuntuonWindows_79… 2004.2022.1.0
Citrix Workspace 2302                     Citrix.Workspace                          23.2.0.38        23.3.0.55   winget
.....</code></pre>



<p class="wp-block-paragraph">Alle Programme die in der Spalte Quelle ein &#171;winget&#187; stehen haben, können über <kbd><code>winget </code></kbd>aktualisiert werden.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Neues Programm installieren</h2>



<p class="wp-block-paragraph">Um ein Programm zu installieren, muss der Befehl <code>winget install [PROGRAMMNAME]</code> genutzt werden. Ist der genaue Programmname nicht bekannt, kann mit <code>winget search [NAME]</code> gesucht werden.</p>



<p class="wp-block-paragraph">HIer ein Beispiel zu Installation eines Adobe Readers:</p>



<pre class="wp-block-code"><code>C:\Windows\system32&gt;winget search adobe
Name                                         ID                          Version      Übereinstimmung Quelle
-------------------------------------------------------------------------------------------------------------
Adobe Express                                9P94LH3Q1CP5                Unknown                      msstore
Adobe Lightroom                              XPDP264X2DK8NB              Unknown                      msstore
Adobe Acrobat Reader DC                      XPDP273C0XHQH2              Unknown                      msstore
Adobe Fresco                                 XP8C8R0ZKZR27V              Unknown                      msstore
Adobe Creative Cloud                         XPDLPKWG9SW2WD              Unknown                      msstore
Adobe Photoshop Express                      9WZDNCRFJ27N                Unknown                      msstore
Adobe Experience Manager Forms               9ND12RLXTGTT                Unknown                      msstore
Adobe Content Viewer                         9WZDNCRFJBZ1                Unknown                      msstore
Adobe Photoshop Express Toshiba version only 9WZDNCRDFSG4                Unknown                      msstore
Adobe Premiere Elements 2023                 XP8JR4WQQRJMHT              Unknown                      msstore
Avocode                                      Avocode.Avocode             4.15.6       Tag: adobe      winget
Adobe Acrobat Reader DC (64-bit)             Adobe.Acrobat.Reader.64-bit 23.003.20201 Tag: adobe      winget
Adobe Acrobat Reader DC                      Adobe.Acrobat.Reader.32-bit 23.003.20201 Tag: adobe      winget
Adobe DNG Converter                          Adobe.DNGConverter          15.3.1                       winget
Cryptr                                       Adobe.Cryptr                0.5.0                        winget
Brackets                                     Adobe.Brackets              1.14.17770                   winget
Adobe Connect                                Adobe.AdobeConnect          21.11.22                     winget
</code></pre>



<p class="wp-block-paragraph">Mit dem search Befehl wird nun aufgelistet, was alles zum Begriff &#171;Adobe&#187; gefunden wurde. Nun kann ich den Adobe Reader über den Namen in der 2. Spalte installieren:</p>



<pre class="wp-block-code"><code>C:\Windows\system32&gt;winget install Adobe.Acrobat.Reader.64-bit
Gefunden Adobe Acrobat Reader DC (64-bit) &#91;Adobe.Acrobat.Reader.64-bit] Version 23.003.20201
Diese Anwendung wird von ihrem Besitzer an Sie lizenziert.
Microsoft ist nicht verantwortlich und erteilt keine Lizenzen für Pakete von Drittanbietern.
Wird heruntergeladen https://ardownload2.adobe.com/pub/adobe/acrobat/win/AcrobatDC/2300320201/AcroRdrDCx642300320201_MUI.exe
  ██████████████████████████████   410 MB /  410 MB
Der Installer-Hash wurde erfolgreich überprüft
Paketinstallation wird gestartet...
Erfolgreich installiert</code></pre>



<h2 class="wp-block-heading">Installierte Programme aktualisieren</h2>



<p class="wp-block-paragraph">Um alle Programme zu aktualisieren die auf dem PC installiert sind, wird folgender Befehl genutzt:</p>



<pre class="wp-block-code"><code>winget update --all</code></pre>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/05/softwareverwaltung-ueber-winget/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MySQL Backups auf der Konsole</title>
		<link>https://www.blattertech.ch/2023/05/mysql-backups-auf-der-konsole/</link>
					<comments>https://www.blattertech.ch/2023/05/mysql-backups-auf-der-konsole/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Fri, 05 May 2023 13:18:57 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=2006</guid>

					<description><![CDATA[Mit den Programmen mysqldump und mysql können Backups einer MySQL Datenbank erstellt und wiederhergestellt werden. Dabei spielt die grösse einer Datenbank keine Rolle, was ein unschlagbarer Vorteil im Vergleich zum phpMyAdmin sein kann. mysqldump Der Grundaufruf von mysqldump sieht wie folgt aus: Mit weiteren Parametern: Will &#8230; <p><a href="https://www.blattertech.ch/2023/05/mysql-backups-auf-der-konsole/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mit den Programmen <code>mysqldump</code> und <code>mysql</code> können Backups einer MySQL Datenbank erstellt und wiederhergestellt werden. Dabei spielt die grösse einer Datenbank keine Rolle, was ein unschlagbarer Vorteil im Vergleich zum phpMyAdmin sein kann.</p>



<h2 class="wp-block-heading">mysqldump</h2>



<p class="wp-block-paragraph">Der Grundaufruf von mysqldump sieht wie folgt aus:</p>



<pre class="wp-block-code"><code>mysqldump -u &#91;USERNAME] --password="&#91;PASSWORT]" &#91;DATENBANK]  > &#91;BACKUP_DATEI_NAME].sql</code></pre>



<p class="wp-block-paragraph">Mit weiteren Parametern:</p>



<pre class="wp-block-code"><code>mysqldump --no-tablespaces --extended-insert --compress --quote-names --single-transaction --routines --triggers --opt -u &#91;MYSQL_USER] --password="&#91;MYSQL_PW]" &#91;MYSQL_DB]  > &#91;BACKUP_DATEI_NAME].sql</code></pre>



<p class="wp-block-paragraph">Will man das Backup gleich auch mit gzip komprimieren:</p>



<pre class="wp-block-code"><code>mysqldump --max_allowed_packet=512M --no-tablespaces --extended-insert --compress --quote-names --single-transaction --routines --triggers --opt -u &#91;MYSQL_USER] --password="&#91;MYSQL_PW]" &#91;MYSQL_DB] | gzip -c > &#91;BACKUP_DATEINAME].sql.gz</code></pre>



<p class="wp-block-paragraph">mysqldump kann auch via SSH Remote ausgeführt werden. Dazu sollte die Ausführung in eine Scriptdatei ausgelagert werden:</p>



<pre class="wp-block-code"><code>ssh -C -f -L$&#91;FORWARD_PORT]:&#91;MYSQL_SERVER]:&#91;MYSQLPORT -p &#91;SSH_PORT] -i &#91;SSH_PRIVATE_KEY] &#91;SSH_USER]@&#91;SSH_SERVER] sleep 5

mysqldump -h 127.0.0.1 -P $&#91;FORWARD_PORT] --max_allowed_packet=512M --no-tablespaces --extended-insert --compress --quote-names --single-transaction --routines --triggers --opt -u &#91;MYSQL_USER] --password="&#91;MYSQL_PW]" &#91;MYSQL_DB] > &#91;BACKUP_DATEI_NAME].sql</code></pre>



<p class="wp-block-paragraph">Wenn man der Backupdatei ein Datum hinzufügen will, kann dies wie folgt gemacht werden:</p>



<pre class="wp-block-code"><code>mysqldump -u &#91;USERNAME] --password="&#91;PASSWORT]" &#91;DATENBANK]  > `date +%Y.%m.%d-%H.%M.%S`_DATEINAME.sql'</code></pre>



<h2 class="wp-block-heading">mysql</h2>



<p class="wp-block-paragraph">Um ein Datenbankbackup wiederherzustellen wird das mysql Programm genutzt:</p>



<pre class="wp-block-code"><code>mysql -u &#91;MYSQL_USER] --password="&#91;MYSQL_PW]" &#91;MYSQL_DB] &lt; &#91;BACKUP_DATEI_NAME].sql</code></pre>



<p class="wp-block-paragraph">Wenn die Backupdatei mit gzip komprimiert ist.</p>



<pre class="wp-block-code"><code>gunzip &lt; &#91;BACKUP_DATEI_NAME].sql.gz | mysql &#91;MYSQL_USER] --password="&#91;MYSQL_PW]" &#91;MYSQL_DB]</code></pre>



<p class="wp-block-paragraph">Die Datei auf einem Remoteserver wiederherstellen:</p>



<pre class="wp-block-code"><code>gunzip -c &#91;BACKUP_DATEI_NAME].sql.gz | ssh -p &#91;SSH_PORT] -i &#91;SSH_PRIVATE_KEY] &#91;SSH_USER]@&#91;SSH_SERVER] "mysql -h &#91;MYSQL_SERVER] -P &#91;MYSQL_PORT] -u &#91;MYSQL_USER] --password='&#91;MYSQL_PW]' &#91;MYSQL_DB] </code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2023/05/mysql-backups-auf-der-konsole/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mac: SSH Server aktivieren/deaktivieren</title>
		<link>https://www.blattertech.ch/2022/12/mac-ssh-server-aktivieren-deaktivieren/</link>
					<comments>https://www.blattertech.ch/2022/12/mac-ssh-server-aktivieren-deaktivieren/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Sun, 18 Dec 2022 19:11:07 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=1884</guid>

					<description><![CDATA[Der SSH Server auf einem Mac ist standardmässig deaktiviert. Hier eine Anleitung wie er aktiviert und deaktiviert werden kann. Der Status des SSH-Server kann wie folgt geprüft werden: Zum deaktivieren des SSH-Servers folgenden Befehl ausführen: Beim deaktivieren wird gefragt, ob der Server wirklich deaktiviert werden soll. &#8230; <p><a href="https://www.blattertech.ch/2022/12/mac-ssh-server-aktivieren-deaktivieren/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Der SSH Server auf einem Mac ist standardmässig deaktiviert. Hier eine Anleitung wie er aktiviert und deaktiviert werden kann.</p>



<pre class="wp-block-code"><code>sudo systemsetup -setremotelogin on</code></pre>



<p class="wp-block-paragraph">Der Status des SSH-Server kann wie folgt geprüft werden:</p>



<pre class="wp-block-code"><code>sudo systemsetup -getremotelogin</code></pre>



<p class="wp-block-paragraph">Zum deaktivieren des SSH-Servers folgenden Befehl ausführen:</p>



<pre class="wp-block-code"><code>sudo systemsetup -setremotelogin off</code></pre>



<p class="wp-block-paragraph">Beim deaktivieren wird gefragt, ob der Server wirklich deaktiviert werden soll. Soll diese Frage auch umgangen werden, kann der Befehl mit force ausgeführt werden:</p>



<pre class="wp-block-code"><code>sudo systemsetup -f -setremotelogin off</code></pre>



<p class="wp-block-paragraph">Nach dem deaktivieren wieder prüfen, ob das Resultat auch entsprechend ist:</p>



<pre class="wp-block-code"><code>sudo systemsetup -getremotelogin</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2022/12/mac-ssh-server-aktivieren-deaktivieren/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mac: Spacer / Separator dem Dock hinzufügen</title>
		<link>https://www.blattertech.ch/2022/12/mac-spacer-separator-dem-dock-hinzufuegen/</link>
					<comments>https://www.blattertech.ch/2022/12/mac-spacer-separator-dem-dock-hinzufuegen/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Sat, 17 Dec 2022 21:21:19 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Dock]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=1881</guid>

					<description><![CDATA[Um das Dock im Mac ein wenig aufzuräumen und die Icon zu gruppieren, können Spacer hinzugefügt werden. Im Terminal können die Spacer mit folgenden Befehlen hinzugefügt werden: Normaler Spacer: Schmaler Spacer: Quelle]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Um das Dock im Mac ein wenig aufzuräumen und die Icon zu gruppieren, können Spacer hinzugefügt werden.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="500" height="90" src="https://www.blattertech.ch/wp-content/uploads/2022/12/Spacer-Dock.webp" alt="" class="wp-image-1882" srcset="https://www.blattertech.ch/wp-content/uploads/2022/12/Spacer-Dock.webp 500w, https://www.blattertech.ch/wp-content/uploads/2022/12/Spacer-Dock-300x54.webp 300w" sizes="(max-width: 500px) 100vw, 500px" /></figure>



<p class="wp-block-paragraph">Im Terminal können die Spacer mit folgenden Befehlen hinzugefügt werden:</p>



<p class="wp-block-paragraph">Normaler Spacer:</p>



<pre class="wp-block-code"><code>defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}'; killall Dock</code></pre>



<p class="wp-block-paragraph">Schmaler Spacer:</p>



<pre class="wp-block-code"><code>defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="small-spacer-tile";}'; killall Dock</code></pre>



<p class="wp-block-paragraph"><a href="https://chrispennington.blog/blog/add-spacer-in-macos-dock/" target="_blank" rel="noreferrer noopener">Quelle</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2022/12/mac-spacer-separator-dem-dock-hinzufuegen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mac: einen Private Key zum Schlüsselbund hinzufügen</title>
		<link>https://www.blattertech.ch/2022/12/mac-einen-private-key-zum-schluesselbund-hinzufuegen/</link>
					<comments>https://www.blattertech.ch/2022/12/mac-einen-private-key-zum-schluesselbund-hinzufuegen/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Sat, 17 Dec 2022 20:35:05 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Keychain]]></category>
		<category><![CDATA[Private Key]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=1879</guid>

					<description><![CDATA[Der native SSH Client von MacOS X kann den Schlüsselbund verwenden um auf das Passwort desselben zugreifen zu können.Um den Private Key zum Schlüsselbund hinzuzufügen verwende folgenden Befehl: Wenn der Private Key unter .ssh abgelegt ist und den Namen id_Mac hat, muss folgender Befehl verwendet werden: &#8230; <p><a href="https://www.blattertech.ch/2022/12/mac-einen-private-key-zum-schluesselbund-hinzufuegen/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Der native SSH Client von MacOS X kann den Schlüsselbund verwenden um auf das Passwort desselben zugreifen zu können.<br>Um den Private Key zum Schlüsselbund hinzuzufügen verwende folgenden Befehl:</p>



<pre class="wp-block-code"><code>ssh-add -K /pfad/zum/private/key</code></pre>



<p class="wp-block-paragraph">Wenn der Private Key unter .ssh abgelegt ist und den Namen id_Mac hat, muss folgender Befehl verwendet werden:</p>



<pre class="wp-block-code"><code>ssh-add -K ~/.ssh/id_Mac</code></pre>



<p class="wp-block-paragraph">Anschliessend muss das Passwort des Private Keys eingegeben werden. Anschliessend kann dieser Private Key ohne Passwort verwendert werden.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2022/12/mac-einen-private-key-zum-schluesselbund-hinzufuegen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>E-Mail signieren und verschlüsseln mit S/MIME</title>
		<link>https://www.blattertech.ch/2022/12/e-mail-signieren-und-verschluesseln-mit-s-mime/</link>
					<comments>https://www.blattertech.ch/2022/12/e-mail-signieren-und-verschluesseln-mit-s-mime/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Tue, 13 Dec 2022 05:27:13 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[E-Mail]]></category>
		<category><![CDATA[s/mime]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=1871</guid>

					<description><![CDATA[E-Mails können mit S/MIME signiert und verschlüsselt werden. Dieser Standard wird von den meisten E-Mail Clients unterstützt. Um S/MIME nutzen zu können, braucht es ein Zertifikat welches durch eine zentrale Zertifizierungsstelle ausgestellt wird. Der italienische Anbieter Actalis bietet kostenlose S/MIME Zertifikate an, welche ohne jeglichen Support &#8230; <p><a href="https://www.blattertech.ch/2022/12/e-mail-signieren-und-verschluesseln-mit-s-mime/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">E-Mails können mit S/MIME signiert und verschlüsselt werden. Dieser Standard wird von den meisten E-Mail Clients unterstützt. Um S/MIME nutzen zu können, braucht es ein Zertifikat welches durch eine zentrale Zertifizierungsstelle ausgestellt wird. </p>



<p class="wp-block-paragraph">Der italienische Anbieter Actalis bietet kostenlose S/MIME Zertifikate an, welche ohne jeglichen Support genutzt werden können. Für Support kann man ein kostenpflichtiges Zertifikat bei diesem oder einem anderen Anbieter erwerben.</p>



<p class="wp-block-paragraph">Im <a rel="noreferrer noopener" href="https://extrassl.actalis.it/portal/uapub/freemail?lang=en" target="_blank">Online Assistenten</a> von Actalis kann man das Zertifikat mit Eingabe der E-Mailadresse erstellen. </p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="988" src="https://www.blattertech.ch/wp-content/uploads/2022/12/Actalis-smime-1024x988.png" alt="" class="wp-image-1872" srcset="https://www.blattertech.ch/wp-content/uploads/2022/12/Actalis-smime-1024x988.png 1024w, https://www.blattertech.ch/wp-content/uploads/2022/12/Actalis-smime-300x289.png 300w, https://www.blattertech.ch/wp-content/uploads/2022/12/Actalis-smime-768x741.png 768w, https://www.blattertech.ch/wp-content/uploads/2022/12/Actalis-smime-1536x1482.png 1536w, https://www.blattertech.ch/wp-content/uploads/2022/12/Actalis-smime.png 1542w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">An die E-Mailadresse wird ein Bestätigungscode versandt welcher im zweiten Schritt eingegeben werden muss. </p>



<p class="wp-block-paragraph">Anschliessend wird das Passwort für das Zertifikat ausgegeben, welches an einem sicheren Ort aufbewahrt werden sollte. </p>



<p class="wp-block-paragraph">Das Zertifikat selber kommt kurz danach per E-Mail als ZIP-Anhang. Zusätzlich kommen in diesem E-Mail die Zugangsdaten zum Admin-Panel von Actalis in welchem das Zertifikat auch wiederrufen oder verlängert werden kann. <br>Das Zertifikat wird im Format PFX ausgeliefert.</p>



<h2 class="wp-block-heading">Zertifikat unter Mac einbinden</h2>



<p class="wp-block-paragraph">Um das Zertifikat in Mac zu installieren, muss man die Schlüsselbundverwaltung öffnen und auf Abschnitt &#171;Anmeldung&#187; klicken. Anschliessend kann das Zertifikat mit einem Doppelklick geöffnet werden. Es folgt die Eingabe des Zertifikat-Passworts und anschliessend ist das Passwort importiert.</p>



<p class="wp-block-paragraph">Apple Mail nutzt das Zertifikat sofort ohne dass dieses speziell eingerichtet werden muss. Für den Zugriff auf den Schlüsselbund erfolgt jeweils eine Passwortabfrage welche mit &#171;Immer erlauben&#187; auch deaktiviert werden kann.</p>



<h2 class="wp-block-heading">Zertifikat unter iOS einbinden.</h2>



<p class="wp-block-paragraph">Hierzu habe ich eine schöne Schritt-für-Schritt Anleitung mit Bildern gefunden, welche ich hier verlinke:</p>



<p class="wp-block-paragraph"><a href="https://knowledge.digicert.com/de/de/quovadis/secure-e-mail/mac-ios/Secure-E-Mail-unter-iOS-importieren-und-in-Apple-Mail-konfigurieren.html" target="_blank" rel="noreferrer noopener">https://knowledge.digicert.com/de/de/quovadis/secure-e-mail/mac-ios/Secure-E-Mail-unter-iOS-importieren-und-in-Apple-Mail-konfigurieren.html</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2022/12/e-mail-signieren-und-verschluesseln-mit-s-mime/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Logrotage mit einem bash-Script</title>
		<link>https://www.blattertech.ch/2022/12/logrotage-mit-einem-bash-script/</link>
					<comments>https://www.blattertech.ch/2022/12/logrotage-mit-einem-bash-script/#respond</comments>
		
		<dc:creator><![CDATA[blattertech]]></dc:creator>
		<pubDate>Tue, 13 Dec 2022 05:00:56 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Logrotate]]></category>
		<guid isPermaLink="false">https://www.blattertech.ch/?p=1744</guid>

					<description><![CDATA[Linux rotiert Logfiles in mehreren Stufen. Dabei gibt es verschiedene Möglichkeiten wie diese Logfiles aussehen können. Der Hintergrund eines solchen rotierenden Logfiles ist es, die Dateien einerseits nicht zu gross werden zu lassen und andererseits, sollten sie gzip komprimiert sein, auch Platz zu sparen. Hier habe &#8230; <p><a href="https://www.blattertech.ch/2022/12/logrotage-mit-einem-bash-script/" class="more-link"><span class="morelink-icon">Weiterlesen</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Linux rotiert Logfiles in mehreren Stufen. Dabei gibt es verschiedene Möglichkeiten wie diese Logfiles aussehen können.</p>



<pre class="wp-block-code"><code># Variante 1
logfile.log
logfile.log.0.gz
logfile.log.1.gz
logfile.log.2.gz

# Variante 2
maillog
maillog-20220828
maillog-20220904
maillog-20220911
maillog-20220918
</code></pre>



<p class="wp-block-paragraph">Der Hintergrund eines solchen rotierenden Logfiles ist es, die Dateien einerseits nicht zu gross werden zu lassen und andererseits, sollten sie gzip komprimiert sein, auch Platz zu sparen.</p>



<p class="wp-block-paragraph">Hier habe hier zwei Varianten für ein solches Logrotate Script:</p>



<h2 class="wp-block-heading">Logrotate nach fixem Zeitraum</h2>



<pre class="wp-block-code"><code>#!/bin/sh

# Log directory
LOGDIR=/data/logs

# Maximum number of archive logs to keep
MAXNUM=30

#Log files to be handled in that log directory 
files=(access.log error.log)

for LOGFILE in "${files&#91;@]}"
do 

## Check if the last log archive exists and delete it.
if &#91; -f $LOGDIR/$LOGFILE.$MAXNUM.gz ]; then
rm $LOGDIR/$LOGFILE.$MAXNUM.gz
fi

NUM=$(($MAXNUM - 1))

## Check the previous log file.
while &#91; $NUM -ge 0 ]
do
NUM1=$(($NUM + 1))
if &#91; -f $LOGDIR/$LOGFILE.$NUM.gz ]; then
mv $LOGDIR/$LOGFILE.$NUM.gz $LOGDIR/$LOGFILE.$NUM1.gz
fi

NUM=$(($NUM - 1))
done


# Compress and clear the log file
if &#91; -f $LOGDIR/$LOGFILE ]; then
cat $LOGDIR/$LOGFILE | gzip &gt; $LOGDIR/$LOGFILE.0.gz
cat /dev/null &gt; $LOGDIR/$LOGFILE
fi

done</code></pre>



<p class="wp-block-paragraph"><a rel="noreferrer noopener" href="https://unix.stackexchange.com/questions/231486/how-to-implement-logrotate-in-shell-script" target="_blank">Quelle</a> </p>



<h2 class="wp-block-heading">Logrotate nach Filegrösse</h2>



<pre class="wp-block-code"><code>#!/bin/bash
checkSizeOver() {
  typeset -i LFSB LFSM LOG_SIZE=10
  LF=$1
  LOG_SIZE=$2
  LFSB=$(stat -c "%s" $LF)
  # This is bytes - turn into MB, base 2}
  LFSM=${LFSB}/1048576
  # This is bytes - turn into MB, base 2
  if &#91; $LFSM -gt $LOG_SIZE ]
    then
      return 0
    else
      return 1
  fi
}

LOG_PATH=$1
OLD_LOG_PATH=$2
for file in $LOG_PATH/*.log
do
  SIZE=10
  NAME=$(basename $file)
  now="$(date +'%Y-%m-%d_%H-%m')"
  if checkSizeOver $file $SIZE;
    then
      DEST=$OLD_LOG_PATH/$NAME.$now
      mv $file $DEST
      echo Logfile $file is greater than $SIZE MB
    else
      echo Logfile $file is less than $SIZE MB
  fi
done</code></pre>



<p class="wp-block-paragraph"><a href="https://gist.github.com/jkanclerz/b878617860b66a070215427e92f1683f">Quelle</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.blattertech.ch/2022/12/logrotage-mit-einem-bash-script/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
