rotate-log-files.ps1 #3

  • //
  • guest/
  • perforce_software/
  • sdp/
  • dev/
  • Server/
  • Windows/
  • p4/
  • common/
  • bin/
  • rotate-log-files.ps1
  • View
  • Commits
  • Open Download .zip Download (2 KB)
# ============================================================================
# Copyright and license info is available in the LICENSE file included with
# the Server Deployment Package (SDP), and also available online:
# https://swarm.workshop.perforce.com/projects/perforce-software-sdp/view/main/LICENSE
# ----------------------------------------------------------------------------

# tag::includeManual[]
<#
    .Synopsis
        rotate-log-files.ps1 rotates key log files for service. 
        
    .Description
        Rotates all log files found and zips them.
        Useful for replicas which may not otherwise have scheduled tasks set.
        For use in Windows Task Scheduler.
        
    .Parameter sdp-instance
        The specified SDP instance to verify
        
    .Example
        rotate-log-files.ps1 Master
        
    .Example
        rotate-log-files.ps1 1
#>
# end::includeManual[]

[CmdletBinding()]
param ([string]$SDPInstance = $(throw "SDPInstance parameter is required."))

Set-StrictMode -Version 2.0

# Source the SDP Functions shared between scripts
$SDPFunctionsPath = Split-Path -parent $MyInvocation.MyCommand.Path | Join-Path -childpath "SDP-Functions.ps1" 
. $SDPFunctionsPath

$global:ScriptName = "rotate-log-files.ps1"
$global:ScriptTask = "Rotate Log Files"
$global:LogFileName = "rotate-log-files.log"

Parse-SDPConfigFile $MyInvocation.MyCommand.Path
Create-LogFile

$OrigPath = convert-path .
Set-Location -Path $global:LOGS_DIR

try {
    Invoke-P4Login
    Get-CurrentJournalCounter
    Rotate-LogFiles
    Remove-OldLogs
    Log "End ${global:SDP_INSTANCE_P4SERVICE_NAME} ${global:ScriptTask}"
    # Don't bother emailing on success
    Write-Output "`r`n${global:ScriptTask} completed successfully - see ${global:logfile}"
}
Catch
{
    write-error $error[0].ScriptStackTrace
    LogException $_.Exception
    Send-Email "FAILED: ${env:computername} ${global:SDP_INSTANCE_P4SERVICE_NAME} ${global:ScriptTask} log."
    Write-Output "`r`nFAILED - ${global:ScriptTask} - see ${global:logfile}"
}

Set-Location -Path $OrigPath
# Change User Description Committed
#3 26659 Robert Cowham Removing out-of-date files and ancient utilities.
Updating SDP Guide for Windows with includes to various .ps1 scripts
Add new sync-replica.ps1 and call it from sync_replica.bat
#2 22984 Robert Cowham Make sure rotate works
#1 22922 Robert Cowham Add a utility to rotate log files - good as a scheduled task for replicas who may not
have other jobs scheduled.