5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

TeraStationの共有フォルダをrsyncでバックアップさせた話し


こちらの話しの続きです。

TeraStasionをマウントしたり、アンマウントしたり、バックアップを取ったりをするシェルスクリプトを作成しました。Syntax Highlighter for WordPressは、WordPressのビジュアルエディタを選ぶということなので、エディタプラグインをTinyMCEにしてみました。

まずはマウントするスクリプトです。マウントしたい共有フォルダの一覧をファイルにしておきます。

共有フォルダ一覧

フォルダ1
フォルダ2
:
:

以上のようにTeraStationの共有フォルダを1行ずつテキストファイルにしておきます。このテキストファイルを読み込みながらマウントするスクリプトを書いておきます。ファイルタイプはcifsです。このままアクセスしても日本語のファイル名は文字化けします。

#!/bin/sh

while read FOLDER
do
mount -t cifs //TeraStationのIPアドレス/$FOLDER /マウントポイント/$FOLDER/ -o credentials=ID/パスワードファイル
done < "共有フォルダ一覧"

パスワードファイルはTeraStationの管理者のID/パスワードを格納しておきます。権限を設定して誰も見えないようにしておきます。

username=admin
password=パスワード

同じように、アンマウントするスクリプトも書いてしまいます。共有フォルダ一覧のテキストファイルを読み込みます。

#!/bin/sh

while read FOLDER
do
umount //TeraStationのIPアドレス/$FOLDER
done < "共有フォルダ一覧"

最後にrsyncで同期をするスクリプトです。前後にマウントとアンマウントをするスクリプトを呼び出します。基本的な構造は、同じです。

#!/bin/sh

マウントのスクリプト

while read FOLDER
do
rsync -azv --exclude="trashbox" --iconv=CP932,UTF-8 /マウントポイント/$FOLDER/ /バックアップ先/$FOLDER/
done < "/root/bin/folders.txt"

アンマウントのスクリプト

ファイル名の変換を行うための–iconvオプションを付けて、正しい日本語ファイル名にしてしまいます。この辺りのオプションは、rsync 公式サイトの日本語訳のサイトには、詳しく書かれていないので、他のサイトを検索して見た方がよいです。

公式サイトの日本語サイトというのは、意外と丁寧に説明してくれないので、これで国内で普及を阻害されているOSSがあります。rsync以外ではqmailなんて昔は酷いものでした。今は、ドキュメントがまとまってよい感じになりました。

QNAP(キューナップ)
¥96,380 (2024/04/13 20:47時点 | Amazon調べ)

SambaをLinuxサーバーのインストールしてファイルサーバーとして動かすよりも、サクッとQNAPを入れてしまったほうが簡単、安心、便利でおすすめ。ファイルサーバーだけではなくてDockerでいろいろとコンテナを設定してサーバーをたくさん立てられるしね。

ブログランキング・にほんブログ村へ 人気ブログランキング

“TeraStationの共有フォルダをrsyncでバックアップさせた話し” への1件のコメント

  1. […] TetaStationからのバックアップスクリプトについては別記事に書きました。 […]