Ubuntu 18.04 LTS Grsync で NAS をミラーリング
我が家の 自作NAS のバックアップは自宅サブネット内の Windows機に Bvckup というアプリを使って不定期に手動でミラーリングしています。これで何か問題があるわけではないのですが、Linux(Ubuntu)機からもやってみたくなりました。
そこで Linux用のバックアップアプリを調べてみると、Ubuntuはもちろんのこと他の Linux OS にも rsync というコマンドベースの強力なバックアップパッケージが標準でインストールされていることが分かりました。
早速、rsync マニュアル を開いてみると、尋常じゃない数のオプションがあり英語でもあり、ハードル高すぎて心が折れました。そんなに高度なバックアップをやろうとしてるわけではないのです。
次に「rsync ミラーリング」でネット検索してみるとミラーリングするためのコマンドとオプションは出てくるものの、鵜呑みにするとデータ消失の危険性もあるのでなかなか実行する気になれません。
大体この手のアプリには GUI(Graphical User Interface)があるはずだが、と思いつつ探してみたら、Ubuntuの公式リポジトリに Grsync というパッケージがありました。
日本語版はありませんがマニュアルとにらめっこするよりはだいぶマシです。結果、NASのミラーリングに成功しました。下の画像は Ubuntu 18.04 LTS上の Grsyncでミラーリング実行した時のスクリーンショットです。
このページでは rsyncコマンドを GUIで実行する方法を掲載しています。さらに、英語のメニューやツールチップを日本語に訳してみました。(2020年6月)
PC環境
マザーボード:ASUS P5Q Deluxe (LGA775 DDR2)
CPU:Intel Core2 Quad Q6600
メモリー:Qimonda HYS64T128020EU-2.5-B2 1GB 2Rx8 PC2-6400U-666-12-E0
SSD:Intel SSD 330 series(OS : Ununtu 18.04 LTS)
HDD1:Seagate Barracuda 2.5" 1TB 7mm 6Gb/s 128MB 7200rpm ST1000LM049 85g
HDD2:TOSHIBA 2.5" 1TB 9.5mm 6Gb/s 8MB 5400rpm MQ01ABD100 117g
先述の Windows機とは別に所有している テストベンチ台PC に設定した、Barracudaを除くおよそ10年前仕様の環境です。この環境で Grsyncを使って NASをミラーリングしました。
HDDのファイルシステムは EXT4 です。当初は NTFS フォーマットで試したのですが、OS上でモニタリングした転送速度が遅かったので変更しました。10MB/sくらいの差がありました。
Grsyncの使い方
下の画像は Grsync GUI のスクリーンショットです。
Grsyncを開くと既にコマンドオプションにチェックが入っていますがこれはデフォルトの設定になります。ここでトップメニュー [ File ] の中の Rsync command line をクリックするとダイアログボックスが開き、そこに現在の、つまりデフォルトのコマンドラインが表示されます。
rsync -r -t -v --progress -s ← デフォルトのコマンドライン
この動作でユーザーが設定したコマンドの内容を確認できます。
設定から実行までの手順
- Basic optionsタブとAdvancsd optionsタブ内の各オプションにチェックを入れます。
- 必要なオプションが 1.のタブにない場合 Extra optionsタブ内の Additional options: の中に -h などのオプションを直接入力します。
- 設定が終わったらトップメニュー [ File ] - Rsync command line でコマンドラインを確認します
- NAS とミラーリング先 HDD をマウントします。
- Basic optionsタブ内の Source and Destination: ソース(送信元)と宛先のパスを入力します。上段がソースで下段が宛先です。
- アイコンメニュー [Add a new session]をクリックして Mirroring など適当なセッション名で登録します。
- アイコンメニュー [Dry-run]をクリックするとドライラン(テストラン)がスタートするので、その結果を確認します。
- アイコンメニュー [Make a full run]をクリックするとコマンドが実行されミラーリングがスタートします。
- アイコンメニュー [Delete the current session]をクリックすると 6.で登録したセッションが削除されます。
下の画像は 上記手順に従いミラーリング ドライランを実行した Grsync GUIのスクリーンショットです。
正常に実行処理が完了すると [Completed successfully !] ダイアログボックスに処理内容が表示されます。下記は実行されたコマンドです。
rsync -r -n -t -p -o -g -v --progress --delete -l -D -h /run/user/1000/gvfs/smb-share:server=net1,share=data1-e/ /media/fuukemn/nas_net1/data-e.bk
訳すと、「 Ubuntu にマウントした NAS の data1-e 内と、HDD の data1-e.bk ディレクトリ内のデータを同期するシミュレーションを行う 」です。本番では -n が外れます。ミラーリングの場合 / 有りにします。
これを端末で手打ちとなると正直辛いものがありますね。この場合、例えば「ログインした 1分後に rsyncコマンドを実行する」などと cronタブで設定する方法があります。
設定時の注意点
・ソース側パスの入れ方次第で宛先にコピーされる内容が変わってきます。具体的には「末尾の / (スラッシュ)」の有り無しです。次のセクション、Basic options の Source and Destination:を参照してください。ミラーリングの場合 / 有りにします。
・rsync には複数のオプションをまとめられる -a オプションがありますが Grsyncでは GUIで完結するので気にする必要はありません。どうしても使いたいならば Extra options タブ内の Additional options: の欄に直接入力できます。
補足: -a は -r -t -p -o -g -l -D を含む
・本番前に十分なテストをする。
GUIを日本語に訳した
このセクションの画像は Ubuntu 18.04 LTS Xfce Faenzaアイコンテーマ環境でのスクリーンショットです。なのでアイコンやウィンドウなどのデザインは GNOME環境と異なっていますがメニューやツールチップなどの内容は同じです。
目次
Graphical User Interface
メニューバー
File
- Browse Source =ソースを参照
- Browse Destination =宛先を参照
- Switch source with destination =宛先とソースを切り替える
- Simulation =シミュレーション
- Execute =実行する
- Rsync command line =rsyncコマンドライン
- Preferences =環境設定
Rsync executable: (rsync 実行可能)
■ Show rsync output by default (デフォルトでrsync出力を表示する)
ツールチップ :Whether to show rsync output by default or hide it (show graphical information only) =デフォルトでrsync出力を表示するか非表示にするか(グラフィカルな情報のみを表示する)
■ Show error list when finished (終了時にエラーリストを表示)
ツールチップ:When rsync has finished, show all the errors encountered in a separate window =rsync が終了したら、発生したすべてのエラーを別のウィンドウに表示する
■ Fast rsync output scrolling (高速rsync出力スクロール)
ツールチップ:Select this if you want rsync output to scroll many lines at a time, in order to be faster =rsync 出力をより高速にするために一度に多くの行をスクロールさせたい場合に選択します
■ Use tray icon (トレイアイコンを使用する)
ツールチップ:Check this box show an icon of the application in the system tray instead of the application bar (may not work on Unity environments, like Ubuntu >= 11.4) =このボックスをチェックすると、アプリケーションバーの代わりにシステムトレイにアプリケーションのアイコンが表示されます(Ubuntu 11.4 などのUnity環境では動作しない場合があります)
■ Remember last used session (最後に使用したセッションを記憶)
ツールチップ:Whether to load the last used session at startup or use the default one =起動時に最後に使用されたセッションをロードするか、デフォルトのセッションを使用するか
■ Enable loging (ロギングを有効にします)
ツールチップ:Whether to save rsync output to a long file, named like the session, which will be located in the grsync directory (usually ".grsync" into your user home) =.grsyncディレクトリにある、セッションのような名前の長いファイルにrsync出力を保存するかどうか(通常、.grsync はユーザーのホームにあります)
■ Enable switch button (スイッチボタンを有効にする)
ツールチップ:Select this if you want an additional "switch" button in the basic options tab =基本オプションタブに「スイッチ」ボタンを追加したい場合は、これを選択します
■ Overwrite logs (ログを上書き)
ツールチップ:Whether to overwrite the logs when running a session. This will make you save space, bat you'll lose the logs of the previous runs =セッションの実行時にログを上書きするかどうか。これはスペースの節約になりますが、以前に実行したログを失うことになります
- Quit =終了する
Sessions
- Add =追加
- Delete =削除
- Import =読み込む
- Export =書き出す
Help
- About =grsync について
- Rsync info =rsync の情報
- Contribute =支援する(寄付)
アイコンメニュー
:Click to add a new session =新しいセッションを追加するにはクリックしてください
Add session
Enter session name you want to create:(作成するセッション名を入力してください)
■ Add session set (セッションセットを追加)
:Click to delete the current session =クリックして現在のセッションを削除します
Are you sure you want to delete the 'Mirroring_02' session? (Mirroring_02セッションを削除してもよろしいですか)
:Show what woule have been done, but actually do nothing ("dry-run" in rsync language) = 何が行われたかを表示しますが、実際には何もしません(rsync言語では「ドライラン」)
:Make a full run (go) =完全に実行する(go)
tab:Basic options (基本的なオプション)
Source and Destination: (送信元と送信先)
About trailing slashes (末尾のスラッシュについて)
A trailing slash on the source directory avoids creating an additional directory level at
the destination.
(ソースディレクトリの末尾にスラッシュを付けることで、宛先に追加のディレクトリレベルを作成しないように
しています)
You can think of a trailing / on a source as meaning "copy the contents of this directory"
as opposed to "copy the directory itself and its contents".
(ソースの末尾の / は「このディレクトリの内容をコピーする」という意味であり、「ディレクトリ自体とその内容を
コピーする」という意味ではないと考えることができます)
In other words, each of the following commands copies the files in the same way:
(つまり、以下の各コマンドは、同じようにファイルをコピーします)
rsync -a /src/foo/dest
rsync -a /src/foo/dest/foo
補足|ミラーリングの場合 / 有りにします。
ツールチップ:
Source directory (ソースディレクトリ) を入力する
Destination directory (宛先ディレクトリ) を入力する
■ Preserve time (時間の保持)
ツールチップ:
-t, --times [[ preserve modification times (変更時間を保持する)
■ Preserve owner (所有者を保持)
ツールチップ:
-o, --owner [[ preserve owner (super user only) =所有者を保持する(スーパーユーザーのみ)
■ Preserve permissions (権限を保持)
ツールチップ:
-p, --perms [[ preserve permissions =権限を保持する
■ Delete on destination (宛先で削除)ツールチップ:
--delete [[ delete extraneous files from destination dirs =宛先のディレクトリから不要なファイルを削除する
■ Verbose (冗長)
ツールチップ:
-v, --verbose [[ increase verbosity =冗長性を高める
Show more information =詳細を表示
■ Ignore existing (既存のものを無視)
ツールチップ:
--ignore-existing [[ skip updating files that already exist on receiver =すでに受信機上に存在するファイルを更新スキップ
Ignore files which already exist in the destination =宛先にすでに存在するファイルを無視します
■ Skip newer (新しいものをスキップ)
ツールチップ:
-u, --update [[ skip files that are newer on the receiver =受信機上の新しいファイルをスキップする
Do not update newer files =新しいファイルを更新しないでください
■ Do not leave filesystem (ファイルシステムを離れないでください)
ツールチップ:
-x, --one-file-system [[ don't cross filesystem boundaries =ファイルシステムの境界を越えてはいけません
Do not cross filesystem boundaries =ファイルシステムの境界を越えてはいけません
■ Show transfer progress (転送の進行状況を表示)
ツールチップ:
--progress [[ Show progress during transfer =転送中に進行状況を表示する
■ Size only (サイズのみ)
ツールチップ:
--size-only [[ skip files that match in size =サイズが一致するファイルをスキップ
Check size only, ignore time and checksum =サイズのみをチェックし、時間とチェックサムを無視します
■ Windows compatibility (ウィンドウズ互換性)
ツールチップ:
--modify-window=NUM [[ compare mod-times with reduced =変更時間と短縮時間を比較する
Provides workaround for a windows FAT filesystem limitation =Windows FATファイルシステムの制限に対する回避策を提供します
tab:Advanced options (高度なオプション)
■ Always checksum (常にチェックサム)
ツールチップ:
-c, --checksum [[ skip based on checksum, not mod-time & size =mod-timeとsizeではなく、チェックサムに基づいてスキップする
always compare file contents (by checksum) =常にファイルの内容を(チェックサムで)比較
■ Preserve devices (デバイスの保存)
ツールチップ:
-D [[ same as --devices --specials = --devices --specials と同じ
■ keep partially (留め置く)
ツールチップ:
-P [[ same as --partial --progress = --partial --progress と同じ
■ Copy symlinks as symlinks (シンボリックリンクをシンボリックリンクとしてコピー)
ツールチップ:
Symbolic lincks are copied as such, do not copy link target file (シンボリックリンクはそのようにコピーされるので、リンク先のファイルをコピーしないでください)
■ Make backups (バックアップの作成)
ツールチップ:
-b, --backup [[ make backups (see --suffix & --backup-dir) =バックアップを作成する (--suffix と --backup-dir 参照)
Make backups of existing files on the destination =保存先の既存ファイルのバックアップを作成する
■ Disable recursion (再帰を無効にする)
ツールチップ:
If checked the subdirectories of the source folder will be ignored =チェックした場合、ソースフォルダのサブディレクトリは無視されます
■ Compress file data (ファイルデータの圧縮)
ツールチップ:
-z, --compress [[ compress file data during the transfer =転送中にファイルデータを圧縮する
Compress file data when transferring (useful only if at least one side is remote) =転送時にファイルデータを圧縮する (少なくとも片側がリモートの場合にのみ有効)
■ Only update existing (既存の更新のみ)
ツールチップ:
--existing [[ skip creating new files on receiver =受信側での新規ファイル作成をスキップ
■ Don't map uid/gid values (uid/gid の値をマップしないでください)
ツールチップ:
--numeric-ids [[ don't numeric uid/gid values by user/groupe name =uid/gidの値をユーザー/グループ名で数値化しないようにする
Keep numeric uid/gid instead of mapping user manes and group mames =ユーザ名とグループ名をマッピングする代わりに uid/gid を数値で保持する
■ Copy hardlinks as hardlinks (ハードリンクをハードリンクとしてコピー)
ツールチップ:
-H, --hard-links [[ preserve hard links =ハードリンクを保存する
Hard links are copied as such, do not copy link target file =ハードリンクはそのようにコピーされますので、リンク先のファイルをコピーしないでください
■ Show itemized changes list (箇条書きの変更リストを表示)
ツールチップ:
-i, --itemize-dhenges [[ output a change-summary for all updates =すべての更新についての変更サマリーを出力します
Show additonal information on every changed file =変更されたファイルごとに追加情報を表示
■ Protect remote args (リモート引数の保護)
ツールチップ:
-s, --protect-args [[ no space-splitting; only wildcard special-chars =スペース分割なし、ワイルドカードの特殊文字のみ
Protect remote arguments from shell expansion, Avoids the need to manually escape remote folders and other options which use file names like --exclude
=シェル拡張からリモート引数を保護し、リモートフォルダや --exclude のようなファイル名を使用する他のオプションを手動でエスケープする必要はありません
Additional options: (追加オプション)
ツールチップ:Additional command line options to pass to the rsync program =rsync プログラムに渡す追加のコマンドラインオプション
tab:Extra options (それ以外のオプション)
■ Execute this command before rsync: (rsync の前にこのコマンドを実行します)
ツールチップ:
Click on this item if you want to run a command before syncing. Can be useful, for instance,to mount a filesystem before starting to do some clean up.
同期前にコマンドを実行したい場合は、この項目をクリックしてください。例えば、クリーンアップを始める前にファイルシステムをマウントするのに便利です。
■ Halt on failure (失敗時の停止)
ツールチップ:
When running the "before" command, if it fails for some reason, don't run rsync and halt
「before」コマンドを実行する際、何らかの理由で失敗した場合はrsyncを実行せずに停止させます。
■ Execute this command after rsync: (rsync の後にこのコマンドを実行します)
ツールチップ:
Click on this item if you want to run a command after syncing. Can be useful, for instance, to unmount a filesystem at the end or to do some clean up.
同期後にコマンドを実行したい場合は、この項目をクリックします。例えば、最後にファイルシステムをアンマウントしたり、クリーンアップしたりするのに便利です。
■ On rsynce error only (rsynce エラーの場合のみ)
ツールチップ:
Execute the "after" command only if synchronization had errors. For example can be used to send an email only in the case there was trouble.Try a command like "mail -s 'rsync error' you@domain.com".
同期にエラーが発生した場合のみ "after "コマンドを実行します。例えば、トラブルが発生した場合のみメールを送信するなどの使い方ができます。「mail -s 'rsync error' you@domain.com 」のようなコマンドを試してみてください。
■ Browse files instead of folders (フォルダではなくファイルを参照)
ツールチップ:
By setting this switch, the browse source and destination buttons will open a dialog for deleting files instead of folders
このスイッチを設定すると、参照元と保存先のボタンで、フォルダではなくファイルを削除するためのダイアログが表示されます。
■ Run as superuser (スーパーユーザとして実行)
ツールチップ:
Run rsync with superuser (root, administrator) privileges. Use this if you need to access system files, for example when doing a full system backup.
スーパーユーザ (root、管理者) 権限で rsync を実行します。システムの完全なバックアップを行う場合など、システムファイルにアクセスする必要がある場合に使用します。
Notes: (留意事項)
END -
雑感
Grsync のホームページに数か国語のランゲージファイルが用意されているのですが、残念ながら日本語はありませんでした。
そういうわけで Grsync のメニューとツールチップを日本語に訳したのですが、2つのウェブ自動翻訳を使ったので不自然な日本語はほぼないと思います。
ただし鵜呑みにしないで rsync マニュアルの確認と本番前テストをしてくださいね。データ消失すると取り返しがつかないですから。