Scaricamento dei log di accesso da un ambiente

Utilizzare lo script descritto in questa sezione per automatizzare il processo di scaricamento dei log di accesso da un ambiente in un computer locale.

È possibile programmare syncAccessLog.bat mediante la utility di pianificazione di Windows per automatizzare lo scaricamento dei file di log. Fare riferimento alla sezione Visualizzazione e scaricamento di report attività e log di accesso nella Guida introduttiva a Oracle Enterprise Performance Management Cloud per gli amministratori per le procedure che consentono di scaricare i log di accesso mediante Gestione applicazioni.

Lo script seguente verifica l'ambiente e scarica solo i file di log più recenti rispetto a quelli disponibili nella directory di scaricamento nel computer locale. Questo è uno script Windows. È possibile creare uno script shell simile per ambienti Linux/UNIX.

  1. Creare un file batch (.BAT) denominato syncAccessLog.bat contenente lo script riportato di seguito, quindi salvarlo in una posizione significativa, ad esempio C:\automate_scripts.

    Nota:

    Se la password contiene caratteri speciali, fare riferimento alla sezione Gestione dei caratteri speciali.
    @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. Modificare syncAccessLog.bat per impostare i valori per i parametri nella tabella riportata di seguito. Questi valori vengono utilizzati per accedere all'ambiente allo scopo di scaricare i log di accesso.

    Tabella 3-4 Valori di variabili da includere in syncAccessLog.bat

    Variabile Valore previsto
    set apr_dir=%1 Specificare la directory in cui devono essere scaricati i log di accesso.

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

    set username=%2 Nome utente di Oracle Enterprise Performance Management Cloud da utilizzare per eseguire l'accesso all'ambiente per scaricare i log di accesso.

    Esempio: set username="ServiceAdmin"

    set password=%3

    Nome e posizione del file in cui è memorizzata la password cifrata dell'utente specificato dalla variabile username. È inoltre possibile specificare la password dell'utente in testo normale (operazione sconsigliata). Fare riferimento al comando encrypt per informazioni sulla creazione di un password file cifrato.

    Esempi:

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

    set password="P@ssword1"

    set url=%4 URL dell'ambiente.

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

  3. Mediante l'Utilità di pianificazione Windows, programmare syncAccessLog.bat. Vedere Automazione dell'esecuzione degli script per informazioni sulla procedura dettagliata.