• Korn Shell / Bash

    Zeichen aus Zeichenketten mit bash/ksh schneiden

    Mit bash oder Korn Shell kann man auf einfachem Wege Zeichen in Zeichenketten ermitteln, bzw. herausschneiden. Dazu ist einfach nach einer Variable mit : getrennt die erste zu ermittlende Position anzugeben, gefolgt von einem weiteren : mit der Anzahl der auszugebenden Zeichen. ${VARIABLENAME:<erstes Zeichen>:<Anzahl>} Beispiel: TEXT="Holger Slomka" echo ${TEXT:2:3} lge Ein Beispiel für eine mögliche Verwendung, ist die Ausgabe aller Zeilen einer Datei, die nicht mit # beginnen. for Zeile in `cat inifile| cut -d’ ‘ -f1`; do if [[ ${Zeile:0:1} != “#” ]]; then   echo $Zeile/span> fi done Es werden also Kommentarzeilen ausgeblendet, analog grep -v ^#.

  • Korn Shell / Bash,  Shell Scripting

    Sehr nützliche grep Funktionen

    grep wird von Linuxx/Unix Administratoren zwar sehr oft genutzt, einige sehr mächtige Optionen werden aber zu Unrecht wenig genutzt oder sind den Administratoren nicht bekannt. 1. Zeilen vor und nach der Fundstelle des Suchbegriffs ausgeben. grep bietet die äusserst nützliche Funktion, Zeilen vor und nach dem gefundenen Suchbegriff anzuzeigen. Um die Funktionen der grep Optionen darzustellen, verwende ich als Beispiel ein IBM Skript mit folgendem Inhalt, das von grep durchsucht wird: cat collector.sh #!/bin/sh binDir=`dirname ${0}` . ${binDir}/setupCmdLine.sh ${WAS_HOME}/bin/collector.sh “$@” Die Option -A zeigt n Zeilen nach der Fundstelle an. grep -A 1 setup collector.sh . ${binDir}/setupCmdLine.sh ${WAS_HOME}/bin/collector.sh “$@” Die Option -B zeigt n Zeilen vor der Fundstelle an. grep…

  • Oracle Datenbank,  Systemkopie

    Fehlermeldung nach Systemkopie: ORA-01124 file is in use

    Wenn nach einem Restore die folgende Fehlermeldung auftritt, kann dies eine ganz banale Ursache haben: SQL> recover database using backup controlfile until cancel; ORA-00283: recovery session canceled due to errors ORA-01124: cannot recover data file 1 - file is in use or recovery ORA-01110: data file 1: 'D:\ORACLE\HSL\SAPDATA1\SYSTEM_1\SYSTEM.DATA1' Es ist zu prüfen ob die Datenbank bereits geöffnet ist. Diese Situation kann zu Beispiel auftreten, wenn CONTROL.SQL im Rahmen einer SAP Systemkopie ausgeführt wurde. select status from v$instance; STATUS ------------ OPEN Dieer Fehler tritt unter Umständen auf, wenn das von ora_br_copy (siehe SAP Hinweis 784118) erzeugte CONTROL.SQL zuvor ausgeführt wurde. Dies öffnet die Datenbank. Also kein Fehler. Ist ein Recover trotzdem…

  • Kernel,  SAP

    SAP Kernel Neuigkeiten

    Der SAP Kernel ist eine der dynamischsten Komponenten. Aktuell bleibt man am besten, wenn man dem Blog SAP Kernel: Important News folgt. Möchte man Informationen zu einem speziellen SAP Kernel, bietet sich die SAP Suche in der Wissensdatenbank des SAP Support Launchpads an: https://launchpad.support.sap.com/ Als Suchbegriff gibt man den Kernel in der folgenden Art ein: KRNLxxxPLyy, z.B. KRNL749PL400für den SAP Kernel 7.49 mit Patchlevel 400. Die folgenden beiden Seiten sind sehr gute Informationsquellen, um die Abhängigkeiten zwischen Netweaver und dem SAP Kernel zu verstehen: Understanding Kernel Releases for the SAP NetWeaver AS ABAP und SAP Hinweis 1969546 – Release Roadmap Kernel 740

  • SAP,  SAP Solution Manager

    SAP Solution Manager SOLMAN_SETUP – keine Anzeige der Roadmap Leiste

    Solution Manager 7.01 und 7.1 Aus verschiedenen Gründen funktioniert Adobe Flash im verwendeten Browser nicht oder es wurde bewusst deaktiviert (Sicherheitsmaßnahme). Leider bleiben dann die Menüs im SAP Solution Manager WorkCenter leer: Als Abhilfe kann man eine “alte” Version aktivieren. Dazu fügt man einfach am Ende (aber vor den Gartenzaun #) diesen Text in die URL (Browser Addresse): &sap-accessibility=X also z.B.: https://hslsol1.slomka.biz:8001/sap/bc/webdynpro/sap/ags_workcenter?sap-language=DE&sap-accessibility=X#   SAP beschreibt diesen Parameter und weitere URL Parameter für SAP Netweaver auf der Seite SAP Netweaver WebDynpro URL Parameter Das Ergebnis sieht zwar nicht mehr ganz so gut aus, aber zumindest wird das Menü angezeigt. Weitere Informationen liefern die folgenden SAP Links (Anmeldung am SAP Service Marketplace…

  • PowerShell,  SAP,  Windows

    PowerShell CmdLets für Microsoft Active Directory

    Bei einer SAP Installation unter Windows sind bestimmte Gruppen und Benutzerzuordnungen im Active Directory Voraussetzung (siehe SAP Installation Guide). Ein SAP Administrator sollte nicht Mitglied der Windows AD Administratoren Gruppe sein. Bei einer SAP Installation muss er aber sicherstellen, dass die vorausgesetzten Gruppen und Benutzer angelegt wurden. Ein Beispiel: Bei der Installation des SAP Systems HSL sind die globale Gruppe SAP_HSL_GlobalAdmin und die Benutzer hsladm und SAPServiceHSL erforderlich. Die Benutzer müssen der Gruppe zugeordnet sein. Mit folgenden Abfragen kann dies überprüft werden: Abfrage des Benutzers Get-ADUser -properties MemberOf SAPServiceHSL DistinguishedName :CN=SAPServiceHSL,CN=Users,DC=slomka,DC=biz GivenName : MemberOf : {} Name : SAPServiceRPR ObjectClass : user ObjectGUID : 11111111-11a1-1111-a1111-aaa111aaa111 SamAccountName : sapservicerpr SID :…

  • PowerShell,  SAP,  Windows

    Passwort eines Windows Service Accounts per PowerShell zurücksetzen

    Um das Passwort eines Windows Service Benutzer zu ändern, kann in der PowerShell das CmdLet Reset-ADServiceAccountPassword verwendet werden. Reset-ADServiceAccountPassword -Identity SAPServiceHSL Das Kommando funktioniert nur bei standalone manage service accounts, nicht bei group managed service accounts (gMSA).

  • PowerShell

    Auflösung von Variablen in der PowerShell gezielt steuern

    In diesem Tipp geht es um das Maskieren von Variablen und deren Auflösung in der PowerShell. Wie kann ich also zum Beispiel den Text $VAR ausgeben, ohne dass der Inhalt der Variable $VAR angezeigt wird? (Unter Auflösung einer Varibale wird die Anzeige des Inhaltes/Wertes der Variablen verstanden.) Beispiel 1 $a = "Das ist die Variable a" $b = "DAS IST b""$a und $b werden aufgelöst" Das ist die Variable a und DAS IST b werden aufgelöst Beispiel 2 In Literalstrings (umgeben mit einfachen Hochkomma) sollen Variablen nicht aufgelöst werden. '$a und $b werden nicht aufgelöst' $a und $b werden nicht aufgelöst "`$a wird nicht aufgelöst, $b schon" $a wird nicht…

  • PowerShell

    Powershell Befehle mit bestimmten Parametern ermitteln

    Ich möchte kurz erläutern, wie ein PowerShell Befehl gefunden werden kann, der einen bestimmten Parameter besitzt. Dieser Tipp erscheint auf den ersten Blick nicht sonderlich sinnvoll. An einem Beispiel wird aber schnell die sinnvolle Verwendung deutlich. Insbesondere Anfänger, welche die PowerShell erlernen, werden diese Abfrage schnell zu schätzen wissen. Ich möchte zum Beispiel alle Befehle finden, die etwas rekursiv durchsuchen (Dateien/Verzeichnisse/Regitry/etc): Get-Command|where { $_.Parameters.Keys -contains "recurse" } CommandType Name Definition ———– —- ———- Alias copy Copy-Item Cmdlet Copy-Item Copy-Item [-Path] [[-Destination]

  • Oracle Datenbank

    Dauerhafte Formatierungen in SQLPLUS setzen

    In SQLPLUS müssen die Ausgaben leider sehr aufwending mit den Befehlen SET und COLUMN formatiert werden. Zudem sind diese Formatierungen nur in der aktuellen SQLPLUS Sitzung gültig. Damit bestimmte Einstellungen dauerhaft gesetzt werden können, bietet Oracle 2 Konfigurationsdateien an: $ORACLE_HOME/sqlplus/admin/glogin.sql ./login.sql Die erste ist global gültig und wird immer gelesen. Die zweite wird nur gelesen, wenn man SQLPLUS im Verzeichnis dieser Datei gestartet wird. Daher bietet sich für allgemeine Einstellungen, die für alle Benutzer gültig sein sollen, glogin.sql an. Eine von mir gewöhnlich verwendete glogin.sql sieht zum Beispiel so aus: — — Copyright (c) 1988, 2011, Oracle and/or its affiliates. ## — All rights reserved. — NAME ## — glogin.sql…