Zugriffslogs aus einer Umgebung herunterladen

Verwenden Sie das Skript in diesem Abschnitt, um den Prozess zum Herunterladen von Zugriffslogs aus einer Umgebung auf einen lokalen Computer zu automatisieren.

Sie können syncAccessLog.bat mit Windows Scheduler so planen, dass das Herunterladen der Logdateien automatisiert wird. Prozeduren zum Herunterladen von Zugriffslogs mit dem Anwendungsmanagement finden Sie unter Aktivitätsberichte und Zugriffslogs anzeigen und herunterladen in der Dokumentation Erste Schritte mit Oracle Enterprise Performance Management Cloud for Administrators.

Das folgende Skript prüft die Umgebung und lädt nur die Logdateien herunter, die neuer sind als die Berichte, die im Downloadverzeichnis auf dem lokalen Computer verfügbar sind. Es handelt sich hierbei um ein Windows-Skript; Sie können ein ähnliches Shell-Skript für Linux-/UNIX-Umgebungen erstellen.

  1. Erstellen Sie eine Batchdatei (BAT) mit dem Namen syncAccessLog.bat, die das folgende Skript enthält, und speichern Sie sie an einem entsprechenden Speicherort, z.B. C:\automate_scripts.

    Hinweis:

    Wenn Ihr Kennwort Sonderzeichen enthält, finden Sie unter Sonderzeichen verarbeiten weitere Informationen.
    @echo off
    title APR
    setlocal DisableDelayedExpansion
    
    REM To hardcode the values in the script replace %1, %2, %3, and %4 with the actual values.
    REM Example:
    REM set apr_dir="C:\Oracle\apr"
    REM set username="serviceAdmin"
    REM set password="C:\mySecuredir\password.epw"
    REM set url="https://test-cloudpln.pbcs.us1.oraclecloud.com"
    set apr_dir=%1
    set username=%2
    set password=%3
    set url=%4
    
    setlocal EnableDelayedExpansion
    set epmautomate_dir=%cd%
    set lastfile=
    REM if [%1]==[] goto :usage
    REM if [%2]==[] goto :usage
    REM if [%3]==[] goto :usage
    
    set argC=0
    for %%x in (%*) do Set /A argC+=1
    if %argC% neq 0 (
      if %argC% neq 3 (
        if %argC% neq 4 (
          goto :usage
          )
      )
    )
    goto :login
    
    :usage
    echo.
    echo Invalid syntax. Please check the parameters.
    echo Syntax:
    echo 1) syncAccessLog.bat APR_FolderPath_on_client username password url
    echo     or 
    echo 2) set the parameters in the file and use below syntax
    echo syncAccessLog.bat
    goto :end
    
    :login
    setlocal DisableDelayedExpansion
    REM for /f "delims=" %%i in ('epmautomate login %2 %3 %4') do set result=%%i
    for /f "delims=" %%i in ('epmautomate login %username% %password% %url%') do set result=%%i
    
    if not exist %apr_dir% (
    echo.
    echo apr folder does not exist 
    GOTO :end
    )
    cd /D %apr_dir%
    for /f "delims=" %%D in ('dir /a:d /b /o:-n') do ( 
    REM AFTER: for /f "delims=" %%D in ('dir /a-d /b /s /o:-n') do (
      set "lastFile=%%~nD"
      goto :next
    )
    
    :next
    setlocal EnableDelayedExpansion
    echo.
    echo Most Recent Access Log on client is %lastFile%
    
    set "output_cnt=0"
    cd /D %epmautomate_dir%
    for /F "delims=" %%f in ('epmautomate listfiles') do (
    
      cd /D !apr_dir!
      set "line=%%f"
      for /f "tokens=* delims= " %%a in ("!line!") do set line=%%a
      if "!line:~0,3!" equ "apr" (
        if "!line:~-4!" equ ".zip" (
          if "%lastFile%" lss "!line:~4,19!" (
              if "!line:~4,19!" neq "!dirname!" (
                set apr_dir=!apr_dir:"=!
                set /a output_cnt+=1
                set "output[!output_cnt!]=!apr_dir!\!line:~4,19!"
                set "dirname=!line:~4,19!"
                
                REM start downloading
                mkdir "!dirname!"
                cd /D !dirname!
                echo downloading !line!
                set "downloadDir=!apr_dir!\!dirname!"
                cd /D %epmautomate_dir%
                for /f "delims=" %%i in ('epmautomate downloadfile "!line!"') do set result1=%%i
                move "!line:~24!" "!downloadDir!" > nul
                echo !result1!
                REM end downloading
                
              ) else (
                REM start downloading
                cd /D !dirname!
                echo downloading !line!
                set apr_dir=!apr_dir:"=!
                set "downloadDir=!apr_dir!\!dirname!"
                cd /D %epmautomate_dir%
                for /f "delims=" %%i in ('epmautomate downloadfile "!line!"') do set result1=%%i
                move "!line:~24!" "!downloadDir!" > nul
                echo !result1!
                REM end downloading
              )
          ) else (
            REM TO-DO
          )
        )
      )
    )
    
    echo.
    echo %output_cnt% access logs downloaded
    for /L %%n in (1 1 !output_cnt!) DO echo !output[%%n]!
    goto :end
    
    :end
    cd /D %epmautomate_dir%
    endlocal
    
  2. Ändern Sie syncAccessLog.bat, um die Werte für die Parameter in der folgenden Tabelle festzulegen. Mit diesen Werten wird auf die Umgebung zugegriffen, um Zugriffslogs herunterzuladen.

    Tabelle 3-4 In syncAccessLog.bat einzuschließende Variablenwerte

    Variable Erwarteter Wert
    set apr_dir=%1 Geben Sie das Verzeichnis an, in das Zugriffslogs heruntergeladen werden sollen.

    Beispiel: set apr_dir="C:\Oracle\apr"

    set username=%2 Ein Oracle Enterprise Performance Management Cloud-Benutzername, der für die Anmeldung bei der Umgebung verwendet werden muss, um Zugriffslogs herunterzuladen.

    Beispiel: set username="ServiceAdmin"

    set password=%3

    Der Name und Speicherort der Datei, in der das verschlüsselte Kennwort des Benutzers gespeichert wird, der mit der Variable username angegeben wird. Sie können auch das Nur-Text-Kennwort des Benutzers angeben (nicht empfohlen). Informationen zum Erstellen einer verschlüsselten Kennwortdatei finden Sie im Abschnitt zum Befehl encrypt.

    Beispiele:

    set password="C:\mySecuredir\password.epw"

    set password="P@ssword1"

    set url=%4 Die URL der Umgebung.

    Beispiel: set url="https://test-cloudpln.pbcs.us1.oraclecloud.com"

  3. Planen Sie syncAccessLog.bat mit Windows Scheduler. Detaillierte Schritte finden Sie unter Skriptausführung automatisieren