TeraStationへrsyncでファイル転送する

スポンサーリンク

TeraStationとrsync

rsyncdはデフォルトで動作している

TeraStationは各共有フォルダの設定の「公開先」に「バックアップ」というチェックボックスがあり、ONにすることでrsyncで転送できる共有フォルダになります。

共有フォルダの設定画面は以下のような感じで、FTPにチェックを入れるとFTPクライアントからTeraStationにアクセスできます。

TeraStationのNAS内の共有フォルダ設定画面

nmapなどでTeraStationをポートスキャンしてみると、以下のようにポート873でrsyncdが待ち受けているのがわかります。

デフォルトの状態でrsyncdは動作していますが、共有フォルダの設定で「バックアップ」にチェックが無いと転送できません。

[root@sakue]# nmap -sT 192.168.2.170

Starting Nmap 6.40 ( http://nmap.org ) at 2021-01-14 10:52 JST
Nmap scan report for 192.168.2.170
Host is up (0.0012s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
548/tcp open afp
873/tcp open rsync
8873/tcp open dxspider
22939/tcp open unknown
MAC Address: 10:6F:3F:03:44:08 (Buffalo)

Nmap done: 1 IP address (1 host up) scanned in 0.53 seconds

rsyncで転送できるフォルダを確認

rsyncクライアントが使えるLinux端末などから以下のように実行します。

rsync -avn rsync://[TeraStationのIPアドレス]/ .

TeraStationのIPアドレスが「192.168.2.170」の場合は以下です。

rsync -avn rsync://192.168.2.170/ .

すると「バックアップ」にチェックが入っているrsync対応の共有フォルダがリストで返ってきます。

array1_test

上記の例では1つだけですが、「バックアップ」にチェックが入っているフォルダはすべて表示され、rsyncで転送する場合は、この「array1_XXXX」という文字列で転送先を指定します。

rsyncでTeraStationへ転送

注意点として、所有者や権限がそのままだと(例えばroot)、SambaやFTPで削除しようとしても権限がないので削除できなくなります。

以下はFileZillaで削除しようとして失敗した例です。

10:18:10 エラー: rm /mnt/array1/test/test.txt: permission denied

このため「所有者をTeraStationのユーザーにして転送」するか、「アクセス権を777」などにして転送するなどの対処が必要です。

ブラウザからのWebコンソール?ではファイルを直接操作できませんが、共有フォルダの削除をすれば一応削除はできます(フォルダごと削除ですが)

アクセス権を変更して転送

「–chmod=」オプションでアクセス権を指定して転送できます。

「a+」はその後に続く権限を付与で、「rwx」なので、すべてのユーザーに「読み」「書き」「実行」を付与するので、数字だと「777」と同じ意味です。

rsync -av --chmod=a+rwx [転送元] rsync://[TeraStationのIP]/[転送先]

パーミッションを「777」にし、「/home/sakue/」ディレクトリをTeraStationの「test」フォルダに転送する例です。

rsync -av --chmod=a+rwx /home/sakue/ rsync://192.168.2.170/array1_test

TeraStationの「転送先」で指定する文字列は以下で確認できます(共有フォルダの設定でバックアップにチェックがあるフォルダのみリストアップ)

rsync -avn rsync://[TeraStationのIP]/ .

TeraStationのIPアドレスが「192.168.2.170」の場合は以下です。

rsync -avn rsync://192.168.2.170/ .

「array1_共有フォルダ名」という文字列がリストアップされますが、rsyncで転送する場合は、この「array1_XXXX」という文字列で転送先を指定します。

FTPクライアントなどからアクセスしてみると、所有者はrootのままですが、パーミッションが「777」になっているのがわかります。

所有者をTeraStationのユーザーにして転送

rsyncには「–usermap=」というオプションもあり、元の所有者を別の所有者に変更して転送できます。

TeraStationでユーザーごとに細かく管理している場合は、この方法でTeraStationのユーザーに変更して転送してやります。

rsync -av --usermap=[元のユーザー]:[変更後ユーザー] [転送元] rsync://[TeraStationのIP]/[転送先]

以下の条件で転送する例です。

  • 元の所有者はroot
  • 変更後の所有者はsakue
  • 転送対象ディレクトリは/home/sakue/
  • TeraStationのIPは192.168.2.170
  • TeraStation側の転送先フォルダはarray1_test
rsync -av --usermap=root:sakue /home/sakue/ rsync://192.168.2.170/array1_test

TeraStationの「転送先」で指定する文字列は以下で確認できます(共有フォルダの設定でバックアップにチェックがあるフォルダのみリストアップ)

rsync -avn rsync://[TeraStationのIP]/ .

TeraStationのIPアドレスが「192.168.2.170」の場合は以下です。

rsync -avn rsync://192.168.2.170/ .

「array1_共有フォルダ名」という文字列がリストアップされますが、rsyncで転送する場合は、この「array1_XXXX」という文字列で転送先を指定します。

FTPクライアントなどからアクセスしてみると、「所有者」が先程指定した「sakue」になっているのが確認できます。

コメントフォーム

タイトルとURLをコピーしました