0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacとLinuxサーバー間のCUIファイル転送完全ガイド

Posted at

本記事では scp, sftp, lftp, rsync の比較と使い方を扱います

リモートサーバーとのファイルのやり取りは、SSH経由の転送が最も安全で汎用的。
ここではMacをローカル、Linuxをリモートと想定して、代表的な3つのコマンドラインツールを紹介する。


1. 準備:SSH接続確認

どの方法でも前提としてSSH接続が必要。

ssh user@remote.server.jp

初回は指紋確認などのユーザ認証が出る。接続が通ることを確認してから次の手順へ。


2. scp:最もシンプルなファイル転送コマンド

概要

scpsecure copy の略。
ローカル・リモート間でファイルやディレクトリを1行でコピーできる。

使い方

リモート → ローカル

scp user@remote.server.jp:/path/to/file.txt ./

ローカル → リモート

scp ./data.txt user@remote.server.jp:/path/to/

ディレクトリごと転送

scp -r ./local_dir user@remote.server.jp:/home/user/

特徴

✅ シンプル
✅ Bashのタブ補完が効く
⚠️ ファイル一覧や再開機能はなし

使う場面

単発の転送に最適。


3. sftp:安全なファイル操作・対話モード対応

概要

SFTP (Secure File Transfer Protocol) はSSHトンネル上で動くFTP風インターフェース。

起動

sftp user@remote.server.jp

Password: が出たらSSHと同じ認証でログイン。

よく使うコマンド

コマンド 内容
ls リモート側一覧表示
cd リモートディレクトリ移動
get file ダウンロード
put file アップロード
mget *.fastq.gz 複数DL
mput *.txt 複数UL
lcd ローカル側移動
exit または bye 終了

一行でファイル取得

sftp user@remote.server.jp:/remote/path/file.txt ./local_dir/

バッチ転送例

sftp user@remote.server.jp <<EOF
cd /remote/data
mget *.csv
bye
EOF

特徴

✅ SSHベースで安全
✅ 対話的操作・スクリプト両対応
⚠️ 標準ではタブ補完が効かない


4. lftp:最も高機能なCLIクライアント(ファイル名のタブ補完対応)

概要

lftpftp, sftp, http, fish など多様なプロトコルに対応した高機能ツール。
Macには標準で入っていないが、Homebrew経由で簡単に導入できる。

導入(Mac)

brew install lftp

接続

lftp -u user sftp://remote.server.jp

または

lftp sftp://user@remote.server.jp

ログイン後、通常のシェルのように操作可能。ファイル名のタブ補完が使える

主なコマンド

コマンド 内容
ls ファイル一覧
cd / lcd ディレクトリ移動
mirror ディレクトリ丸ごと転送
get / put 単一ファイル転送
pget 中断→再開できるダウンロード
jobs 並行タスク表示
exit 終了

例:リモートからディレクトリを丸ごと同期

mirror --parallel=4 /remote/path ./local_path

逆方向(ローカル→リモート)は mirror -R

mirror -R ./local_path /remote/path

特徴

✅ ファイル名のタブ補完あり
✅ 並列転送・レジューム可
✅ 設定保存や自動再接続も可
⚠️ Homebrewで導入が必要


5. rsync:差分コピーと再開が可能な高機能転送

概要

rsync は SSH 経由でファイルを転送できる高機能コマンド。
scp のように単純コピーするだけでなく、差分転送転送再開同期ミラーリングなどに対応している。

使い方

リモート → ローカル

rsync -avz -e ssh user@remote.server.jp:/remote/path/ ./local_dir/

ローカル → リモート

rsync -avz -e ssh ./local_dir/ user@remote.server.jp:/remote/path/

主なオプション

オプション 意味
-a アーカイブモード(属性維持・再帰的コピー)
-v 詳細表示
-z 転送時に圧縮
-e ssh SSH 経由で通信
--progress 転送進捗を表示
--delete リモートに存在しないファイルを削除(同期時)

特徴

✅ 差分転送(変更部分のみ再送)
✅ 転送再開(中断後の続きから)
✅ 同期・バックアップに最適
⚠️ 初回転送はやや遅め(差分データ構築のため)


6. 各ツールの比較まとめ

ツール 導入 補完 再開機能 スクリプト化 適した用途
scp 不要 単発コピー
sftp 不要 安全な転送・自動処理
lftp brew install lftp ✅(ファイル名補完) 大量データ・再送ありの転送
rsync 不要 差分同期・バックアップ

7. まとめ

  • 軽量・簡単にコピーscp
  • 対話・スクリプト両対応、安全性重視sftp
  • ファイル名補完・再開・ミラーリングが必要lftp
  • 差分転送やバックアップが必要rsync
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?