SharePoint logs and IIS logs backup/archive and Compress to a file
The data keeps on growing as the SharePoint Farm being adopted
more into the company and customers. It brings more challenges in terms of
keeping up with the pace of requests and data administration. We are going to
address today one part of that problem which is managing SharePoint LOGS weather
it is ULS, Diagnostic and Analytic logging. Also it includes IIS logs. To
address this challenge I did wrote a small script to migrate these logs to a
different directory and them zip these logs and move to a network storage or to
another directory on the local hard drive.
Some of the challenges to achieve this were
·
There are IIS logs with same file names in different
directories (mainly IIS logs) we need to maintain the directories structure to
not miss any logs.
·
The criteria to move these logs out is based on
a number of day , like I need to move all the logs 15 or older away from the
default logs folder or drive.
·
Then zip these logs and add to same archive file
as this script has to run daily and we have a single archive file on that machine
and to maintain the zip name to reflect the server name to easy recognition on
the network store.
·
All this to be scripted in batch scripting and
using a free compress utility (7z) command line utility to include compress in
the script.
·
Donwload 7z and install it to
programfiles as we need to add this install path to environment variable PATH
to use it in script directly
REM
Sharepoint ULS and IIS Log cleanup script (backup and compress)
REM Venu
Madhav
REM
18/july/2013
REM Enter
the file path for the ULS log directory path
SET
log=e:\logs
REM ENTER
no of days old logs to be archived
SET days=15
REM Enter
the location for the temporary logs backup and archive file location
SET
backup=e:\logsbackup\archive
REM sets
the compress utility directory to PATH
variable
SET
PATH=%Path%;C:\Program Files\7-Zip
REM copy
the current logs directory structure
mkdir
%backup%
echo D |
xcopy %log% %backup% /t
REM copies
all the *.log files matching to the criteria in root directory initially
forfiles
-p "%log%" -m *.log -d -%days% -c "cmd /c copy /Y @path
%backup%\@file"
PUSHD
%log%
FOR /F %%v
IN ('dir/ad/b') DO forfiles -p "%log%\%%v" -m *.log -d -%days% -c
"cmd /c copy @path %backup%\%%v\@file"
POPD
REM
creating a compress file with hostname if it already exists it appends these
logs either in local directory or network location
for /F %%v
in ('hostname') DO 7z a e:\logsbackup\%%v.zip %backup%\*
REM once
the logs are compressed remove the log files meeting the criteria
forfiles
-p "%log%" -m *.log -s -d -%days% -c "cmd /c del @path /F
/Q"
REM
removing the temporary folder after the log compressed and zipped
rmdir
%backup% /S /Q
|
Comments
Post a Comment