Archiv der Kategorie: Wissen

Wissenswertes (manchmal auch nur für mich :) ) aus diversen Fachbereichen.

Zertifikat für Postfix und Dovecot unter ISPConfig erneuern

wechseln ins tmp Verzeichnis

cd /tmp

Key erstellen

openssl genrsa -des3 -out srv01.linux-welten.de.key 2048

Phrase eingeben

Generating RSA private key, 2048 bit long modulus
e is 65537 (0x10001)
Enter pass phrase for srv01.linux-welten.de.key: SICHEREphrase
Verifying - Enter pass phrase for srv01.linux-welten.de.key: SICHEREphrase

csr erstellen

openssl req -new -key srv02.linux-welten.de.key -out srv02.linux-welten.de.csr

Fragen beantworten

Enter pass phrase for srv02.linux-welten.de.key: SICHEREphrase
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:THUERINGEN
Locality Name (eg, city) []:BAD LIEBENSTEIN
Organization Name (eg, company) []:Linux Welten
Organizational Unit Name (eg, section) []:Technik
Common Name (e.g. server FQDN or YOUR name) []:srv02.linux-welten.de
Email Address []:----@linux-welten.de

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

crt erstellen

openssl x509 -req -days 365 -in srv02.linux-welten.de.csr -signkey srv02.linux-welten.de.key -out srv02.linux-welten.de.crt

Phrase eingeben

Signature ok
subject=/C=DE/ST=THUERINGEN/L=BAD LIEBENSTEIN/OU=Technik/CN=srv02.linux-welten.de/emailAddress=----@linux-welten.de
Getting Private key
Enter pass phrase for srv02.linux-welten.de.key

Key rsa

openssl rsa -in srv02.linux-welten.de.key -out srv02.linux-welten.de.key.nopass

umbenennen

mv srv02.linux-welten.de.key.nopass srv02.linux-welten.de.key

Pem erstellen

openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Fragen beantworten

Enter pass phrase for srv02.linux-welten.de.key: SICHEREphrase
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:THUERINGEN
Locality Name (eg, city) []:BAD LIEBENSTEIN
Organization Name (eg, company) []:Linux Welten
Organizational Unit Name (eg, section) []:Technik
Common Name (e.g. server FQDN or YOUR name) []:srv02.linux-welten.de
Email Address []:----@linux-welten.de

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Dateien an richtige Stelle verschieben, alte Dateien sichern, postfix neu starten

cd /etc/postfix/
mv smtpd.cert smtpd.cert.old
mv smtpd.key smtpd.key.old
cp -a /root/srv02.linux-welten.de.crt ./
cp -a /root/srv02.linux-welten.de.key ./
mv srv02.linux-welten.de.crt ./smtpd.cert
mv srv02.linux-welten.de.key ./smtpd.key
chmod 600 ./smtpd.cert
chmod 600 ./smtpd.key
/etc/init.d/postfix restart

Wenn nach dem Perfect Server HowTo installiert wurde, greift dovecot auf die gleichen Zertifikate zu. Überprüfen:

vim /etc/dovecot/dovecot.conf

Suchen nach den Pfadangaben Zertifikat

ssl_cert = </etc/postfix/smtpd.cert
ssl_key = </etc/postfix/smtpd.key

Wenn der Pfad passt, dovecot neu starten

/etc/init.d/dovecot restart

 

Linux Befehlssammlung gegen das vergessen #1

Speicherbelegung aktuell

free -m

Leistung HDD testen

sudo hdparm -tT --direct /dev/sdX

32 oder 64 bit?

getconf LONG_BIT

Version (Bei Ablegern nach Update manchmal überschrieben. zB Mint -> Ubuntu)

cat /etc/issue

Mailman Admin Passwort reset

/usr/lib/mailman/bin/change_pw -l Listenname -p NeuesPasswort

Mailman Liste Rückstandslos löschen

/usr/lib/mailman/bin/rmlist -a meineliste

Mailman Liste OHNE Archiv löschen

/usr/lib/mailman/bin/rmlist meineliste

 

JTLwawi bricht Webshopabgleich ab

JTLwawi hat den Webshop Abgleich mit folgendem Fehler abgebrochen:

Fehler: Falscher Parameter!

URL: http://shop.xxxxxxxx.de/xxxx/dbeS/Artikel.php

Der Fehler wurde durch Artikel in der Tabelle dbo.tQueue erzeugt. Ein herauslöschen der falschen Einträge kann mittels dem SQL Server Managementstudio erledigt werden. Dazu

  • Management Studio starten
  • mit der Datenbank verbinden
  • zur Tabelle dbo.tQueue wechseln

und folgende Abfrage ausführen

SELECT * FROM dbo.tQueue WHERE cName='tArtikel' AND nAction=2

tauchen dort Einträge mit dem kWert 0 auf, diese entfernen. Dies geschieht mit der Abfrage

DELETE FROM dbo.tQueue WHERE cName='tArtikel' AND kWert=0

Jetzt den Webshopabgleich neu starten und prüfen ob dieser fehlerfrei durchläuft.

Bildschirmfoto-JTLwawi-Fehler-falscher-Parameter-300x134
Bildschirmfoto-JTLwawi-Fehler-falscher-Parameter-sql-selectBildschirmfoto-JTLwawi-Fehler-falscher-Parameter-sql-delete

Zuletzt geänderte Dateien finden

Wir werden in Zukunft auch Kurzanfragen zu Server „Problemen“ hier veröffentlichen. Vielleicht helfen diese kurzen Tipps dem ein oder anderen weiter. Diese Tipps werden unter der Kategorie knowledge base (KB) veröffentlicht.

Frage:

Wie finde ich auf meinem dedizierten Server die zuletzt geänderten php Dateien? Am besten mit einer Option wo ich die Tage vorgeben kann?

Für diese Aufgabe kann man das kleine Tool find benutzen. In obiger Anfrage handelte es sich um Dateien mit der Endung .php im Verzeichnis /var/www/ inklusive der Unterverzeichnisse. Für eine schönere Ausgabe in das Verzeichnis wechseln

cd /var/www

und dort die suche mittels find starten

find . -name '*.php' -type f -mtime -1

Was bedeutet das alles

  • find ⇒ Das Programm an sich
  • . ⇒ Verzeichnis Angabe. Der Punkt bedeutet ab hier/aktuelles Verzeichnis
  • -name ‚*.php‘ ⇒ Der Dateiname ist *.php (* ist Platzhalter für alle Zeichenfolgen)
  • -type f ⇒ es handelt sich um eine Datei
  • -mtime -1 ⇒ innerhalb des letzten Tages (24 Stunden)

Noch eine kurze Erklärung zu mtime.

  • -1 ⇒ innerhalb des letzten Tages
  • +1 ⇒ älter als 1 Tag
  • -8 ⇒ innerhalb der letzten 8 Tage
  • 5 ⇒ 5 + 1 Tag

Für alles weitere, man find :)

modified ecommerce breadcrumb nur auf bestimmten Seiten

Möchte man die breadcrumb (Brotkrümel Navi) nur auf bestimmten Seiten anzeigen, reicht eine kurze if Abfrage. In unserem Beispiel möchten wir die breadcrumb überall außer auf der Startseite und im Checkout (Bestellprozess) anzeigen. Der Standard Eintrag in der index.html ist folgender

<ol class="breadcrumb well">{$navtrail}</ol>

Diese mit folgenden if Abfragen umschließen

      {if $smarty.get.cPath!=null}
				{if !strstr($smarty.server.PHP_SELF, 'checkout')}
					<ol class="breadcrumb well">{$navtrail}</ol>
				{/if}
      {/if}

Diese Abfrage macht nichts anderes als

Bin ich nicht auf der Startseite?
  Und bin ich nicht im Checkout?
    Dann zeige die Navigation (breadcrumb)
  ende checkout Frage
ende Startseite Frage

Dieses Beispiel lässt sich ebenso auf Boxen, Spalten und andere Template Elemente anwenden. Getestet mit modified eCommerce ab 1.06.

modified ecommerce Versand Zone Weltweit

Eine ganz prekäre Angelegenheit ist in meinen Augen der Pauschalversand Weltweit. Aber wenn es gewünscht ist, dann soll es so sein. Es sollte sich dennoch jeder Betreiber eines Online Shops über Inselzuschläge, Zoll usw. im klaren sein.

Ausgangslage war der Versand in zwei Zonen. Zum einen Deutschland und zum anderen Weltweit. modified ecommerce bietet dafür das Modul Versand nach Zonen welches Standard inbegriffen ist. Das Problem, in das Feld der Zonenangabe passen maximal 255 Zeichen. Zählt man alle Länder nach ISO-3166-1 auf, reichen diese 255 Zeichen bei weitem nicht aus. Das einfachste ist an dieser Stelle, die zones.php um den Eintrag Weltweit zu erweitern.

Öffnen der Datei includes/modules/shipping/zones.php und nach folgendem Eintrag suchen (ca. Zeile 143)

for ($i=1; $i<=$this->num_zones; $i++) {
        $countries_table = constant('MODULE_SHIPPING_ZONES_COUNTRIES_' . $i);
        $country_zones = explode(",", $countries_table); // Hetfield - 2009-08-18 - replaced deprecated function split with explode to be ready for PHP >= 5.3
        if (in_array($dest_country, $country_zones)) {
          $dest_zone = $i;
          break;
        }
      }

Diesen Eintrag um den Wert aller ISO Codes erweitern

      for ($i=1; $i<=$this->num_zones; $i++) {
        $countries_table = constant('MODULE_SHIPPING_ZONES_COUNTRIES_' . $i);
        $country_zones = explode(",", $countries_table); // Hetfield - 2009-08-18 - replaced deprecated function split with explode to be ready for PHP >= 5.3
        if (in_array($dest_country, $country_zones)) {
          $dest_zone = $i;
          break;
        }
        // BOF-20141008-CSNAO-WORLD
         if ($countries_table == 'WORLD') {
         $dest_zone = $i;
         break;
         }
        // EOF-20141008-CSNAO-WORLD
      }

Im Backend kann man dann als ISO Code unter Zone 2 WORLD eintragen. Und schon hat man seine Aufteilung in die zwei Zonen Deutschland (DE) und Weltweit (WORLD). Anbei noch ein Snapshop vom Backend mit dem WORLD Eintrag. Die Gewicht/Preis Angaben dienen nur dem Beispiel.

Shop modified eCommerce Versand nach Zonen Weltweit

Shop modified eCommerce Versand nach Zonen Weltweit

JTLwawi doppelte Artikel finden

Manchmal ist es notwendig doppelte Artikel in der WaWi zu filtern. Eine Übersicht (csv,calc) erhält man wie folgt:
SQL Server Management Studio starten, Datenbank auswählen und folgende Abfrage ausführen

SELECT cArtNr, COUNT(*) AS Anzahl FROM tartikel GROUP BY cArtNr HAVING count(*) >1

Das Ergebnis ist eine Liste mit doppelten (mehrfachen) Artikeln. Im Feld Anzahl erhält man die Anzahl der vorhandenen Artikelnummer. Anschließend kann man mit Hilfe dieser Liste in der Warenwirtschaft aufräumen.

Festplatten über 2 TB

Wenn man Festplatten größer 2 TB verarbeiten möchte, kommt man um GPT (GUID Partition Table) Partitionen nicht mehr umher. Somit scheidet das Tool fdisk aus :) und parted wird dein Freund.

In diesem Beispiel gehe ich von einem HW Raid mit einem Volumen von 6TB aus. Im System via /dev/sdb ansprechbar. Formatiert werden soll das Volumen anschließend als ext3.

Parted starten

sudo parted /dev/sdb

GPT setzen

(parted) mklabel
New disk label type?gpt

Ganze Festplatte als ext3 setzen

(parted) mkpart primary
File system type? [ext2]? ext3
Start? 1
End? -1

parted beenden

quit

anschließend das ganze als ext3 formatieren

mkfs.ext3 /dev/sdb1

Kaffee, Kekse, warten.

Windows CMD Prozesse beenden

Manchmal kommt es bei einem LINUX Admin auch vor, dass er bei Windows Fragen angerufen wird …

Problem des Anrufers, LibreOffice und „weitere Programme“ ließen sich nicht mehr starten. Ein blick in den Taskmanager zeigt, dass die Programme mehrfach gestartet waren bzw. sind. Man könnte jetzt jeden Prozess einzeln beenden… Oder neu Starten ;)

Dank CMD kann man auch alle gleichnamigen in einem Rutsch beenden. Ein hoch auf den Schalter /IM :)

>taskkill /IM soffice.exe /F

Dies beendet zB. alle Tasks mit der Bezeichnung soffice.exe.

Nochmal kurz alle Befehle die ich benötigt habe.

>tasklist

Zeigt die aktuelle Taskliste. Man könnte auch den Taskmanager starten.

>taskkill /pid 3598

„Tötet“ den Prozess mit der PID 3598. Man kann auch mehrere PIDs auf einmal „killen“.

>taskkill /pid 3598 /pid 4268 /pid 4658

Wie auch immer. Ein wenig Konsolenfeeling ist nett ;)