文件同步工具

文件同步工具

2023-03-06
暂无分类

Rsync(增量复制)

rsync是一个高效的文件复制工具,可以在本地或远程系统之间同步文件和目录。它使用类似于diff算法的技术来比较源和目标文件,仅传输两个文件之间的差异,从而减少传输数据的量。rsync 还支持压缩传输、加密传输、增量备份等功能,使其在备份和同步文件时非常有用。

使用时,本地电脑和远程服务器都要安装rsync客户端

rsync -avzh --progress -e 'ssh -p 22' --delete --exclude=.DS_Store ~/abc/ user@server:/path/to/abc/
  • -a 使用归档模式同步文件.它可以确保同步的文件保持了原始的属性、权限、时间戳等信息,使得同步后的目标文件和原始文件完全一致.此外,归档模式还支持递归同步子目录和链接文件,使得同步更为方便和完整。如果不使用归档模式,那么 rsync 可能会忽略某些文件的属性、权限、时间戳等信息,导致同步后的文件可能与原始文件不一致。此外,如果不使用递归同步子目录和链接文件的选项,可能会导致同步不完整,有些文件被漏掉了
  • -v verbose
  • -z compress file data during the transfer
  • -h output numbers in a human-readable format
  • --progress 输出进度条
  • -e rsync默认使用ssh进行连接
  • --delete 目标文件夹中,如果有些文件在源目录中不存在,就删除
  • --exclude 将某些文件排除在外,不进行同步
    • --exclude=PATTERN exclude files matching PATTERN
    • --exclude-from=FILE read exclude patterns from FILE 例如从.gitignore中读取需要排除的文件列表
  • ~/abc/ 表示要同步的目录
  • user@server:/path/to/abc/ 远程服务器的用户名、服务器地址、文件路径

scp

# 同步文件夹需要-r参数
scp -r /srcdir root@[服务器域名或IP]:/home/
# 同步文件不需要-r参数
scp file root@[服务器域名或IP]:/home/

lsyncd

settings {
logfile    = "/tmp/lsyncd.log",
statusFile = "/tmp/lsyncd.status",
statusInterval = 20,
nodaemon   = true,
}

sync {
default.rsync,
source = "DIRNAME",
target = "DIRNAME",
    rsync = {
        binary   = "/usr/local/bin/rsync",
        archive  = true,
        compress = true,
        cvs_exclude = true,
        exclude
        excludeFrom
        verbose
    },
    ssh = {
        port = 1234
    }
}

delete

startusInterval
THE END
0/500
暂无评论