環境からのアクセス・ログのダウンロード

この項のスクリプトを使用して、環境からローカル・コンピュータへのアクセス・ログのダウンロード・プロセスを自動化します。

Windowsスケジューラを使用してsyncAccessLog.batをスケジュールし、ログ・ファイルのダウンロードを自動化できます。アプリケーション管理を使用してアクセス・ログをダウンロードする手順は、Oracle Enterprise Performance Management Cloud管理者スタート・ガイドアクティビティ・レポートとアクセス・ログの表示およびダウンロードに関する項を参照してください。

次のスクリプトは環境をチェックし、ローカル・コンピュータのダウンロード・ディレクトリで使用可能なものより新しいログ・ファイルのみをダウンロードします。これはWindowsのスクリプトです。同様のシェル・スクリプトをLinux/UNIX環境用に作成できます。

  1. 次のスクリプトが含まれるsyncAccessLog.batという名前のバッチ(.BAT)ファイルを作成し、C:\automate_scriptsなどのわかりやすい場所に保存します。

    注:

    パスワードに特殊文字が含まれている場合は、特殊文字の処理を参照してください。
    @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. syncAccessLog.batを変更して、次の表のパラメータの値を設定します。これらの値を使用して環境にアクセスし、アクセス・ログをダウンロードします。

    表3-4 syncAccessLog.batに含める変数値

    変数 必要な値
    set apr_dir=%1 アクセス・ログのダウンロード先のディレクトリを指定します。

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

    set username=%2 環境にサインインしてアクセス・ログをダウンロードするために使用するOracle Enterprise Performance Management Cloudのユーザー名です。

    例: set username="ServiceAdmin"

    set password=%3

    username変数で指定したユーザーの暗号化されたパスワードを保存するファイルの名前と場所です。ユーザーのパスワードをプレーン・テキストで指定することもできます(推奨されません)。暗号化されたパスワード・ファイルの作成の詳細は、encryptコマンドを参照してください。

    例:

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

    set password="P@ssword1"

    set url=%4 環境のURL。

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

  3. Windowsスケジューラを使用して、syncAccessLog.batをスケジュールします。詳細なステップは、スクリプトの実行の自動化を参照してください。