Zaloha.sh-Linux用のシンプルなローカルディレクトリシンクロナイザースクリプト


Zaloha.shは、ソースディレクトリとバックアップディレクトリの2つのローカルディレクトリを同期するために使用される、小さくて単純なシェルスクリプトです。基盤となる機能をサポートするために、find、sort、awk、mkdir、rmdir、cp、rmなどの標準のLinux/Unixツールを採用しています。

Zalohaは、findコマンドを介してディレクトリとファイルに関する情報を取得します。両方のディレクトリがローカルで使用可能である必要があります。つまり、ローカルファイルシステムにマウントされている必要があります。また、逆同期を備えており、オプションでファイルをバイトごとに比較できます。また、実行前にアクションの確認をユーザーに求めます。

この記事では、zaloha.shをインストールして使用し、Linuxで2つのローカルディレクトリを同期する方法を学習します。

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がインストールされたら、次のコマンドを実行してリモートリポジトリをシステムに複製し、ローカルリポジトリに移動してから、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を使用してLinuxで2つのローカルディレクトリを同期する

zaloha.shがPATHにインストールされたので、他のコマンドと同じように通常どおり実行できます。図のように、2つのローカルディレクトリを同期できます。

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

それを実行した後、zalohaは2つのディレクトリを分析し、2つのディレクトリを同期するために必要なコマンドを準備します。

実行するアクションを確認するように求められます。「上記のコピーを/ var/www/html/admin_portal /に実行しますか? [Y/y u003dはい、その他u003d何もせず、中止します]:」。はいと答えて続行します。

外部/リムーバブル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"

次のスクリーンショットに示すように、バックアップディレクトリに作成された、ソースディレクトリに存在しない新しいファイルまたはディレクトリも削除されることに注意してください。

-followSLinksS オプションを使用してソースディレクトリで、および -followSLinksB オプションを使用してバックアップディレクトリでシンボリックリンクをたどるように、zalohaに指示できます。

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

Zalohaのドキュメントを表示するには、次のコマンドを実行します。

$ zaloha.sh --help

それは今のところすべてです! Zalohah.shは、Linuxの2つのローカルディレクトリを同期するための小さくてシンプルなBashベースのバックアップスクリプトです。ぜひお試しいただき、以下のフィードバックフォームからご意見をお聞かせください。