也谈文件夹同步

前言

1 同步分为文件级别,和块级别。rsync是块级别。

2 如果是基于微软文件共享或samba协议,用robocopy.exe即可文件级别的同步。

3 通过任务计划,实现自动,定时同步。

4 如果是ftp,sftp,用winscp+powershell即可实现文件级别同步。原理是校验码,根本无需监视文件。

具体如下:

用脚本来实现

1本地dir

2远程dir

3对同一个文件,获取校验码,通过校验码来对比,得知文件是否改变。

4同步改变过的文件。

正文

【系统需求】

安装了powershell的win。

安装了powershell的linux发行版。但目前linux版有个小问题,需要把dll文件大小写改一下。

问:目前哪些版本linux能安装上powershell?

答:

?Ubuntu 14.04/16.04/Debian8.x 9.x

?CentOS 7.x/RHEL 7.x

?open SUSE 42及以上

?LINUX docker 容器

?Arch Linux (archl inux 没有版本号)

?Linux AppImage 容器(portable application single binary)  https://github.com/probonopd/AppImageKit

【安装】

管理员权限运行 Import-Module winscp

【升级】

管理员权限运行 update-Module winscp

传教士推荐使用。理由:

1支持ftp,sftp,webdav。

2winscp支持获取ftp服务器上的文件的校验码,从而得知是否文件是变化的。

有Get-WinSCPItemChecksum从而可以同步文件。

网页https://winscp.net/eng/docs/protocols的,Checksum calculation 章节,详细说明了这个内容。

3支持命令行显示ftp完成进度,文件权限,文件掩码,传输限速,是否覆盖。文件传输模式(ascii or 二进制)

详见此命令: New-WinSCPTransferOption

手册,所有例子在此: https://winscp.net/eng/docs/library_examples

【测试通过的脚本例子】ftp(sftp也大同小异)

#----------------------------
#用户输入部分
$本地路径 = ‘d:\‘
$远程路径 = ‘/UPLOAD/‘
$ftp服务器 = ‘192.168.1.1‘
$用户名 = ‘a‘
$用户密码明文 = ‘传教士测试通过-2017-06‘
#----------------------------
#脚本main
$用户密码密文 = ConvertTo-SecureString $用户密码明文 -AsPlainText -Force
$我的登陆凭据 = New-Object System.Management.Automation.PSCredential ($用户名,$用户密码密文)
$ftp连接 = new-winscpsession -Protocol Ftp -HostName $ftp服务器  -Credential  $我的登陆凭据

$传输参数_二进制 = New-WinSCPTransferOption -TransferMode Binary
Send-WinSCPItem -WinSCPSession $ftp连接 -Path "$本地路径/xx1.txt" -Destination "$远程路径" -TransferOptions $传输参数_二进制
#Receive-WinSCPItem -WinSCPSession $session -Path "/home/user/file.txt" -Destination "C:\download\"
Remove-WinSCPSession -WinSCPSession $ftp连接
#--------------完--------------

【命令列表】

PS C:\Windows\system32> (get-command -module winscp).name
Enter-WinSCPSession
Exit-WinSCPSession
ConvertTo-WinSCPEscapedString
Get-WinSCPChildItem
Get-WinSCPItem
Get-WinSCPItemChecksum
Invoke-WinSCPCommand
Move-WinSCPItem
New-WinSCPItem
New-WinSCPItemPermission
New-WinSCPSession
New-WinSCPTransferOption
Receive-WinSCPItem
Remove-WinSCPItem
Remove-WinSCPSession
Rename-WinSCPItem
Send-WinSCPItem
Start-WinSCPConsole
Sync-WinSCPPath
Test-WinSCPPath

时间: 2024-11-05 20:29:35

也谈文件夹同步的相关文章

文件和文件夹同步工具AFiles 1.0 发布

文件和文件夹同步工具AFiles 1.0  正式发布了! 本软件支持按文件日期或长度的各种比较方式来同步文件或者文件夹. 支持双向同步功能. 支持深层文件夹功能. 可以自动产生比较和同步的记录情况. 其他功能请见本软件的用户界面. 软件链接地址:http://files.cnblogs.com/files/gdigital/AFiles.rar

beyond compare ftp 文件夹同步

因为经常要同步服务器上的代码,今天试了一下beyond compare 的ftp同步非常爽.以前都只用了beyond compare的文件夹比较功能了,ftp功能没有使用过. 步骤1:点击:会话-->新建会话-->文件夹同步 步骤2:点击下面的红色按键 步骤3:选择好ftp服务器的相关目录. 步骤4:选择右侧比较文件夹,选择比较规则,同步规则 步骤5:接下来就会列举出两边目录的差异了,点击"现在同步"就可以把左侧的目录同步了 beyond compare ftp 文件夹同步

文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance/GoodSync/Allway Sync/Compare Advance)

关于文件同步的文章,已经很多次出现在异次元上了,因为它们很多都能实实在在提高工作便利性.比方说有我们熟悉的云端同步软件 Dropbox.金山快盘,以及曾经还介绍过可本地使用的 Allway Sync 以及 GoodSync等等. 虽然说已经介绍过了这么多同类型的软件,但在一番深思熟虑之后还是决定再介绍几款本地文件夹同步备份软件,我相信,虽然他们大体上是类似的,但是还是各自有自己的特色,而屏幕前的你,则可根据自己的需求选择更加合适自己的…… Microsoft SyncToy SyncToy 是由

我爱免费之FreeFileSync文件夹同步软件

因为项目需求用到FreeFileSync文件夹同步软件,这个软件好在免费.易用.功能强,我真的是大爱这种软件.http://freefilesync.com/ 可以下载免费软件,有需要的朋友,大可以一试. 软件使用非常简单,一是确定你要同步的两个文件夹,二是生成批处理文件,三是定时任务或软件本身可以执行批处理文件.很简单吧. 1.选择一个本地电脑的文件夹,比如我的文件夹是“同步文件夹”. 2.通过映射网络驱动器,确定你需要同步的另一个文件.当然,这个文件夹可以是你本地电脑的另一个文件夹,也可以是

eclipse中的classes文件夹同步问题

问题: 在同步项目时,由于误操作将classes文件夹加入到了同步版本中,这样会导致每次更新程序编译后,会有很多class文件显示在同步清单中. 解决方案: 将classes文件不设置为同步. 1. 默认classes文件夹在eclipse中是隐藏的,在eclipse中如何显示classes文件夹. Project Explorer -> 三角(View Menu) ->Customize View..  然后将右边图中java output folders 勾去掉即可.    2. 如何设置

windows 文件夹同步 cwRsync

在 客户端 备份的 脚本: ----------------------------- @echo off echo 开始同步数据,请稍等... echo.echo 备份远端172.16.0.2中Filestore数据到本地开始...echo. set localtime=%date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% rsync -avzP --progress --delete rsync://1

FolderSync文件夹同步

FolderSync是一款支持各大国外网盘同步的软件,目前支持 SkyDrive, Dropbox, SugarSync, Ubuntu One, Box.net, LiveDrive, HiDrive, NetDocuments, Amazon S3, FTP, FTPS, SFTP, WebDAV和windows share (Samba/CIFS). 具体步骤就是: 在服务器上架设 FTP 服务,或 WebDAV 服务等等, 然后在 FolderSync 里添加帐户(FTP/SMB/Web

文件夹同步

# coding=utf-8 import os import sys import time import re import shutil class CLASS_WALK_FILE: def __init__(self, max_size=1024): self.m_max_size = max_size self.m_log_fp = open("dir_sync.txt", 'w') def set_src_path(self, src_path): self.m_src_p

文件夹自动同步工具

这是我之前开发的文件夹自动同步工具,主要实现开发机和服务器之间的文件夹同步. 项目地址: https://github.com/mike-zhang/autoSync 问题描述 在windows下修改代码,到服务器上去编译,但每次都要通过winscp之类的工具拖拽上去(当然你也可以通过scp命令行的方式). 每次修改的文件很少,而且可能位于不同的目录,每次都重复覆盖文件的操作感觉比较麻烦,所以开发了这个自动文件夹自动同步工具. 当然这个工具也可以用于两台linux服务器之间的文件夹同步. 工具介