在Linux系统中,经常需要在不同的目录之间同步文件。虽然有许多专业的同步工具如rsync,但有时我们可能需要一个更简单、更定制化的解决方案。Zaloha.sh是一个轻量级的shell脚本,专门设计用于在Linux/Unix系统中同步两个本地目录。它依赖于常见的命令行工具,如find、sort、awk、mkdir、rmdir、cp和rm,来执行文件和目录的同步操作。该脚本通过find命令来收集目录和文件的详细信息,并要求两个参与同步的目录都必须是本地挂载的,以便直接访问。
Zaloha.sh的特点包括:双向同步,能够实现源目录到备份目录,或备份目录到源目录的数据同步。字节级文件比较,提供选项,允许用户选择是否进行逐字节的文件比较,以确保数据的一致性。用户确认,在执行任何同步操作之前,脚本会要求用户确认,以避免误操作导致数据丢失。
本文将指导用户如何安装Zaloha.sh,并详细介绍如何在Linux环境中使用该脚本来同步两个本地目录,确保数据的一致性和完整性。通过使用Zaloha.sh,用户可以轻松地管理本地数据的备份和同步,而无需依赖复杂的第三方同步工具。
安装 git,再使用git 命令行工具克隆其 Github 存储库:
# dnf install git # CentOS/RHEL 8/Fedora 22+
# yum install git # CentOS/RHEL 7/Fedora
$ sudo apt install git # Ubuntu/Debian
安装git后,运行以下命令将远程存储库克隆到您的系统,移至本地存储库,然后在 PATH 中的位置(例如/usr/bin)安装zaloha.sh脚本并使其可执行。
$ git clone https://github.com/Fitus/Zaloha.sh.git
$ cd Zaloha.sh/
$ echo $PATH
$ sudo cp Zaloha.sh /usr/bin/zaloha.sh
$ sudo chmod +x /usr/bin/zaloha.sh
现在zaloha.sh 已安装在您的 PATH 中,您可以像任何其他命令一样正常运行它。您可以同步两个本地目录,如下所示。
$sudozaloha.sh--sourceDir="./admin_portal/" --backupDir="/var/www/html/admin_portal/"
运行之后,zaloha会分析这两个目录,并准备同步这两个目录所需的命令。
系统将提示您确认要执行的操作:“执行上述副本到/var/www/html/admin_portal/ ? [ Y/y=是, other=不执行任何操作, 并中止]:”。回答是继续。
您还可以备份到挂载到本地文件系统的可移动媒体(例如/media/aaronk/EXT)。目标目录必须存在才能使命令起作用,否则您将收到错误消息“ Zaloha.sh:<backupDir> 不是目录”。
$ sudo mkdir /media/aaronk/EXT/admin_portal
$sudozaloha.sh--sourceDir="./admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"
在源目录中进行更多更改,然后再次运行zaloha.sh以备份外部磁盘中的更改。
$ mkdir /home/aaronk/admin_portal/plugins
$ mkdir /home/aaronk/admin_portal/images
$sudozaloha.sh--sourceDir="/home/aaronk/admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"
假设您在备份目录中对源目录中已存在的文件进行了更改,则您可以使用该选项启用的反向同步功能使更改反映在源目录中--renUp。
$ zaloha.sh --revUp --sourceDir="/home/aaronk/admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"
华纳云官网为您提供了更多热点资讯,欢迎来访!