ファイル転送を行う

スーパーコンピューティングシステムとPCとの間でファイル転送を行います。 スパコンシステムにログインする が完了していることを前提とします。

sftpによるファイル転送

Windowsでは「コマンドプロンプト」、macOSおよびLinuxでは「ターミナル」から sftp コマンドを使用してファイルを転送します。

$ sftp super.sc.imr.tohoku.ac.jp
Enter passphrase for key ‘/home/pc-user/.ssh/keys/id_rsa’:
sc-user@super.sc.imr.tohoku.ac.jp's password:
Connected to super.sc.imr.tohoku.ac.jp.
sftp>

特に指定のない限り、リモートのディレクトリはユーザーのホームディレクトリとなります。

基本的なコマンドを説明します。

コマンド

機能

ls [ディレクトリ名]

リモート(接続先)のディレクトリの内容を表示します。

cd [ディレクトリ名]

リモートのカレントディレクトリを変更します。

lls [ディレクトリ名]

ローカル(接続元)のディレクトリの内容を表示します。

lcd [ディレクトリ名]

ローカルのカレントディレクトリを変更します。

put [ファイル名]

ローカルのファイルをリモートのカレントディレクトリに転送します。

put -r [ディレクトリ名]

ローカルのディレクトリをリモートのカレントディレクトリに転送します。

get [ファイル名]

リモートのファイルをローカルのカレントディレクトリに転送します。

get -r [ディレクトリ名]

リモートのディレクトリをローカルのカレントディレクトリに転送します。

help

sftpの使用方法を表示します。

exit

接続を終了します。

注意

putおよびgetコマンドでファイルを転送する際、転送先に同名のファイルが存在する場合は上書きされます。

以下にいくつかの使用例を示します。

  • ローカルのカレントディレクトリに存在する test.txt という名前のファイルをリモートに転送する

sftp> put test.txt
Uploading test.txt to /home/sc-user/test.txt
test.txt                                        100%   16     0.8KB/s   00:00
sftp>
  • リモートのカレントディレクトリに存在する test という名前のディレクトリをローカルにコピーする

sftp> get -r test
Fetching /home/sc-user/test/ to test
Retrieving /home/sc-user/test
/home/sc-user/test/test1.txt                    100% 1855    39.0KB/s   00:00
/home/sc-user/test/test2.txt                     100%  354     6.3KB/s   00:00
sftp>

rsyncによるファイル転送

WindowsではWindows Subsystem for Linux(WSL)、macOSおよびLinuxでは「ターミナル」から rsync コマンドを使用してファイルを転送します。

  • スパコン上のファイルをPCにダウンロードする例

$ rsync -auvHAS --stats sc-user@super.sc.imr.tohoku.ac.jp:/home/sc-user/source_directory /destination_directory
Enter passphrase for key ‘/home/pc-user/.ssh/keys/id_rsa’: your_ssh_passphrase
password: your_password
receiving incremental file list
...
  • PC上のファイルをスパコンにアップロードする例

$ rsync -auvHAS --stats /source_directory sc-user@super.sc.imr.tohoku.ac.jp:/home/sc-user/destination_directory
Enter passphrase for key ‘/home/pc-user/.ssh/keys/id_rsa’: your_ssh_passphrase
password: your_password
sending incremental file list
...

上の例で使用したオプションを説明します。詳細についてはrsyncのマニュアルをご覧ください。

オプション

機能

-a , --archive

属性を維持

-u , --update

更新があるファイルのみ転送

-v , --verbose

動作内容を表示

-H , --hard-links

ハードリンクを保持

-A , --acls

アクセス制御リスト(ACL)を保持

-S , --sparse

スパースファイルを維持

--stats

転送完了後に統計情報(ファイル数や転送サイズ)を表示

参考資料