利用FTP自动同步两台电脑(不同网段)间的文件

喜欢用MyBase来管理自己的知识,但一直以来因为多台电脑(主要是工作用机和自己电脑)间的同步问题,没有能够很得的收集知识,因为怕电脑间的mybase文件版本不同。今天终于想到了一个较为好的办法,那就是用FTP并结合任务调度进行自动的同步。
目标:
需要自动保持公司电脑和家里电脑FileBase.nyf这个文件的同步,不需要过多的人工参与。

实现原理:
1.估计一下每天的关机时间,利用Windows的任务调度在这个时间的前几分钟将文件上传至ftp服务器。
2.同样利用Windows的任务调度,在机器启动时,自动备份本地FileBase.nyf文件,并从ftp服务器下载文件。

实现方式(以本地存放路径D:\Application Data\mybase、本地任务调度文件:D:\Application Data\schedule、文件存放在远程服务器flashlm.com的temp目录下为例):
1.文件上传

mybase-upload.bat:

 

echo "==================upload schedule %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%==================" >>"D:\Application Data\schedule\mybase-update.log"  rem记录动作时间到日志文件mybase-update.log中
ftp
-s:"D:\Application Data\schedule\mybase-upload.txt" flashlm.com >>"D:\Application Data\schedule\mybase-update.log" rem 调用mybase-upload.txt里的命令来ftp上传文件,并记录日志。


mybase-upload.txt:

flashlm    rem ftp用户名
123456 rem ftp密码
cd temp rem进入目录
send
"D:\Application Data\mybase\FileBase.nyf" rem上传文件
quit 退出


2.文件下载
mybase-download.bat:

echo "=================download schedule: %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%=============" >>"D:\Application Data\schedule\mybase-update.log"  rem记录动作时间到日志文件mybase-update.log中
set bakname
=FileBase_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.nyf rem 根据当前日期时间生成备份文件名
ren
"D:\Application Data\mybase\FileBase.nyf" "%bakname%" rem 重命名(备份)
ftp
-s:"D:\Application Data\schedule\mybase-download.txt" flashlm.com >>"D:\Application Data\schedule\mybase-update.log" rem 调用mybase-download.txt里的命令来ftp下载文件,并记录日志。


mybase-upload.txt:

flashlm    rem ftp用户名
123456 rem ftp密码
cd temp rem 进入服务器目录
lcd
"D:\Application Data\mybase" rem 切换本地目录到目标路径
get FileBase.nyf rem 下载文件
quit


3.建立任务
根据实际需要,在“我的电脑-->控制面板-->任务计划”里添加若干个计划,按时进行上传下载即可。

还可以将bat建立快捷方式,必要时手工同步。
如果大家有其它好的文件同步方法,欢迎分享。

 

1
0
(请您对文章做出评价)
« 上一篇:谈asp.net解决方案的项目生成时的输出路径
» 下一篇:决定使用DropBox和任务调度来实现文件同步
posted @ 2008-10-23 23:58 canbeing 阅读(2059) 评论(7)  编辑 收藏 所属分类: 10.知识管理, 06.互联网观察

  回复  引用  查看    
#1楼2008-10-24 00:09 | Astar      

  回复  引用  查看    
#2楼2008-10-24 00:35 | 斯克迪亚      
朋友,建议你用这个:https://www.getdropbox.com/home
看看视频就明白了,2G网盘,通过客户端在自己用的N个机器上静默同步,简单的版本控制功能,可外链分享

  回复  引用  查看    
#3楼2008-10-24 07:28 | 金色海洋(jyk)      
如果已经有了FTP服务器的话,那么找一个FTP的客户端软件,在软件里设置一下就可以了。FTP的客户端软件自己就已经提供了同步文件的功能。

当然这种自己写代码的方式也挺好,可以让我们知道原理。

  回复  引用  查看    
#4楼2008-10-24 09:02 | 大力      
同步用cwRsync比较好啊.
  回复  引用  查看    
#5楼2008-10-24 10:06 | DQW      
Evernote不是很好吗?
你这样不是增量的同步,如果以后文件很大了,同步也需要时间吧

  回复  引用  查看    
#6楼2008-10-24 12:31 | G yc {Son of VB.NET}      
SyncToy MS的小工具, 玩的

兄弟,可以看看FolderShare (新的名字叫 Live sync)

  回复  引用  查看    
#7楼[楼主]2008-10-24 20:00 | canbeing      
@斯克迪亚
@金色海洋(jyk)
@大力
@DQW
@G yc {Son of VB.NET}
感谢各位分享工具啊,哈哈,其实我也是苦于没有找到一个好工具才是被迫去自己弄的,确实是很不完善