Update to 2.4.0
This commit is contained in:
parent
4751ce1bc3
commit
7b6aabeabd
@ -1,13 +1,12 @@
|
|||||||
# 7zip_to_netapp_v2.ps1
|
# 7zip_to_netapp_v2.ps1
|
||||||
# Author: F. Bischof (frank@meer-web.nl)
|
# Author: F. Bischof (frank@meer-web.nl)
|
||||||
# Version 2.2.0
|
# Version 2.4.0
|
||||||
|
|
||||||
# Set global vars
|
# Set global vars
|
||||||
$TIMESTAMP = Get-Date -Format "yyyyMMddHHmm"
|
$TIMESTAMP = Get-Date -Format "yyyyMMddHHmm"
|
||||||
$TARGET_FILENAME = "${TIMESTAMP}-archive.7z"
|
$TARGET_FILENAME = "${TIMESTAMP}-archive.7z"
|
||||||
$CSV = "C:\Scripts\compress and move\dfs04zip.csv"
|
$CSV = "C:\Scripts\compress and move\dfs04zip.csv"
|
||||||
$LOGFILE = "C:\Scripts\compress and move\$TIMESTAMP.log"
|
$LOGFILE = "C:\Scripts\compress and move\$TIMESTAMP.log"
|
||||||
write-host "===========================STARTING ARCHIVE==========================="
|
|
||||||
|
|
||||||
# Writelog function
|
# Writelog function
|
||||||
if (!(test-path $LOGFILE)) {
|
if (!(test-path $LOGFILE)) {
|
||||||
@ -20,7 +19,7 @@ function WRITELOG {
|
|||||||
Add-content $LOGFILE -value $LOGMESSAGE
|
Add-content $LOGFILE -value $LOGMESSAGE
|
||||||
Write-Host "${LOGMESSAGE}"
|
Write-Host "${LOGMESSAGE}"
|
||||||
}
|
}
|
||||||
WRITELOG "Archiving started"
|
WRITELOG "=========================== Archiving started ==========================="
|
||||||
|
|
||||||
# Check if CSV file exists
|
# Check if CSV file exists
|
||||||
if (test-path $CSV) {
|
if (test-path $CSV) {
|
||||||
@ -32,6 +31,11 @@ if (test-path $CSV) {
|
|||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Rebuild CSV file to be valid
|
||||||
|
(Get-Content $CSVFILE | Select-Object -Skip 1) | Set-Content $CSVFILE ## Remove first line
|
||||||
|
"FROM,TO`n" + (Get-Content $CSVFILE -Raw) | Set-Content $CSVFILE ## Add FROM,TO to CSV file
|
||||||
|
(Get-Content $CSVFILE) | Where-Object {$_.trim() -ne "" } | Set-Content $CSVFILE ## Remove empty lines
|
||||||
|
|
||||||
# Create alias
|
# Create alias
|
||||||
set-alias 7z "$env:ProgramFiles\7-Zip\7z.exe"
|
set-alias 7z "$env:ProgramFiles\7-Zip\7z.exe"
|
||||||
|
|
||||||
@ -53,7 +57,15 @@ WRITELOG "Looping through CSV file"
|
|||||||
foreach ($SOURCE_ENTRY in $CSVFILE) {
|
foreach ($SOURCE_ENTRY in $CSVFILE) {
|
||||||
$COUNTER++
|
$COUNTER++
|
||||||
$SOURCE = ${SOURCE_ENTRY}.FROM
|
$SOURCE = ${SOURCE_ENTRY}.FROM
|
||||||
|
if ($null -eq $SOURCE) {
|
||||||
|
WRITELOG "SOURCE variable is empty! Please check the CSV file. Exiting..."
|
||||||
|
exit
|
||||||
|
}
|
||||||
$TARGET = ${SOURCE_ENTRY}.TO
|
$TARGET = ${SOURCE_ENTRY}.TO
|
||||||
|
if ($null -eq $TARGET) {
|
||||||
|
WRITELOG "TARGET variable is empty! Please check the CSV file. Exiting..."
|
||||||
|
exit
|
||||||
|
}
|
||||||
WRITELOG "Archiving: $COUNTER - $SOURCE"
|
WRITELOG "Archiving: $COUNTER - $SOURCE"
|
||||||
Write-Output "Archiving $SOURCE"
|
Write-Output "Archiving $SOURCE"
|
||||||
|
|
||||||
@ -87,7 +99,7 @@ foreach ($SOURCE_ENTRY in $CSVFILE) {
|
|||||||
|
|
||||||
# Start archiving
|
# Start archiving
|
||||||
WRITELOG "7ZIP $SOURCE"
|
WRITELOG "7ZIP $SOURCE"
|
||||||
7z a -mx3 -t7z -r "$TARGET\$TARGET_FILENAME" "$SOURCE\*"
|
7z a -mx3 -t7z -r "${TARGET}\${TARGET_FILENAME}" "$SOURCE\*"
|
||||||
|
|
||||||
# Validate number of files in archive and DFS
|
# Validate number of files in archive and DFS
|
||||||
WRITELOG "Compare the number of files in DFS and archive"
|
WRITELOG "Compare the number of files in DFS and archive"
|
||||||
@ -99,6 +111,10 @@ foreach ($SOURCE_ENTRY in $CSVFILE) {
|
|||||||
|
|
||||||
ForEach-Object {
|
ForEach-Object {
|
||||||
$7ZIP_FILECOUNT = [Int] $_.Matches[0].Groups[1].Value
|
$7ZIP_FILECOUNT = [Int] $_.Matches[0].Groups[1].Value
|
||||||
|
if ($7ZIP_FILECOUNT -eq $null) {
|
||||||
|
# Ignore counter if null
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
## DFS
|
## DFS
|
||||||
@ -114,7 +130,7 @@ foreach ($SOURCE_ENTRY in $CSVFILE) {
|
|||||||
Write-Output "Cleaning up $SOURCE"
|
Write-Output "Cleaning up $SOURCE"
|
||||||
robocopy /MIR $EMPTY_FOLDER $SOURCE
|
robocopy /MIR $EMPTY_FOLDER $SOURCE
|
||||||
remove-item -Force -Recurse $SOURCE
|
remove-item -Force -Recurse $SOURCE
|
||||||
WRITELOG "Source has been archived!"
|
WRITELOG "Source has been archived to $TARGET!"
|
||||||
if (!(test-path $TEMPFOLDER_DONE)){
|
if (!(test-path $TEMPFOLDER_DONE)){
|
||||||
WRITELOG "Renaming stage folder to $TEMPFOLDER_DONE"
|
WRITELOG "Renaming stage folder to $TEMPFOLDER_DONE"
|
||||||
Rename-Item -Path $TEMPFOLDER_RUNNING -NewName $TEMPFOLDER_DONE
|
Rename-Item -Path $TEMPFOLDER_RUNNING -NewName $TEMPFOLDER_DONE
|
||||||
@ -128,4 +144,4 @@ foreach ($SOURCE_ENTRY in $CSVFILE) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
write-host "===========================ARCHIVE ENDED==========================="
|
WRITELOG "=========================== Archiving ended ==========================="
|
@ -1,3 +1,10 @@
|
|||||||
|
## 2.4.0
|
||||||
|
- Added extra checks if FROM and TO are properly set
|
||||||
|
|
||||||
|
## 2.3.0
|
||||||
|
- Added CSV check for consistancy
|
||||||
|
- Added target to logging
|
||||||
|
|
||||||
## 2.2.0
|
## 2.2.0
|
||||||
- Improved logging
|
- Improved logging
|
||||||
- Added extra confirmation checks on file existance or exiting if issues are found
|
- Added extra confirmation checks on file existance or exiting if issues are found
|
||||||
@ -6,4 +13,4 @@
|
|||||||
- Added log to textfile
|
- Added log to textfile
|
||||||
|
|
||||||
## 2.0.4
|
## 2.0.4
|
||||||
- Initial release
|
- Initial release
|
Loading…
Reference in New Issue
Block a user