ウェブサイト検索

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


Zaloha.sh は、ソース ディレクトリとバックアップ ディレクトリという 2 つのローカル ディレクトリを同期するために使用される小さくてシンプルなシェル スクリプトです。 find、sort、awk、mkdir、rmdircprm などの標準 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 がインストールされたら、次のコマンドを実行してリモート リポジトリのクローンをシステムに作成し、ローカル リポジトリに移動して、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 の 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= はい、その他= 何もせずに中止]: ”。 [はい] と答えて続行します。

外部/リムーバブル 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 ベースのバックアップ スクリプトです。試してみて、以下のフィードバック フォームからご意見をお聞かせください。