added frameworks entities
This commit is contained in:
@ -0,0 +1,154 @@
|
||||
{
|
||||
"header": {
|
||||
"version": 1,
|
||||
"type": "record",
|
||||
"approw-key": "SRP_HTTP_FRAMEWORK_HTTP_LOGS_ARCHIVE_SCRIPT"
|
||||
},
|
||||
"body": {
|
||||
"record1": {
|
||||
"<1>": "",
|
||||
"<2>": "function Archive-SRPHTTPLogs {",
|
||||
"<3>": "param(",
|
||||
"<4>": " [string]$OlderThanDateStr = \"\",",
|
||||
"<5>": " [string]$LogPathSource = \"C:\\httplogs\",",
|
||||
"<6>": " [string]$LogPathDest = \"c:\\httplogs\\archive\"",
|
||||
"<7>": ")",
|
||||
"<8>": "$progresspreference=\"SilentlyContinue\";",
|
||||
"<9>": "",
|
||||
"<10>": "#Uncomment this to simulate an error",
|
||||
"<11>": "#Blah $Failed;",
|
||||
"<12>": "",
|
||||
"<13>": "if($OlderThanDateStr -ne \"\") {",
|
||||
"<14>": " #Convert the supplied date to an object",
|
||||
"<15>": " #Throws error if not a valid date",
|
||||
"<16>": "",
|
||||
"<17>": " try {",
|
||||
"<18>": " $OlderThanDate = [datetime]$OlderThanDateStr;",
|
||||
"<19>": " } catch {",
|
||||
"<20>": " throw $_;",
|
||||
"<21>": " return;",
|
||||
"<22>": " }",
|
||||
"<23>": "}",
|
||||
"<24>": "",
|
||||
"<25>": "#What files in $LogPathSource are considered to be log files?",
|
||||
"<26>": "$LogExtension = \"*.log\";",
|
||||
"<27>": "",
|
||||
"<28>": "#Check the organized folder exists",
|
||||
"<29>": "New-Item -Path $LogPathDest -ItemType \"directory\" -Force | Out-Null;",
|
||||
"<30>": "",
|
||||
"<31>": "#Get all the files to be organized",
|
||||
"<32>": "$LogFiles = Get-ChildItem -Path $LogPathSource -Filter $LogExtension;",
|
||||
"<33>": "",
|
||||
"<34>": "#Store a hash table of dates from file names",
|
||||
"<35>": "$LogDates = @{};",
|
||||
"<36>": "",
|
||||
"<37>": "#Loop through all the files and organize them by date",
|
||||
"<38>": "ForEach($LogFile in $LogFiles) {",
|
||||
"<39>": "",
|
||||
"<40>": " $FileName = $LogFile.Name;",
|
||||
"<41>": "",
|
||||
"<42>": "\t#Doesn't work on Server 2008",
|
||||
"<43>": " #$FileNameDate = [regex]::Match($FileName,'^(.*?)_').captures.groups[1].value;",
|
||||
"<44>": "\t",
|
||||
"<45>": "\t#Works in Server 2008",
|
||||
"<46>": "\t$FileNameDate = $FileName.Split('_')[0];",
|
||||
"<47>": "",
|
||||
"<48>": " $FileNameDateObj = $Null;",
|
||||
"<49>": "",
|
||||
"<50>": " try {",
|
||||
"<51>": " $FileNameDateObj = [datetime]$FileNameDate;",
|
||||
"<52>": " } catch {",
|
||||
"<53>": " #This was not a valid date so skip",
|
||||
"<54>": " }",
|
||||
"<55>": "",
|
||||
"<56>": " if ($FileNameDateObj -ne $Null) {",
|
||||
"<57>": " #This filename has a valid date",
|
||||
"<58>": "",
|
||||
"<59>": " #Is it within our range?",
|
||||
"<60>": " if($FileNameDateObj -le $OlderThanDate) {",
|
||||
"<61>": " #Yes, the file name is old enough to archive",
|
||||
"<62>": "",
|
||||
"<63>": "\t #Have we seen this date before?",
|
||||
"<64>": " if ($LogDates[$FileNameDate] -eq $null) {",
|
||||
"<65>": "\t\t #No, so create an array list and store it in the hash table under the date key",
|
||||
"<66>": " #Write-Host \"Found logs for new date: $FileNameDate\";",
|
||||
"<67>": " [System.Collections.ArrayList]$NewArray = @($FileName);",
|
||||
"<68>": " $LogDates[$FileNameDate] = \t$NewArray;",
|
||||
"<69>": " } else {",
|
||||
"<70>": "\t\t # Yes, so add it to the array of filenames for that date",
|
||||
"<71>": " # Write-Host \"Adding $FileNameDate\";",
|
||||
"<72>": " $LogDates[$FileNameDate].Add($FileName) | Out-Null;",
|
||||
"<73>": " }",
|
||||
"<74>": "",
|
||||
"<75>": " } else {",
|
||||
"<76>": " #No, the file name is newer than our cut-off date",
|
||||
"<77>": " }",
|
||||
"<78>": "",
|
||||
"<79>": " } else {",
|
||||
"<80>": " #The file name did not have a valid date entry in the filename so skip",
|
||||
"<81>": " }",
|
||||
"<82>": "",
|
||||
"<83>": "}",
|
||||
"<84>": "",
|
||||
"<85>": "#Loop through the hashtable of all the dates seen",
|
||||
"<86>": "#and process the arraylist of files for that date",
|
||||
"<87>": "ForEach($LogDate In $LogDates.keys) {",
|
||||
"<88>": "",
|
||||
"<89>": " #Write-Host \"Processing log dates $LogDate\";",
|
||||
"<90>": "",
|
||||
"<91>": " $LogFolderForDate = $LogPathDest + \"\\\" + $LogDate;",
|
||||
"<92>": "",
|
||||
"<93>": "\t#Make sure the organization folder exists",
|
||||
"<94>": " New-Item -Path $LogFolderForDate -ItemType \"directory\" -Force | Out-Null;",
|
||||
"<95>": "",
|
||||
"<96>": " $LogFilesForDate = $LogDates[$LogDate];",
|
||||
"<97>": "",
|
||||
"<98>": "\t#Loop through all the files for that date",
|
||||
"<99>": " ForEach ($LogFileName in $LogFilesForDate) {",
|
||||
"<100>": "",
|
||||
"<101>": " $Src = $LogPathSource + \"\\\" + $LogFileName;",
|
||||
"<102>": " $Dst = $LogFolderForDate + \"\\\" + $LogFileName;",
|
||||
"<103>": "",
|
||||
"<104>": " #Write-Host \"Moving $Src to $Dst\";",
|
||||
"<105>": " Move-Item -Path $Src -Destination $Dst -Force;",
|
||||
"<106>": "",
|
||||
"<107>": " }",
|
||||
"<108>": "",
|
||||
"<109>": "}",
|
||||
"<110>": "",
|
||||
"<111>": "#Loop through the hashtable of all the dates seen",
|
||||
"<112>": "#and compress the files that were organized into folders",
|
||||
"<113>": "ForEach($LogDate In $LogDates.keys) {",
|
||||
"<114>": "",
|
||||
"<115>": " #Figure out which archive date we want to compress",
|
||||
"<116>": " $LogFolderForDate = $LogPathDest + \"\\\" + $LogDate;",
|
||||
"<117>": "",
|
||||
"<118>": " #The name of the zip file where the archived date should reside",
|
||||
"<119>": " $LogFolderZipFile = $LogPathDest + \"\\\" + $LogDate + \".zip\"",
|
||||
"<120>": "",
|
||||
"<121>": " try {",
|
||||
"<122>": " #Compress it, fail if any error",
|
||||
"<123>": " Compress-Archive -Path $($LogFolderForDate + \"\\\" + $LogExtension) -DestinationPath $LogFolderZipFile -ErrorAction Stop",
|
||||
"<124>": "",
|
||||
"<125>": " #Remove the source log files",
|
||||
"<126>": " Remove-Item -Path $LogFolderForDate -Recurse -Force",
|
||||
"<127>": " } catch {",
|
||||
"<128>": " throw $_;",
|
||||
"<129>": " return",
|
||||
"<130>": " }",
|
||||
"<131>": " ",
|
||||
"<132>": "}",
|
||||
"<133>": "",
|
||||
"<134>": "",
|
||||
"<135>": "",
|
||||
"<136>": "} #End Archive-SRPHTTPLogs",
|
||||
"<137>": "",
|
||||
"<138>": "try {",
|
||||
"<139>": " Archive-SRPHTTPLogs -OlderThanDate '{{ArchiveOlderThanDate}}' -LogPathSource '{{ArchiveLogsFromFolder}}' -LogPathDest '{{ArchiveStorageFolder}}';",
|
||||
"<140>": " Return \"OK\";",
|
||||
"<141>": "} catch {",
|
||||
"<142>": " Return \"ERROR`n\" + $_.ToString() ;",
|
||||
"<143>": "}"
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user