kikukawa's diary

都内で活動するシステムエンジニアが書いてます。 興味を持った技術やハマったポイント、自分用メモをつけてます。 最近はweb中心

外付けHDDからLinkStationへのファイルコピー

別の場所で取ったバックアップファイルを新規のLinkStationへの復元をした時の
試行錯誤の記録です。

1TBの外付けHDDに900Gほどのファイルがあり、
これをすでにLAN内に設置したLinkStationにコピーする要件が発生しました。

案1 LinkStationに付いているダイレクトコピーを使用する。

LinkStationにダイレクトコピーという機能があるのは知っていたので
これを使うことを検討しました。
LAN経由でコピーするよりも、HDDからNASへ直接コピーなら早いはずと思い
これでいけると思っていました。

結果、特定の拡張子のものしかコピーしてくれないし、
pictureなど勝手にフォルダ構成を作ってくるので却下です。

動画ファイル、画像ファイルなどしか転送してくれません。
もともとの使い道として、デジカメのファイルなどを転送する用途なので
仕方ないのですが、HDDからファイルをコピーって要望有りそうなのに。

案2 エクスプローラー経由でコピー

LinkStationのUSBに外付けUSBを接続し、
WindowsのエクスプローラーからLAN経由でコピーです。

時間が掛かり過ぎるので却下しました。

分かっていたけど時間が掛かり過ぎです。
そもそも、HDDからNASへUSBで直挿ししているのに、
Windows(LAN)を経由させなければならないことに納得がいかない。

案3 コマンドでコピー

LinkStationにSSH接続し、コマンドでコピー

LinkStationをHackすることになるので、あまりやりたくはない手段です。
結局、HDDからNASへ直接コピーする方法がこれしか見つからないため実施しました。

実施手順

作業環境

  • Windows 7 Pro 64bit
  • 管理者権限ありのユーザー
  • javaは準備済み

acp_commander.jarの準備

参考サイトにあるリンクからDLして来ました。
C:¥Users¥adminに置き
コマンドプロンプトから

cd C:¥Users¥admin
java -jar acp_commander.jar -h

とすることで、ヘルプが見られるます。
とりあえず、お試しで、コマンド発行してみます。

java -jar acp_commander.jar -t 192.168.xx.xx -c "ls -a /root"

-tで、LinkStationのIPアドレスを指定。
-cで、実行したいコマンドを指定。
叩くと、パスワードを求められます。
このパスワードは、LinkStationの管理画面に入るときのadminのパスワードです。
パスワードが合っていれば、結果が返ってくるはず。
後は、rootでsshできるようにするだけです。

java -jar acp_commander.jar -t 192.168.xx.xx -c "(echo rootのパスワードにしたい文字 ; echo rootのパスワードにしたい文字) | passwd"
java -jar acp_commander.jar -t 192.168.xx.xx -c "sed -i 's/UsePAM yes/UsePAM no/g' /etc/sshd_config"
java -jar acp_commander.jar -t 192.168.xx.xx -c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config"
java -jar acp_commander.jar -t 192.168.xx.xx -c "/etc/init.d/sshd.sh restart"

で、無事sshできたので、sshした後に、cpコマンド使ってファイルをコピー。
リンク先では-pwオプション使用していますが、
これは使えませんでした。
-ip指定も今回は使用する必要が無かったように思うので指定していません。

参考サイト

LinkStation に ssh で root ログインできるようにする - maruko2 Note.