mirror of
https://github.com/dreamforceinc/wDayzLogRotation.git
synced 2025-12-13 11:42:36 +03:00
Update scripts.
This commit is contained in:
72
Test-Start.bat
Normal file
72
Test-Start.bat
Normal file
@@ -0,0 +1,72 @@
|
||||
@echo off
|
||||
:: !!! Needs 'DAYZSERVERSLOCATION' envvar defined !!!
|
||||
:: !!! setx DAYZSERVERSLOCATION Z:\Servers\DayZServer [/m]
|
||||
|
||||
::Server name
|
||||
set serverName=RU11 Test Server
|
||||
::Server files location
|
||||
set serverLocation=%DAYZSERVERSLOCATION%
|
||||
::Server profile location
|
||||
set serverProfile=Instance_4
|
||||
::Server Port
|
||||
set serverPort=35400
|
||||
::Logical CPU cores to use (Equal or less than available)
|
||||
set serverCPU=2
|
||||
::Server config
|
||||
set serverConfig=serverDZ.cfg
|
||||
::Server mods
|
||||
set serverMods=
|
||||
::Client mods
|
||||
set clientMods=@CF;@VPPadminTools;@VanillaPlusPlusMap;@KAMAZ
|
||||
::Startup parameters
|
||||
set startupParams=-profiles=%serverProfile% -config=%serverProfile%\%serverConfig% -name=Server -port=%serverPort%
|
||||
::Additional Startup parameters
|
||||
set additionalParams=-cpuCount=%serverCPU% -adminLog
|
||||
::Path to log rotation script
|
||||
set scriptLocation=D:\Sync\SRC\PowerShell\wDayzLogRotation\wDayzLogRotation.ps1
|
||||
@REM set scriptLocation=%serverLocation%\wDayzLogRotation.ps1
|
||||
::BEC location
|
||||
set becLocation=%serverLocation%\BEC
|
||||
@REM set becLocation=
|
||||
::AdminTool's logs location
|
||||
set adminToolLogsLocation=%serverLocation%\%serverProfile%\VPPadminTools\Logging
|
||||
@REM set adminToolLogsLocation=
|
||||
|
||||
|
||||
:: !!! (DON'T EDIT BELOW) !!!
|
||||
::Sets title for terminal
|
||||
title %serverName% batch
|
||||
set cwd=%CD%
|
||||
cd /d "%serverLocation%"
|
||||
|
||||
::Prepare commandline
|
||||
if defined serverMods set tsm="-serverMod=%serverMods%"
|
||||
if defined clientMods set tcm="-mod=%clientMods%"
|
||||
set allMods=%tsm% %tcm%
|
||||
set cmdLine="DayZServer_x64.exe" %startupParams% %additionalParams% %allMods%
|
||||
|
||||
::BEC's logs location
|
||||
if defined becLocation (
|
||||
set becLogsLocation=%becLocation%\Log\%serverProfile%
|
||||
) else (
|
||||
set becLogsLocation=
|
||||
)
|
||||
|
||||
::Start log rotation
|
||||
powershell.exe -File "%scriptLocation%" "%serverLocation%" "%serverLocation%\%serverProfile%" "%becLogsLocation%" "%adminToolLogsLocation%"
|
||||
|
||||
goto _exit
|
||||
|
||||
timeout 3 /nobreak >nul
|
||||
echo.
|
||||
|
||||
::Start DayZServer
|
||||
start "DayZ %serverProfile%" /high %cmdLine%
|
||||
|
||||
::Start BEC
|
||||
cd /d "%becLocation%"
|
||||
start "BEC %serverProfile%" "%becLocation%\Bec.exe" -f %serverProfile%.cfg --dsc
|
||||
|
||||
:_exit
|
||||
cd /d "%cwd%"
|
||||
echo END
|
||||
@@ -3,67 +3,63 @@
|
||||
# https://github.com/dreamforceinc
|
||||
#
|
||||
# Input parameters:
|
||||
# <Path to server's location> : Absolute, fully qualified path to server's root folder.
|
||||
# <Name of instance> : Usually name of folder inside the server's root folder. Can be absolute path.
|
||||
# : In this case, the last part of path interpreted as the name of instance.
|
||||
# [Path to BEC location] : Optional. By default, BEC location inside the server's root folder.
|
||||
# <Path to server location> : Absolute, fully qualified path to server's root folder.
|
||||
# <Path to instance> : Absolute, fully qualified path to server's instance folder.
|
||||
# [Path to BEC's logs location] : Optional. By default, BEC location inside the server's root folder.
|
||||
# [Path to Admin Tool's logs location]: Optional. By default, AT location inside the instance's folder.
|
||||
#
|
||||
# Example:
|
||||
# powershell.exe -File "wDayzLogRotation.ps1" "Z:\Servers\DayZServer" "Instance_1" "D:\server tools\BEC"
|
||||
# powershell.exe -File "wDayzLogRotation.ps1" "Z:\Servers\DayZServer" "Z:\Servers\DayZServer\profiles\Instance_1" "D:\server tools\BEC" "Z:\Servers\DayZServer\profiles\Instance_1\VPPadminTools"
|
||||
|
||||
# ------------------------------[ Configuration ]------------------------------
|
||||
$daysAmount = 7 # Number of days to store logs
|
||||
$serverLocation = "Z:\DayZServer" # Path to server's location
|
||||
$instance = "Instance_1" # Instance's NAME.
|
||||
$becLocation = "${serverLocation}\BEC" # Path to BEC
|
||||
$noDelete = $false # For tests - don't delete logs
|
||||
$noDelete = $true # For tests - don't delete logs
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
if ($args[0]) { $serverLocation = $args[0] }
|
||||
if ($args[1]) { $instance = $args[1] }
|
||||
if ($args[2]) { $becLocation = $args[2] }
|
||||
# -------------------------[ !!! DON'T EDIT BELOW !!! ]------------------------
|
||||
$serverLocation = $args[0]
|
||||
$instanceDir = $args[1]
|
||||
$becLogDir = $null
|
||||
$adminToolLogDir = $null
|
||||
if ($args[2]) { $becLogDir = $args[2] }
|
||||
if ($args[3]) { $adminToolLogDir = $args[3] }
|
||||
|
||||
if ([System.IO.Path]::IsPathRooted($instance)) {
|
||||
$instanceDir = "${instance}"
|
||||
$instance = Split-Path -Path "${instanceDir}" -Leaf
|
||||
} else {
|
||||
$instanceDir = "${serverLocation}\${instance}"
|
||||
}
|
||||
|
||||
if (![System.IO.Path]::IsPathRooted($becLocation)) {
|
||||
$becLocation = "${serverLocation}\${becLocation}"
|
||||
}
|
||||
|
||||
$destDir = "${instanceDir}\RotatedLogs"
|
||||
$daysAmount = [Math]::Abs($daysAmount)
|
||||
$becLogDir = "${becLocation}\Log\${instance}"
|
||||
$becDestDir = "${destDir}\BEC"
|
||||
$instance = Split-Path -Path "${instanceDir}" -Leaf
|
||||
$destDir = "${instanceDir}\RotatedLogs"
|
||||
$destDelDir = "${destDir}\DeletedLogs"
|
||||
if ($becLogDir) { $becDestDir = "${destDir}\BEC" }
|
||||
if ($adminToolLogDir) { $adminToolDestDir = "${destDir}\AdminTool" }
|
||||
|
||||
### Debug output ###
|
||||
# Write-Host " serverLocation: '${serverLocation}'"
|
||||
# Write-Host " instanceDir: '${instanceDir}'"
|
||||
# Write-Host " instance: '${instance}'"
|
||||
# Write-Host " destDir: '${destDir}'"
|
||||
# Write-Host " destDelDir: '${destDelDir}'"
|
||||
# Write-Host " becLogDir: '${becLogDir}'"
|
||||
# Write-Host " becDestDir: '${becDestDir}'"
|
||||
# Write-Host " adminToolLogDir: '${adminToolLogDir}'"
|
||||
# Write-Host " adminToolDestDir: '${adminToolDestDir}'"
|
||||
|
||||
Write-Host "Start Log rotation powershell script"
|
||||
$date = Get-Date
|
||||
$fileList = $null
|
||||
|
||||
# # Debug output
|
||||
# Write-Host "serverLocation: '${serverLocation}'"
|
||||
# Write-Host " instance: '${instance}'"
|
||||
# Write-Host " instanceDir: '${instanceDir}'"
|
||||
# Write-Host " destDir: '${destDir}'"
|
||||
# Write-Host " destDelDir: '${destDelDir}'"
|
||||
# Write-Host " becLocation: '${becLocation}'"
|
||||
# Write-Host " becLogDir: '${becLogDir}'"
|
||||
# Write-Host " becDestDir: '${becDestDir}'"
|
||||
|
||||
Write-Host "Now DAYZ..."
|
||||
$fileList = Get-Item -Path $instanceDir\*.rpt, $instanceDir\*.log, $instanceDir\*.adm | Where-Object { $_.LastWriteTime.Date -lt $date.Date }
|
||||
# Write-Host $fileList -Separator "`r`n"
|
||||
#region ### DayZ Game ###
|
||||
Write-Host "Rotating DAYZ logs..."
|
||||
|
||||
If (!(Test-Path -PathType Container $destDir)) {
|
||||
New-Item -ItemType Directory -Path $destDir | Out-Null
|
||||
Write-Host "Created new folder: ${destDir}"
|
||||
}
|
||||
|
||||
Write-Host "Moving RPTs and LOGs to ${destDir}:"
|
||||
$fileList = Get-Item -Path $instanceDir\*.rpt, $instanceDir\*.log, $instanceDir\*.adm | Where-Object { $_.LastWriteTime.Date -lt $date.Date }
|
||||
# Write-Host $fileList -Separator "`r`n"
|
||||
|
||||
Write-Host "Moving RPTs, ADMs and LOGs to ${destDir}:"
|
||||
foreach ($file in $fileList) {
|
||||
Move-Item -Path $file -Destination $destDir
|
||||
Move-Item -Path $file -Destination $destDir -Force
|
||||
Write-Host "Moved ${file} to ${destDir}"
|
||||
}
|
||||
Write-Host "Total: $($fileList.Length)"
|
||||
@@ -72,21 +68,17 @@ $fileList = Get-Item -Path $destDir\*.rpt, $destDir\*.log, $destDir\*.adm | Wher
|
||||
# Write-Host $fileList -Separator "`r`n"
|
||||
|
||||
Write-Host "Removing RPTs, ADMs and LOGs:"
|
||||
$destDelDir = $destDir
|
||||
if ($noDelete) {
|
||||
$destDelDir = "${destDir}\DeletedLogs"
|
||||
|
||||
If (!(Test-Path -PathType Container $destDelDir)) {
|
||||
New-Item -ItemType Directory -Path $destDelDir | Out-Null
|
||||
Write-Host "Created new folder: ${destDelDir}"
|
||||
}
|
||||
|
||||
foreach ($file in $fileList) {
|
||||
Move-Item -Path $file -Destination $destDelDir
|
||||
Move-Item -Path $file -Destination $destDelDir -Force
|
||||
Write-Host "Moved ${file} to ${destDelDir}"
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
foreach ($file in $fileList) {
|
||||
Remove-Item -Path $file
|
||||
Write-Host "Removed ${file}!"
|
||||
@@ -94,9 +86,12 @@ else {
|
||||
}
|
||||
Write-Host "Total: $($fileList.Length)"
|
||||
Write-Host ""
|
||||
#endregion
|
||||
|
||||
### BEC ###
|
||||
Write-Host "Now BEC..."
|
||||
#region ### BEC ###
|
||||
if ($becDestDir) {
|
||||
Write-Host "Rotating BEC logs..."
|
||||
# $fileList = $null
|
||||
|
||||
If (!(Test-Path -PathType Container $becDestDir)) {
|
||||
New-Item -ItemType Directory -Path $becDestDir | Out-Null
|
||||
@@ -108,7 +103,7 @@ $fileList = Get-ChildItem -Path $becLogDir\*.log -Recurse | Where-Object { $_.La
|
||||
|
||||
Write-Host "Moving BEC's LOGs to ${becDestDir}:"
|
||||
foreach ($file in $fileList) {
|
||||
Move-Item -Path $file -Destination $becDestDir
|
||||
Move-Item -Path $file -Destination $becDestDir -Force
|
||||
Write-Host "Moved ${file} to ${becDestDir}"
|
||||
}
|
||||
Write-Host "Total: $($fileList.Length)"
|
||||
@@ -118,17 +113,68 @@ $fileList = Get-Item -Path $becDestDir\*.log | Where-Object { $_.LastWriteTime -
|
||||
|
||||
Write-Host "Removing BEC's LOGs:"
|
||||
if ($noDelete) {
|
||||
If (!(Test-Path -PathType Container $destDelDir)) {
|
||||
New-Item -ItemType Directory -Path $destDelDir | Out-Null
|
||||
Write-Host "Created new folder: ${destDelDir}"
|
||||
}
|
||||
|
||||
foreach ($file in $fileList) {
|
||||
Move-Item -Path $file -Destination $destDelDir
|
||||
Write-Host "Moved ${file} to ${destDelDir}"
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
foreach ($file in $fileList) {
|
||||
Remove-Item -Path $file
|
||||
Write-Host "Removed ${file}!"
|
||||
}
|
||||
}
|
||||
Write-Host "Total: $($fileList.Length)"
|
||||
Write-Host ""
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ### Admin Tool ###
|
||||
if ($adminToolDestDir) {
|
||||
Write-Host "Rotating AdminTool logs..."
|
||||
|
||||
If (!(Test-Path -PathType Container $adminToolDestDir)) {
|
||||
New-Item -ItemType Directory -Path $adminToolDestDir | Out-Null
|
||||
Write-Host "Created new folder: ${adminToolDestDir}"
|
||||
}
|
||||
|
||||
$fileList = Get-ChildItem -Path $adminToolLogDir\*.txt, $adminToolLogDir\*.log -Recurse | Where-Object { $_.LastWriteTime.Date -lt $date.Date }
|
||||
# Write-Host $fileList -Separator "`r`n"
|
||||
|
||||
Write-Host "Moving admintool's LOGs to ${adminToolDestDir}:"
|
||||
foreach ($file in $fileList) {
|
||||
Move-Item -Path $file -Destination $adminToolDestDir -Force
|
||||
Write-Host "Moved ${file} to ${adminToolDestDir}"
|
||||
}
|
||||
Write-Host "Total: $($fileList.Length)"
|
||||
|
||||
$fileList = Get-Item -Path $adminToolDestDir\*.txt, $adminToolDestDir\*.log | Where-Object { $_.LastWriteTime -lt $date.AddDays(-($daysAmount)) }
|
||||
# Write-Host $fileList -Separator "`r`n"
|
||||
|
||||
Write-Host "Removing admintool's LOGs:"
|
||||
if ($noDelete) {
|
||||
If (!(Test-Path -PathType Container $destDelDir)) {
|
||||
New-Item -ItemType Directory -Path $destDelDir | Out-Null
|
||||
Write-Host "Created new folder: ${destDelDir}"
|
||||
}
|
||||
|
||||
foreach ($file in $fileList) {
|
||||
Move-Item -Path $file -Destination $destDelDir -Force
|
||||
Write-Host "Moved ${file} to ${destDelDir}"
|
||||
}
|
||||
} else {
|
||||
foreach ($file in $fileList) {
|
||||
Remove-Item -Path $file
|
||||
Write-Host "Removed ${file}!"
|
||||
}
|
||||
}
|
||||
Write-Host "Total: $($fileList.Length)"
|
||||
Write-Host ""
|
||||
}
|
||||
#endregion
|
||||
|
||||
Write-Host "End Log rotation powershell script"
|
||||
|
||||
Reference in New Issue
Block a user