我是PowerShell的新手,我已经设法在谷歌上找到了以下PowerShell脚本:
#System Variable for backup Procedure
$date = Get-Date -Format d.MMMM.yyyy
New-PSDrive -Name "Backup" -PSProvider Filesystem -Root "\server><path>"
$source = "\server><path>"
$destination = "\<server><path>$date"
$path = test-Path $destination
电子邮件变量
$smtp = "smudmug.mug"
$from = "James Clegg <email@email.com>"
$to = "James Clegg <email@email.com>"
$body = "Hi All, </br></br> Please find the back up log File for <Server> attached.</br></br> Back up complete on $date</br></br>Kind Regards,</br></br> James"
$subject = "Backup of <Server> is Complete $date"
备份过程已启动
if ($path -eq $true) {
write-Host "Folder Already exists"
Remove-PSDrive "Backup"
} elseif ($path -eq $false) {
cd backup:
copy-Item -Recurse $source -passthru -Destination $destination
$backup_log = Dir -Recurse $destination | out-File "$destinationbackup_log.txt"
$attachment = "$destinationbackup_log.txt"
#Send an Email to User
send-MailMessage -SmtpServer $smtp -From $from -To $to -Subject $subject -Attachments $attachment -Body $body -BodyAsHtml
write-host "Backup Successful"
cd c:
Remove-PSDrive "Backup"
}
cmd /c pause | out-null
有人能帮我添加哪些内容以允许复制正在使用的文件吗。
问候,
James
复制在另一个应用程序中打开的文件并非易事。问题是,即使您可以复制该文件,也不能保证该文件处于可用状态。除了最简单的文本文件外,其他文件都很容易损坏。考虑以下场景:
user backup
| |
(saves doc) |
| |
(write n chars) |
| (read file)
(write m chars) (write copy)
| |
期望的结果是什么?从用户的角度来看,文档应该包含保存前或保存前的状态。实际结果,只有一些保存的更改,很难是正确的。如果文件是一个更复杂的结构,比如电子表格,结果可能会被损坏,无法修复。
为了解决这种并发问题,有一些开放文件代理。在Windows中,有一个内置的VSS(卷影复制服务),也存在第三方产品。其想法是监视文件的活动,并在所有更改都刷新到磁盘时制作一致的副本。这也需要申请方的合作。有关VSS的详细讨论,请阅读Technet的文章。您的最佳选择是使用已经解决该问题的现有备份解决方案。