LANDISK Home HDL4-Gをrsyncサーバにする[追記あり]
I-O DATAのNAS、LANDISK Home HDL4-Gのtelnetを有効化しています。
- LANDISK HDL4-Gにtelnet: プラスα空間 (2010年5月29日)
ログインして、中を色々除いていたら、興味深い物を見つけました。
# /usr/bin/rsync --daemon --help rsync version 2.6.4 protocol version 29 Copyright (C) 1996-2005 by Andrew Tridgell and others <http://rsync.samba.org/> Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles, inplace, IPv6, 64-bit system inums, 64-bit internal inums rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the GNU General Public Licence for details. Usage: rsync --daemon [OPTION]... --address=ADDRESS bind to the specified address --bwlimit=KBPS limit I/O bandwidth; KBytes per second --config=FILE specify alternate rsyncd.conf file --no-detach do not detach from the parent --port=PORT listen on alternate port number -v, --verbose increase verbosity -4, --ipv4 prefer IPv4 -6, --ipv6 prefer IPv6 -h, --help show this help screen If you were not trying to invoke rsync as a daemon, avoid using any of the daemon-specific rsync options. See also the rsyncd.conf(5) man page.
rsyncがインストールされており、daemonモードも使える様です。
また、"/etc/init.d/rsync"も用意されており、ちょっとした設定ファイルを書くだけで、使えそうな感じです。
設定ファイルを書いてみて試した所、うまく動きました。
LANDISK Home HDL4-Gをrsyncサーバにする方法をまとめてみます。
LANDISK Home HDL4-GのIPアドレスが、"192.168.1.200″になっている物として説明します。適宜、お使いの環境に合わせて、設定し直して下さい。
1.用意するもの
- telnet等でloginできる様にしたHDL4-G
- 設定ファイル2個
- /etc/default/rsync
- /etc/rsyncd.conf
- 共有フォルダ"rsync"
これ以外に、必要な物はありません。暗号化が不要ならば、sshの導入も不要です。
2./etc/default/rsyncの準備
このファイルで、rsyncを使用するかどうかとrsyncのオプションを設定します。
[shell]
RSYNC_ENABLE=true
RSYNC_OPTS=’–port=10873′
[/shell]
rsyncが使う、デフォルトのポート番号は"873″番です。この設定をする事で、"10873″番を使う様にできます。ささやかな、セキュリティ確保です。
# mount -o remount,rw,noatime / # cat > /etc/default/rsync <<EOF RSYNC_ENABLE=true RSYNC_OPTS='--port=10873' EOF # mount -o remount,ro /
ただ、クライアント側でもポート番号を変更する必要があります。利便性を取るなら、次の様に設定して下さい。
[shell]
RSYNC_ENABLE=true
RSYNC_OPTS="
[/shell]
3./etc/rsyncd.confの準備
このファイルに、rsyncのdaemonモードの設定を書きます。
# mount -o remount,rw,noatime / # vi /etc/rsyncd.conf # mount -o remount,ro /
/etc/rsyncd.confに書く内容は、次の通りです。
# # Global options # uid = root gid = wheel use chroot = yes log file = /var/log/rsync.log pid file = /var/run/rsync.pid hosts allow = 192.168.1.0/24 hosts deny = * dont compress = *.gz *.tgz *.zip *.pdf *.sit *.sitx *.lzh *.bz2 *.jpg *.gif *.png exclude = .svn .DS_Store # # Module options # [rsync] comment = rsync server path = /mnt/sataraid1/share/rsync read only = no
“hosts allow"と"hosts deny"で、サブネット"192.168.1.*"以外からのアクセスを排除しています。
“.svn"ディレクトリと、OS Xが作る".DS_Store"を除外指定しています。
“[rsync]"が、サーバとして見えるパスになります。実体は、"path"に書いた部分です。この部分を、次の「共有フォルダ"rsync"」で準備します。
4.共有フォルダ"rsync”
# mkdir /mnt/sataraid1/share/rsync
WebのGUIから、共有フォルダを作った方が管理上は良いのかもしれません。ただ、不用意に公開してしまう事になるので、直接ディレクトリを作ってしまいました。
5.rsyncデーモン起動
とりあえず、設定が正しいかどうか、確認してみます。
# /etc/init.d/rsync start Starting rsync daemon: rsync # ps auxww | grep rsync root 24490 0.0 1.0 2068 648 ? Ss 23:22 0:00 /usr/bin/rsync --no-detach --daemon --config /etc/rsyncd.conf --port=10873 root 24494 0.0 1.1 4080 708 pts/0 D+ 23:23 0:00 grep rsync
起動した様です。
6.接続テスト
クライアント側から、次のコマンドでrsyncを実行します。カレントディレクトリに、"source"と言うディレクトリがあり、中に、"a.txt"と"b.txt"がある物とします。
% rsync -av --port=10873 source rsync://192.168.1.200/rsync building file list ... done source/ source/a.txt source/b.txt sent 192 bytes received 66 bytes 516.00 bytes/sec total size is 0 speedup is 0.00
正常終了しました。
クライアントは、OS X 10.7.5 Lionです。
日本語のファイル名(UTF-8)も大丈夫でした。
ファイルを追加すれば、追加できます。
また、ファイルを削除したい時は、"–delete"オプションを指定して下さい。
% rsync -av --port=10873 --delete source rsync://192.168.1.200/rsync building file list ... done deleting source/b.txt source/ skipping server-excluded file "source/.DS_Store" sent 193 bytes received 22 bytes 430.00 bytes/sec total size is 6148 speedup is 28.60
7.自動起動設定
このままでは、再起動しても、rsyncはdaemonモードで動いてくれません。
次の設定で、自動起動する様になります。
# mount -o remount,rw,noatime / # update-rc.d rsync defaults 50 Adding system startup for /etc/init.d/rsync ... /etc/rc0.d/K50rsync -> ../init.d/rsync /etc/rc1.d/K50rsync -> ../init.d/rsync /etc/rc6.d/K50rsync -> ../init.d/rsync /etc/rc2.d/S50rsync -> ../init.d/rsync /etc/rc3.d/S50rsync -> ../init.d/rsync /etc/rc4.d/S50rsync -> ../init.d/rsync /etc/rc5.d/S50rsync -> ../init.d/rsync # mount -o remount,ro /
この後再起動して、正しく動作しているかご確認ください。
参考ページ
次のウェブサイトを参考にさせていただきました。ありがとうございます。
- rsync でディレクトリの同期(バックアップ) – maruko2 Note.
- rsync全般について。大変良くまとめられております。
- Debianでの起動処理(init)とランレベル(rc.d)の制御
- run levelの設定について、詳しくまとめられております。
- exclude = .svn
- オプションの設定を参考にさせていただきました。
(追記 2013-09-14 07:37)
rsyncサーバとして動作させられますが、rsyncのバージョンが古くてがっかりと言う話です。
- LANDISK Home HDL4-Gをrsyncサーバにしようとした結果: プラスα空間 (2013年8月21日)
LANDISK Home HDL4-Gについては、次のページにまとめてあります。
ディスカッション
コメント一覧
まだ、コメントがありません