网站搜索

Zaloha.sh - 适用于 Linux 的简单本地目录同步器脚本


Zaloha.sh 是一个微小而简单的 shell 脚本,用于同步两个本地目录:源目录和备份目录。它采用标准的 Linux/Unix 工具,例如 find、sort、awk、mkdir、rmdircprm 来支持其底层功能。

Zaloha 通过 find 命令获取有关目录和文件的信息。这两个目录必须在本地可用,即安装到本地文件系统。它还具有反向同步功能,并且可以选择逐字节比较文件。此外,它要求用户在执行操作之前确认操作。

在本文中,您将学习如何安装和使用 zaloha.sh 来同步 Linux 中的两个本地目录。

在 Linux 中安装 Zaloha.sh

要安装 Zaloha.sh,您需要使用 git 命令行工具克隆其 Github 存储库,但在此之前,您需要如图所示安装 git。

dnf  install git		# CentOS/RHEL 8/Fedora 22+
yum install git		# CentOS/RHEL 7/Fedora
sudo apt install git		# Ubuntu/Debian

安装git后,运行以下命令将远程存储库克隆到您的系统,移至本地存储库,然后在您的系统中的某个位置安装zaloha.sh脚本PATH 例如 /usr/bin 并使其可执行,如图所示。

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 同步 Linux 中的两个本地目录

现在 zaloha.sh 已安装在您的 PATH 中,您可以像任何其他命令一样正常运行它。您可以同步两个本地目录,如图所示。

sudo zaloha.sh --sourceDir="./admin_portal/" --backupDir="/var/www/html/admin_portal/"

运行后,zaloha 将分析这两个目录并准备同步这两个目录所需的命令。

系统将提示您确认要执行的操作:“执行上面列出的副本到 /var/www/html/admin_portal/? [Y/y=是,其他=不执行任何操作,然后中止]:”。回答继续。

备份到外部/可移动 USB 介质

您还可以备份到安装到本地文件系统的可移动媒体(例如/media/aaronk/EXT)。目标目录必须存在才能使命令起作用,否则您将收到错误消息“Zaloha.sh:不是目录”。

sudo mkdir /media/aaronk/EXT/admin_portal
sudo zaloha.sh --sourceDir="./admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"

从源到备份目录的备份更改

现在在源目录中进行更多更改,然后再次运行 zaloha.sh 以将更改备份到外部磁盘中,如图所示。

mkdir /home/aaronk/admin_portal/plugins
mkdir /home/aaronk/admin_portal/images
sudo zaloha.sh --sourceDir="/home/aaronk/admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"

Zaloha.sh 将在备份目录中创建新目录,并从源中复制所有新文件,并在以下屏幕截图中突出显示。

将备份中的更改反向同步到源目录

假设您已在备份目录中对源目录中已存在的文件进行了更改,则可以使用反向同步功能(使用 --renUp 选项启用)使更改反映在源目录中。

zaloha.sh --revUp --sourceDir="/home/aaronk/admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"

请注意,在备份目录中创建的、源目录中不存在的任何新文件或目录也将被删除,如以下屏幕截图所示。

您可以告诉 zaloha 使用 --followSLinksS 选项跟踪源目录上的符号链接,并使用 --followSLinksB 选项跟踪备份目录上的符号链接。

sudo zaloha.sh --followSLinksS  --followSLinksB --sourceDir="./admin_portal/" --backupDir="/var/www/html/admin_portal/"

要查看 Zaloha 文档,请运行以下命令。

zaloha.sh --help

目前为止就这样了! Zalohah.sh 是一个小而简单的基于 Bash 的备份脚本,用于同步 Linux 中的两个本地目录。尝试一下,并通过下面的反馈表与我们分享您的想法。