ホーム > システム > 玄界 > 利用方法 > ITOから玄界へのファイル転送

ITOから玄界へのファイル転送

最終更新日:2024年7月9日

ITOに保存されているファイルは9月11日以降、アクセスできなくなります。 必要なファイルはご自分のPCなどにダウンロードするか、もしくは以下を参照して、玄界にご自分で転送してください。


ファイル転送の準備

転送元サーバと転送先サーバの確認

同時期に多数の利用者がファイル転送を行いますので、特定のサーバへの負荷集中を防ぐため、 ファイル転送に使用するサーバを、転送元、転送先とも複数用意しております。 それらを、以下の表に示す通り、ホームディレクトリの位置に応じて各ユーザに割り当ててご利用いただきます。

ホームディレクトリの位置 転送元サーバ(ITO側) 転送先サーバ(玄界側)
/home/usr0 133.5.4.223, 133.5.4.232 172.31.16.41, 172.31.16.42
/home/usr1 133.5.4.233, 133.5.4.241 172.31.16.43, 172.31.16.44
/home/usr2 133.5.4.242, 133.5.4.243 172.31.16.45, 172.31.16.46
/home/usr3 133.5.4.244, 133.5.4.245 172.31.16.47, 172.31.16.48
/home/usr4 133.5.4.246, 133.5.4.243 172.31.16.49, 172.31.16.46
/home/usr5 133.5.4.247, 133.5.4.248 172.31.16.50, 172.31.16.51
/home/usr6 133.5.4.249, 133.5.4.250 172.31.16.52, 172.31.16.53
/home/usr7 133.5.4.100, 133.5.4.103 172.31.16.54, 172.31.16.57
/home/usr8 133.5.4.101, 133.5.4.102 172.31.16.55, 172.31.16.56
/home/usr9 133.5.4.103, 133.5.4.100 172.31.16.57, 172.31.16.54

ここで、ホームディレクトリの位置とは、ITO上でのホームディレクトリの位置です。 ITOにログインして以下を実行して頂くと、確認できます。

$ pwd
 /home/usr6/a0123456g

この例ですと /home/usr6/a0123456g がホームディレクトリですので、 上記の表のうち /home/usr6に割り当てられているサーバを利用します。

なお、転送元サーバ、転送先サーバとも 2つずつアドレスが書かれていますが、 それぞれ、どちらを使っていただいても構いません。 もし、転送速度が遅い場合、混雑の状況によっては、 転送元サーバや転送先サーバのアドレスをもう一つの方に変えて頂くと転送速度が向上する可能性があります。


公開鍵の登録

玄界の利用申請ポータルで登録した公開鍵を ITOにも登録します。 これにより、次に紹介するエージェントフォワーディングという機能を使って、 ファイル転送時のユーザ認証を省略できるようになります。

なお、ITOと同じ秘密鍵と公開鍵を玄界でも使用している場合は、 次の「エージェントフォワーディングの設定」に進んでください。

玄界の公開鍵をITOに登録するには、まず玄界にログインし、

$ cat ~/.ssh/authorized_keys
で表示される公開鍵の内容をマウスで選択してコピーし、 次にITOにログインしてテキストエディタで ~/.ssh/authorized_keysを開いて、 コピーした内容をファイルの末尾に貼り付けます。 もしくは、ITOポータルにログインし、 "ファイル操作"で、ウィンドウ下部の"隠しファイルの表示"をチェックして、 ホームディレクトリの .ssh/authorized_keysを開いて追記して頂いても構いません。


エージェントフォワーディングの設定

ITOから玄界へのファイル転送では、まず上記で確認した転送元サーバにログインし、その後、 転送先サーバにファイルを転送します。 通常、転送元サーバへのログイン時と、転送先へのファイル転送時に、それぞれユーザ認証が必要です。 しかし、転送元サーバと転送先サーバのどちらにも同じ公開鍵が登録されており、 転送元サーバへのログイン時にその公開鍵を使ったユーザ認証を行った場合、 SSHのエージェントフォワーディングという機能を使うことで、 転送先へのファイル転送時のユーザ認証を省略できるようになります。

ファイル転送は、転送するファイルを確認しながら何度も操作することになるので、 作業の効率化のため、このエージェントフォワーディング機能の利用を推奨します。

Windowsでのエージェントフォワーディング

Windowsから転送元へのログインには、MobaXtermの利用を推奨します。 これは、一度設定したエージェントフォワーディングの情報を保存して次回以降再利用する機能を有しているためです。 TeraTermや PuTTYでも、Pageantというツールを併用することでエージェントフォワーディング機能を利用できますが、 多少設定が煩雑です。 TeraTerm、PuTTYでのエージェントフォワーディングの利用方法については、それぞれ以下を参照してください。

MobaXtermでは、以下の手順で認証に利用する秘密鍵を登録します。

  1. MobaXtermを起動。
  2. "Settings" -> "SSH" -> "SSH agents"の中の Use internal SSH agent MobAgent をチェック。
  3. 右側の “+” をクリックし、利用する秘密鍵を選択して “OK”。
  4. MobaXtermが再起動するので、秘密鍵に対するパスフレーズを入力。 これ以降、MobaXtermを起動するためにパスフレーズの入力を求められます。

その後、MobaXtermで以下のように転送元サーバの情報を登録します。

  1. “Session” -> “SSH” をクリックし、“Remote Host” に転送元サーバの IPアドレスを入力。
  2. Specify usernameの左のボックスをチェックし、右のボックスにユーザ名を入力する。 (さらに、MobaXterm v22.2以降を使われている場合は、"Advanced SSH settings"をクリック後 "Expert SSH setting"をクリックし、"Allow agent forwarding"にチェックを入れて OKをクリック。)
  3. "OK"をクリックすると、転送元サーバにログインできます。 これ以降、MobaXtermの Sessions(星形のアイコン)をクリックして転送元サーバをクリックするだけで、 エージェントフォワーディング機能が有効になった状態でログインできるようになります。

MacOSでのエージェントフォワーディング

MacOSでは、まず以下の手順で認証に利用する秘密鍵を登録します。

$ ssh-add -K 秘密鍵のパス

登録した鍵の情報は以下で確認できます。

$ ssh-add -l

その後、以下のように -Aオプションを付けて転送元サーバにログインします。

$ ssh -A ITOのユーザ名@転送元サーバのIPアドレス

Linuxでのエージェントフォワーディング

Linuxでは、まず以下の手順で ssh-agentを起動します。

$ eval $(ssh-agent)

その後、以下の手順で ssh-agentに鍵を登録します。

$ ssh-add 秘密鍵のパス

登録した鍵の情報は以下で確認できます。

$ ssh-add -L

以下のように -Aオプションを付けて転送元サーバにログインします。

$ ssh -A ITOのユーザ名@転送元サーバのIPアドレス

ファイル転送

rsyncコマンド

ITOから玄界へのファイル転送にはrsyncコマンドの利用を推奨します。 途中でファイル転送を停止した場合、rsyncコマンドであれば、 再度同じコマンドでファイル転送を開始すると、 停止したところから再開することができます。 一方、scpコマンドでもITOから玄界にファイルを転送できますが、 転送を停止すると、再度最初から転送しなおす必要があります。

rsyncコマンドの基本的な使い方は以下の通りです。

$ rsync -avh -e ssh 転送元ディレクトリ 玄界のユーザ名@転送先サーバのIPアドレス:転送先ディレクトリ

rsyncコマンドの主なオプションは以下の通りです。

オプション 意味
-a 転送元の権限やタイムスタンプなどの情報を保持したまま転送する。
-v 転送の経過を表示する。
-h 数字を読みやすい単位で表示する。
-z 各ファイルを圧縮して転送した後、自動解凍する。ソースプログラム等のテキストファイルでは、転送時間の大幅な短縮が期待できる。一方バイナリファイルでは転送時間が長くなる。

以下に実行例を示します。 この例では、転送元サーバ 133.5.4.244 (ncm0154) の現在のディレクトリにある ./test というディレクトリを、 ku9999999というユーザとして転送先サーバ 172.31.1.1のホームディレクトリに転送します。

[xxxxxx@ncm0154 ~]$ rsync -avh -e ssh ./test ku9999999@172.31.1.1:./

この場合、玄界のホームディレクトリに testというディレクトリが作成され、 その中に ITOの test ディレクトリ内のファイルやディレクトリが転送されます。

一方、以下のように転送元ディレクトリの末尾に / を付けた場合、 玄界側にtestディレクトリが作成されず、 ITOの testディレクトリ内のファイルやディレクトリがホームディレクトリの下に直接転送されるので、注意してください。

[xxxxxx@ncm0154 ~]$ rsync -avh -e ssh ./test/ ku9999999@172.31.16.41:./

rsyncコマンドの利用法については、以下のようなWebサイトも参照してください。


ファイル転送時の注意点

ファイルの容量が大きい場合や、ファイルの数が多い場合、ファイル転送には長い時間を要します。 また、転送元や転送先のディレクトリの指定を間違えると転送先のファイルを誤って上書きしてしまう場合もあります。 ファイル転送における注意事項や推奨事項を以下にまとめました。

  • 最初にファイル数や合計容量が少ないディレクトリで何度かファイル転送を試して、正しく転送されることや、転送に要する時間などを確認する。
  • 時間を節約するため不要なファイルは転送しない。ただし、ITO側のファイルを削除すると復元できないので、ITO側のファイルを不用意に削除しないよう注意する。
  • 大量のファイルが含まれるディレクトリを転送する場合、 一度 zip形式や tar+gz形式で一つのファイルにまとめて転送した方が時間を短縮できる可能性がある。
  • ディレクトリ内のファイルのほとんどがソースプログラムなどのテキストファイルである場合、rsync-zオプションを付けた方が時間を短縮できる可能性がある。
  • 玄界のホームディレクトリに、例えばfromitoのようなディレクトリを一時的に作成し、 rsyncの転送先としてそのディレクトリ内を指定すれば、玄界で新たに作成したファイルをファイル転送で誤って上書きする可能性が低くなる。
  • ITOの/homeディレクトリ内のファイル使用量の合計はグループ単位で以下のコマンドにより確認できる。ITOで複数のグループに所属している場合、それぞれのグループについて確認する。(例えば下記の例の場合、このグループの使用量の合計は9200609276KBである。)
    $ lfs quota -g グループ名 /home
    Disk quotas for group グループ名:
        Filesystem  kbytes   quota   limit   grace   files   quota   limit   grace
             /home 9200690276  107374182400 107374182400       - 22958385  80000000 100000000       
    
  • ディレクトリの合計容量とファイル数はそれぞれ以下のコマンドで調べることができる。 しかし、ファイル数が多い場合、ファイルシステムに大きな負担がかかり、 全ての利用者のファイル転送速度に影響をかけるので、確認は必要最小限にすること。
    $ du -sk ディレクトリ
    
    $ find ディレクトリ -type f | wc -l