Zaloha.sh是一个微小而简单的 shell 脚本,用于同步两个本地目录:源目录和备份目录。它采用标准 Linux/Unix 工具(例如find、sort、awk、mkdir、rmdir、cp和rm )来支持其底层功能。
Zaloha通过find 命令获取有关目录和文件的信息。这两个目录必须在本地可用,即安装到本地文件系统。它还具有反向同步功能,并且可以选择逐字节比较文件。此外,它要求用户在执行操作之前确认操作。
在本文中,您将学习如何安装和使用zaloha.sh来同步 Linux 中的两个本地目录。
在 Linux 中安装 Zaloha.sh
要安装Zaloha.sh,您需要使用git 命令行工具克隆其 Github 存储库,但在此之前,您需要如图所示安装 git。
# dnf 安装 git # CentOS/RHEL 8/Fedora 22+ # yum 安装 git # CentOS/RHEL 7/Fedora $ sudo apt install git # Ubuntu/Debian
安装git后,运行以下命令将远程存储库克隆到您的系统,移至本地存储库,然后将zaloha.sh脚本安装在 PATH 中的某个位置(例如/usr/bin)并使其可执行,如图所示。
$ git 克隆 https://github.com/Fitus/Zaloha.sh.git $ cd Zaloha.sh/ $回显$PATH $ sudo cp Zaloha.sh /usr/bin/zaloha.sh $ sudo chmod +x /usr/bin/zaloha.sh
![](https://www.alaica.com/wp-content/uploads/linux-762.png)
使用 Zaloha.sh 同步 Linux 中的两个本地目录
现在zaloha.sh 已安装在您的 PATH 中,您可以像任何其他命令一样正常运行它。您可以同步两个本地目录,如图所示。
$ sudo zaloha.sh --sourceDir="./admin_portal/" --backupDir="/var/www/html/admin_portal/"
运行后,zaloha 将分析这两个目录并准备同步这两个目录所需的命令。
![](https://www.alaica.com/wp-content/uploads/linux-763.png)
系统将提示您确认要执行的操作:“执行上面列出的副本到/var/www/html/admin_portal/?[ Y/y=是,其他=什么都不做,然后中止]:”。回答“是”继续。
![](https://www.alaica.com/wp-content/uploads/linux-764.png)
备份到外部/可移动 USB 介质
您还可以备份到安装到本地文件系统的可移动介质(例如/media/aaronk/EXT )。目标目录必须存在才能使命令起作用,否则您将收到错误消息“ Zaloha.sh:<backupDir>不是目录”。
$ sudo mkdir /media/aaronk/EXT/admin_portal $ sudo zaloha.sh --sourceDir="./admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"
![](https://www.alaica.com/wp-content/uploads/linux-765.png)
备份从源更改为备份目录
现在在源目录中进行更多更改,然后再次运行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将在备份目录中创建新目录,并从源中复制所有新文件以及以下屏幕截图中突出显示的文件。
![](https://www.alaica.com/wp-content/uploads/linux-766.png)
将备份中的更改反向同步到源目录
假设您已在备份目录中对源目录中已存在的文件进行了更改,则可以使用 选项启用的反向同步功能使更改反映在源目录中--renUp
。
$ zaloha.sh --revUp --sourceDir="/home/aaronk/admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"
![](https://www.alaica.com/wp-content/uploads/linux-767.png)
请注意,在备份目录中创建的、源目录中不存在的任何新文件或目录也将被删除,如以下屏幕截图所示。
![](https://www.alaica.com/wp-content/uploads/linux-768.png)
您可以告诉zaloha使用 选项跟踪源目录上的符号链接--followSLinksS
,并使用 选项跟踪备份目录上的符号链接--followSLinksB
。
$ sudo zaloha.sh --followSLinksS --followSLinksB --sourceDir="./admin_portal/" --backupDir="/var/www/html/admin_portal/"
要查看 Zaloha 文档,请运行以下命令。
$ zaloha.sh --帮助
目前为止就这样了!Zalohah.sh 是一个小而简单的基于 Bash 的备份脚本,用于同步 Linux 中的两个本地目录。尝试一下,并通过下面的反馈表与我们分享您的想法。