GoodSync Enterprise 12.6.2.2(x64)是一款简单可靠的文件备份和文件同步软件。它可以自动分析、同步和备份您的电子邮件、珍贵的家庭照片、联系人、MP3文件、财务文件以及其他重要文件,可以在本地桌面、笔记本电脑、服务器、外部驱动器和Windows移动设备之间进行同步,也可以通过FTP、SFTP、WebDAV等远程进行同步。

GoodSync文件同步软件将极其易于使用的界面与坚如磐石的可靠性相结合,可以比较、同步和备份您的电子邮件、联系人、照片、iTunes、MP3文件和其他重要文件。
自动同步并备份您的重要文件,可以在桌面、笔记本电脑、服务器和外部驱动器之间进行网络或互联网同步。使用创新的同步算法,GoodSync文件同步软件在文件同步方面遥遥领先于其他软件。
主要特点包括
• 双向同步以防止数据丢失
• 单向同步用于备份
• 同步文件夹,不仅限于Windows,还包括FTP、WebDAV、SFTP
• 与智能手机和PDA同步到Windows平台
• 选择性文件同步
• 灵活且易于同步自动化
其他功能包括
• 不需要监视文件系统
• 同步多个设备,提供最大的便利性
• 同步FTP文件修改时间
• 为非保存文件系统转换文件修改时间
• 轻松同步文件的修改时间
• 实时监控
• 变更可视化
• 显示的简易性和灵活性
• 任务选项卡,使处理多个任务更容易
• 每个级别的大小计数器
• 对话框,便于选择要同步的文件夹
• 确定所需的可用空间
• 操作和更改的报告
• 标记工作到可移动驱动器
• 在加密通道上进行网络备份
版本新闻 - 适用于Windows 版本 12.6.2 - 2024年3月30日
修复GUI中作业运行状态的检测,可能会卡住。
修复了作业组的运行,可能会卡住。
修复了作业组分配子菜单,可能会不同步。
自动作业限制:当我们达到限制时记录日志,以便用户知道为什么没有启动更多的作业。
快照+不复制锁定文件:修复了在这种情况下仍然创建快照的问题。
在服务器列表中浏览/资源管理器:在活动服务器之后显示死掉的服务器。
本地化:添加了芬兰语,更新了波兰语。
GoodSync手册:更新了服务器帐户和作业选项部分。
双向同步是一种文件同步技术,旨在确保两个或多个位置上的文件副本始终保持最新且相同的状态 。其基础技术原理通常包括以下几个步骤:
- 文件比较: 系统首先会比较源位置和目标位置的文件,以确定它们之间的差异。这可能涉及比较文件的内容、时间戳、大小等。
- 决策制定: 根据文件比较的结果,系统决定需要在哪些文件上进行同步操作。如果文件在源位置上已更改,则需要将其复制到目标位置;反之亦然。
- 数据传输: 一旦确定了需要同步的文件,系统会执行相应的数据传输操作。这可能涉及将源文件复制到目标位置,或者在两个位置之间进行文件的双向传输。
- 冲突解决: 如果在同步过程中发生冲突,例如源文件和目标文件同时被修改,系统可能需要执行冲突解决策略。通常,这会涉及用户干预或系统自动应用预定义的解决方案,例如优先保留最新的文件或合并更改。
- 同步确认: 一旦同步操作完成,系统会生成报告或日志,指示哪些文件已成功同步,哪些文件可能存在问题需要进一步处理。
通过以上步骤,双向同步技术可以确保多个位置上的文件保持同步,从而防止数据丢失,并确保用户始终访问到最新的文件版本。
PowerShell中实现双向同步,您可以结合使用一系列命令来执行文件的比较、复制和同步操作 。以下是一个示例PowerShell脚本,演示如何通过调用Compare-Object来比较两个文件夹中的文件,并使用Copy-Item来执行同步操作:
powershellCopy Code# 设置源和目标文件夹路径
$sourceFolder = "C:\SourceFolder"
$targetFolder = "C:\TargetFolder"
# 比较源文件夹和目标文件夹中的文件
$comparisonResult = Compare-Object -ReferenceObject (Get-ChildItem $sourceFolder) -DifferenceObject (Get-ChildItem $targetFolder) -Property Name, Length, LastWriteTime
# 同步源文件夹到目标文件夹
foreach ($difference in $comparisonResult) {
if ($difference.SideIndicator -eq "<=") {
$sourceFilePath = Join-Path -Path $sourceFolder -ChildPath $difference.Name
$targetFilePath = Join-Path -Path $targetFolder -ChildPath $difference.Name
Copy-Item -Path $sourceFilePath -Destination $targetFilePath -Force
Write-Host "Copied $($sourceFilePath) to $($targetFilePath)"
}
}
# 同步目标文件夹到源文件夹
foreach ($difference in $comparisonResult) {
if ($difference.SideIndicator -eq "=>") {
$sourceFilePath = Join-Path -Path $sourceFolder -ChildPath $difference.Name
$targetFilePath = Join-Path -Path $targetFolder -ChildPath $difference.Name
Copy-Item -Path $targetFilePath -Destination $sourceFilePath -Force
Write-Host "Copied $($targetFilePath) to $($sourceFilePath)"
}
}
在此脚本中,我们首先使用Get-ChildItem命令获取源文件夹和目标文件夹中的文件列表。然后,使用Compare-Object比较这两个文件列表,找出在源文件夹中存在但在目标文件夹中不存在的文件,以及在目标文件夹中存在但在源文件夹中不存在的文件。接下来,根据比较结果,使用Copy-Item命令执行文件的复制操作,从而实现双向同步。
局域网中实现双向同步,您可以使用PowerShell结合网络共享来执行文件的比较、复制和同步操作 。以下是一个示例PowerShell脚本,演示如何在局域网中实现双向同步:
powershellCopy Code# 设置源和目标文件夹路径(这些文件夹位于局域网中的不同计算机上)
$sourceFolder = "\\Computer1\SharedFolder"
$targetFolder = "\\Computer2\SharedFolder"
# 比较源文件夹和目标文件夹中的文件
$comparisonResult = Compare-Object -ReferenceObject (Get-ChildItem $sourceFolder) -DifferenceObject (Get-ChildItem $targetFolder) -Property Name, Length, LastWriteTime
# 同步源文件夹到目标文件夹
foreach ($difference in $comparisonResult) {
if ($difference.SideIndicator -eq "<=") {
$sourceFilePath = Join-Path -Path $sourceFolder -ChildPath $difference.Name
$targetFilePath = Join-Path -Path $targetFolder -ChildPath $difference.Name
Copy-Item -Path $sourceFilePath -Destination $targetFilePath -Force
Write-Host "Copied $($sourceFilePath) to $($targetFilePath)"
}
}
# 同步目标文件夹到源文件夹
foreach ($difference in $comparisonResult) {
if ($difference.SideIndicator -eq "=>") {
$sourceFilePath = Join-Path -Path $sourceFolder -ChildPath $difference.Name
$targetFilePath = Join-Path -Path $targetFolder -ChildPath $difference.Name
Copy-Item -Path $targetFilePath -Destination $sourceFilePath -Force
Write-Host "Copied $($targetFilePath) to $($sourceFilePath)"
}
}
在此脚本中,我们将源文件夹和目标文件夹路径设置为位于局域网中不同计算机上的共享文件夹。然后,我们执行与前面示例相同的操作,使用Compare-Object比较这两个文件夹中的文件,并使用Copy-Item命令执行文件的复制操作,从而实现双向同步。
请确保在局域网中有适当的共享和访问权限,以确保脚本能够顺利访问并同步文件。
PowerShell和Robocopy命令来在局域网中实现双向同步,可以编写一个脚本来执行这些操作。Robocopy是一个强大的文件复制工具,可以在本地或网络上进行文件复制和同步。以下是一个示例PowerShell脚本,演示如何结合使用Robocopy来实现双向同步:
powershellCopy Code# 设置源和目标文件夹路径(这些文件夹位于局域网中的不同计算机上)
$sourceFolder = "\\Computer1\SharedFolder"
$targetFolder = "\\Computer2\SharedFolder"
# 同步源文件夹到目标文件夹
robocopy $sourceFolder $targetFolder /MIR /FFT /Z /XA:H /W:5 /R:1 /LOG+:SyncLog.txt
# 同步目标文件夹到源文件夹
robocopy $targetFolder $sourceFolder /MIR /FFT /Z /XA:H /W:5 /R:1 /LOG+:SyncLog.txt
在此脚本中,我们首先使用Robocopy命令来将源文件夹中的文件同步到目标文件夹,使用了/MIR参数来进行镜像复制,确保目标文件夹和源文件夹完全一致。然后,我们再次使用Robocopy命令来将目标文件夹中的文件同步回源文件夹,以实现双向同步。
请注意,上述示例中的Robocopy参数(如/MIR、/FFT等)可以根据您的具体需求进行调整。建议查阅Robocopy命令的文档以了解更多可用参数和其含义。此外,请确保在局域网中有适当的共享和访问权限,以确保脚本能够顺利访问并同步文件。
自动化且包含多个命令的PowerShell脚本以实现局域网中的双向同步,我们可以采用一种更结构化的方法。这种方法将包含函数定义、日志记录、错误处理以及通过Robocopy实现的实际同步操作 。以下是一个扩展示例,展示了如何构建这样的脚本:
powershellCopy Codefunction Sync-Folders {
param (
[string]$sourceFolder,
[string]$targetFolder,
[string]$logFile
)
# 参数检查
if (-not (Test-Path -Path $sourceFolder)) {
Write-Error "Source folder does not exist: $sourceFolder"
return
}
if (-not (Test-Path -Path $targetFolder)) {
Write-Error "Target folder does not exist: $targetFolder"
return
}
try {
# 同步源文件夹到目标文件夹
robocopy $sourceFolder $targetFolder /MIR /FFT /Z /XA:H /W:5 /R:1 /LOG+:$logFile
# 同步目标文件夹到源文件夹
robocopy $targetFolder $sourceFolder /MIR /FFT /Z /XA:H /W:5 /R:1 /LOG+:$logFile
} catch {
Write-Error "An error occurred during sync: $_"
}
}
# 设置源和目标文件夹路径
$sourceFolder = "\\Computer1\SharedFolder"
$targetFolder = "\\Computer2\SharedFolder"
# 设置日志文件路径
$logFile = "C:\Sync\sync_log.txt"
# 调用函数以实现双向同步
Sync-Folders -sourceFolder $sourceFolder -targetFolder $targetFolder -logFile $logFile
这个脚本定义了一个名为Sync-Folders的函数,它接收三个参数:源文件夹路径、目标文件夹路径和日志文件路径。函数首先检查提供的路径是否有效,然后使用robocopy命令执行实际的同步操作,同时将操作日志追加到指定的日志文件中。如果在同步过程中遇到任何错误,脚本将捕获这些错误并记录下来。
使用函数的好处是提高了代码的可重用性和清晰度,特别是当您需要在多个位置之间进行双向同步时。此外,通过将操作结果记录到日志文件中,可以方便地进行事后审核和问题排查。
请确保在执行脚本前,源和目标文件夹路径正确,且相应的计算机或文件夹已正确共享且具备适当的权限。此外,日志文件的路径也需要根据实际情况进行调整。