![如何同步便携式应用程序文件夹?](https://linux22.com/image/1291981/%E5%A6%82%E4%BD%95%E5%90%8C%E6%AD%A5%E4%BE%BF%E6%90%BA%E5%BC%8F%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
针对这个特殊难题,我找不到好的资源,所以我想向超级用户的好心人寻求帮助。
背景:我是一个便携式应用程序爱好者,只要有可能,我的应用程序都是便携式的。我编写了一整套批处理和 powershell 脚本,让我可以在任何可以的地方运行基于 PortableApps 平台和 LiberKey 的环境以及其他一些“自制”的便携式应用程序。
注意:我的应用程序并非全部都是“纯”可移植的,有些可能会直接进入注册表,有些可能会在系统上留下痕迹。只要它们是我的系统,我就可以接受。
我正在寻找:我正在寻找一个好方法来在 3 个位置之间同步这个“庞然大物”的便携式应用程序文件夹:
- 我工作时使用的任何电脑(工作电脑、家用电脑、家用笔记本电脑)
- 我的便携式 USB 硬盘
- 云储存
主要问题: - 我尝试使用同步应用程序,但我可能做错了,我总是得到太多重复的文件。 - 因为我直接从便携式应用程序文件夹使用应用程序,所以某些文件有时可能会被锁定。当文件夹中有锁定的文件时,我希望同步完全跳过它(我知道:这很难) - 初始同步可以是大约 5 GB 的应用程序和存储空间(主要是应用程序) - 因此 LAN 同步很重要。
假设: - 没有假设 :) - 你可能认为我从错误的方向着手处理整个事情,我愿意学习。 - 我愿意编写脚本(批处理、powershell、python)或编程(C#、Java)来完成任务。(如果有意义的话,我甚至可能会开始着手解决这个问题)
有谁知道如何利用目前网络上可用的工具来构建这样的同步系统吗?
答案1
SugarSync
我使用安装在我的计算机和一些虚拟机上的 执行完全相同的操作。我的同步文件夹包含许多便携式应用程序、shell 和脚本,目前5 GiB
大小超过。
我使用批处理脚本将更新的文件和新文件复制到 USB 闪存驱动器上,当我使用其他计算机时使用该脚本,并使用另一个脚本从 USB 闪存驱动器robocopy
更新同步的文件夹。SugarSync
例如。
@echo on
:: UpdateFlashDrive.cmd v1.2 - Jan, Mar 2009
:: Updates flash drive with latest changes to %COMMAND%
echo.
time /t 1>%TEMP%\time.txt
for /f "delims= " %%G in (%TEMP%\time.txt) do echo The start time is %%G
if [%1]==[] echo You must include the destination drive letter! & goto :EOF
if NOT EXIST %1\COMMAND echo It looks like the wrong destination drive has been given! & goto :EOF
robocopy %COMMAND%\ "%1\COMMAND" /E /ZB /EFSRAW /DCOPY:T /PURGE /XO /XJ /XF ssrobomove.log Exchange.ini *.csv Smart.ini /R:3 /NDL
call :REPORT_ERRORLEVEL
time /t 1>%TEMP%\time.txt
for /f "delims= " %%H in (%TEMP%\time.txt) do echo The end time is %%H
echo.
echo %G - %H
del %TEMP%\time.txt
goto :EOF
:REPORT_ERRORLEVEL
echo.
if ERRORLEVEL 16 echo ***FATAL ERROR*** & goto :EOF
if ERRORLEVEL 8 echo **FAILED COPIES** & goto :EOF
if ERRORLEVEL 4 echo *MISMATCHES* & goto :EOF
if ERRORLEVEL 2 echo EXTRA FILES & goto :EOF
if ERRORLEVEL 1 echo Copy successful & goto :EOF
if ERRORLEVEL 0 echo ^-no change^- & goto :EOF
:EOF
我确实计划在某个阶段直接使用SugarSync API
Python,这应该允许我直接从 USB 闪存驱动器进行更新。
文件在使用时不会同步(因此被锁定),如果一台机器处于休眠状态而不是关机状态,并且我在原来的机器再次打开之前从另一台机器上使用相同的文件,则偶尔会导致文件重复。
这样做了几年之后,实际上并没有给我带来任何问题。我有另一个批处理脚本,它可以找到任何这些重复文件,然后我可以决定要做什么。 SugarSync
还可以在免费帐户级别保留任何文件的前 5 个版本,这对我很有用。
我实际上已经好几个星期没有检查过重复项了,一切都运行良好。我的同步文件夹/USB 闪存驱动器对我来说比任何 Windows 操作系统安装都重要,因为它可以在几秒钟内让任何 Windows 计算机满足我的要求。
如果您不了解eXpresso
和Portable File Associator
,它们非常有用。我更喜欢PFA
。
答案2
基本上,便携版的 Dropbox 可以满足要求吗?
Dropbox 的非官方便携版本。 http://forums.dropbox.com/topic.php?id=33387
答案3
不确定它是否能 100% 解决问题,但是 JungleDisk 具有非常好的文件夹同步功能。