1. 前言
很多时候,我们需要在多台设备上同步文件。基于命令行界面的osync
,它成为一个理想的文件同步解决方案,可以在三种模式下执行:
- 手动
- 通过计划任务
- 通过守护进程(在新文件更改时触发)
这个基于状态的同步器充当rsync wrapper。Osync被认为是有状态的,因为它没有义务监控目标文件的更改。
在两次运行之间,osync将比较副本文件列表。这些运行可以是本地到本地或本地到远程。本地到本地的复制大约需要2秒,本地到远程的复制大约需要7秒。
2. Osync特性
突出的Osync功能亮点:
- 支持本地到本地同步和本地到远程同步。
- 完整的脚本时间控制。
- 邮件提醒
- 作为守护进程或按计划运行
- 目录的监控
- 日志记录工具
- 通过批处理运行程序处理多个同步任务,并通过重新运行的选项处理失败的同步任务
- 恢复场景处理容错
- 扩展属性和POSIX ACL同步
- 命令执行前/后运行
- 处理多个备份和软删除
如果您需要快速运行,您可能需要禁用某些osync
特性,如磁盘空间检查和某此属性。目标器/启动器同步模式也适用于osync。
3. 在Linux安装Osync
osync
的稳定或最新版本可以在Github上找到。首先需要安装git
,然后才能从Github
检索并安装osync文件同步工具。
根据您的Linux操作系统发行版使用以下安装指南之一。
3.1 在基于RHEL的发行版上安装Osync
sudo yum install git
sudo git clone -b "stable" https://github.com/deajan/osync
cd osync
sudo bash install.sh
3.2 在基于Debian的发行版上安装Osync
sudo apt install git
sudo git clone -b "stable" https://github.com/deajan/osync
cd osync
sudo bash install.sh
3.3 在Arch Linux上安装Osync
sudo pacman -S git
sudo git clone -b "stable" https://github.com/deajan/osync
cd osync
sudo bash install.sh
3.4 在OpenSUSE上安装Osync
sudo zypper install git
sudo git clone -b "stable" https://github.com/deajan/osync
cd osync
sudo bash install.sh
当从Github中克隆osync时,从git clone命令中移除-b "stable"
选项将获取osync
最新的开发版。
4. 如何使用Osync在Linux系统中双向同步文件
如前所述,有三种使用osync的方法。
- 快速同步模式
- 配置文件模式
- 守护进程模式
4.1 使用快速同步方式实现本地到本地和本地到远程文件同步
然而,这种方法对于寻求在目录之间实现快速同步的用户来说很方便。对于本地到本地目录,考虑以下osync语法:
osync.sh --initiator="/path/to/directory1" --target="/path/to/directory2"
以下是一个使用案例:
sudo osync.sh --initiator="/home/zcwyou/filename" –target="/home/zcwyou/filename_Backup"
对于本地到远程目录,您可能需要先为您的机器配置SSH无密码访问。
假设远程服务器的IP为203.18.20.XX
sudo ssh-keygen -t rsa
sudo ssh-copy-id ubuntu@203.18.20.XX
sudo ssh ubuntu@203.18.20.XX
本地到远端实现快速同步的语法如下:
osync.sh --initiator="/path/to/another/directory" --target="ssh://user@host/IP:22//path/to/directory2"
以下是一个使用案例:
sudo osync.sh --initiator="/home/zcwyou/filename" --target="ssh://ubuntu@203.18.20.XX:22//home/zcwyou/filename_remotesync"
osync命令还可以包括以下命令选项,以帮助您诊断严重错误。
--summary --errors-only --no-prefix
使用案例:
osync.sh --initiator="/path/to/another/directory"--target="ssh://user@host/IP:22//path/to/directory2" --summary --errors-only --no-prefix
4.2 配置计划任务自动同步文件
我们可以通过cron作业实现自动化快速同步模式的任务。
sudo su
crontab -e
为本地到本地和本地到远程目录添加以下两个cron计划任务以实现自动化同步文件:
*/5 * * * * osync.sh --initiator="/home/zcwyou/filename" –target="/home/dnyce/filename_Backup"
*/5 * * * * osync.sh --initiator="/home/zcwyou/filename" --target="ssh://ubuntu@203.18.20.XX:22//home/ubuntu/filename_remotesync"
5. 总结
Osync是本地到本地和本地到远程目录理想的双向同步解决方案。它可以实现关键数据的完美备份计划,以防意外删除或损坏文件。
评论前必须登录!
注册