在PowerShell中备份和压缩

时间:2014-03-12 20:51:29

标签: powershell-v3.0 pscx

我们的企业备份垃圾软件让我失望,我正在推出自己的备份/存档脚本,以便安排每周运行。

到目前为止我所拥有的是:

$dst = "S:\VM-Bak"
$src = "D:\Work\Projects\CPS\MR4"
$fileName = "CPS-MR4.tar.gz"
$archive = $fileNam + "-" + (Get-Date -Format "yyyyMMdd")
$sigName = $fileName + ".sig"
$errorLog = (Join-Path -Path $dst -ChildPath ($fileName + ".err"))


Start-Process powershell -Verb runAs -WindowStyle Hidden 

Get-ChildItem -Exclude *.vmem -Recurse -Path $src -ErrorAction SilentlyContinue `
| Write-Tar -OutputPath (Join-Path -Path $dst -ChildPath $archive) -EntryPathRoot`
 $src | Write-GZip -Level 9 | Get-Hash | Format-Table -Property Path, Algorithm,`
 HashString, @{Label ="Date"; Expression ={(Get-Date -Format "dd/MMM/yyyy")}} `
-AutoSize -ErrorAction SilentlyContinue | Out-File -FilePath (Join-Path -Path $dst `
-ChildPath $sigName) -Append

现在,我没有想象力,我可以被认为非常精通PowerShell,但我可以谷歌并解决问题。说过这个脚本的目的是抓住我的VM,跳过任何vmem文件(总是在没有访问权限时出错),将文件夹的全部内容收集到tar文件中,然后将输出压缩到不同的驱动器。它做了很多艰苦的工作,然后经过一段时间(它是一个150GB的VM)我有我的标记压缩的VM。

警告。试图用winzip或7zip检查存档,两个程序都声称它不是存档(我试图通过winzip沮丧)。我尝试将它作为tar存档打开,同样的事情。我得到的确切错误是:

Cannot open {path:\to\real file name} as archive

我无法弄清楚出了什么问题。我在一些帖子上看到我应该在write-tar上使用-passthru,但是不存在这样的开关(这是PSCX 3.0.0)

如果您还可以帮助我使用签名文件,以便它附加到表并从下面输出表格(在上面的脚本中未实现),那么

奖励积分

Get-Hash | Format-Table -AutoSize -Property Path, Algorithm, Hashstring, `
@{Label="Date";Expression={(Get-Date -Format "dd/MMM/yyyy")}} 

0 个答案:

没有答案