在 Linux 上同步远程文件夹

在 Linux 上同步远程文件夹

对 Linux 系统上的文件夹进行单向增量同步的最简单方法是什么。

+1 使用命令行。+2 不使用 rsync(我的系统似乎存在一些问题。)

答案1

同步是专为普通用户设计的文件同步器。

csync 是一个库,默认情况下附带命令行客户端。它无需服务器,允许通过 或 进行sftp同步samba

使用示例:

csync /home/csync smb://csync:[email protected]/Users/csync
csync /home/csync sftp://[email protected]:2222/home/csync

答案2

我认为您应该使用 rsync 来解决您的问题,它是 Unix 的“久经考验的”同步工具。

rsync -uav --delete /loal/path example.com:/remote/path

笔记:对于双向同步,您可以使用齐奏同步

答案3

这就是我使用裸工具进行单向同步的方法。

一开始,柏油整个文件集并将它们复制到目标点。
此外,在基础目录中设置一个标记。

touch /Source/base/directory/last-sync-time.txt

现在,我们要保持从源到目标的同步。

在下一个向前同步的时间段(从源到目标),

# The backup script
cd /Source/base/directory
tar cfj -N ./last-sync-time.txt backup.tar.bz2 .
scp backup.tar.bz2 user@backup-server:/Backup/Directory/
touch /Source/base/directory/last-sync-time.txt
rm -f backup.tar.bz2
  1. 讲述-N ./filename柏油仅存档filename修改/创建后修改或创建的文件。
    • 使用本地时间参考可确保您不会犯错;如果由于某种原因未进行备份,则下一次备份将累积该备份
    • 您可以将此脚本设置为计划任务源计算机上的条目
    • 我假设你会scp使用公钥认证
    • backup-server还假设您可以在发布此脚本时到达。
    • 为了更安全,您可以添加检查以确认备份已存储,然后发出touch命令
    • 您还可以选择插入命令来扩展备份,并将其覆盖在目标点的先前备份上;或者,保留增量tar.bz2档案。

答案4

我使用这个简短的脚本来监控并持续同步目录与远程 sftp 文件夹;

#!/bin/sh
dir1=/home/user/folder
 while inotifywait -qqre modify "$dir1";
 do
    csync /home/user/folder sftp://remoteuser:remotepass@remoteaddress:remoteport/remotefolderpath
done

相关内容