はじめに
SFTPサーバに接続してファイルのアップロードやダウンロードを行う際に、これさえ知っていれば迷わずsftpコマンドが使えるようになる情報をまとめました。
本記事はLinuxのクライアントからSFTPサーバに接続するという状況を想定しています。
SFTPサーバに接続する
基本構文
$ sftp SFTPサーバのアカウント@SFTPサーバのIPまたはホスト名
鍵認証で接続する(-iオプション)
-i 秘密鍵ファイル
デフォルトポート以外で接続する(-Pオプション)
-P ポート番号
実践例
以下の場合にSFTPサーバに接続すると想定した場合
SFTPサーバのIPアドレス | 192.168.1.1 |
SFTPサーバのユーザ | hoge |
秘密鍵ファイル | /tmp/key |
SFTPサーバのポート番号 | 2222 |
$ sftp -i /tmp/key -P 2222 hoge@192.168.1.1
必ず覚えるべきSFTPサーバで使えるコマンド
ここからはSFTPサーバに接続後に使えるsftpのコマンドを紹介します。どれも頻繁に使うものですので、必ず覚えておくべきです!!
cd:接続先SFTPサーバのカレントディレクトリを変更する
sftp> cd 接続先SFTPサーバのディレクトリ
Linuxのコマンドと同じcdでカレントディレクトリを変更できます。しかし、ここで変わっているのはSFTPサーバのディレクトリです。
lcd:接続元クライアントのカレントディレクトリを変更する
sftp> lcd 接続元クライアントのディレクトリ
cdの前につく「l 」はローカル(local)の意味で、接続元クライアントを意味します。lcdで接続元クライアントのカレントディレクトリを変更できます。
pwd:接続先SFTPサーバのカレントディレクトリを表示する
sftp> pwd
接続先SFTPサーバのカレントディレクトリを表示
これもLinuxのコマンドと同じpwdです。これも、ここで表示しているのはSFTPサーバのカレントディレクトリであることに注意してください。
lpwd:接続元クライアントのカレントディレクトリを表示する
sftp> lpwd
接続元クライアントのカレントディレクトリを表示
これも「l 」がついているので接続元クライアントを意味します。普段のLinuxで使うpwdと同じです。混乱しないでくださいね。
ls:接続先SFTPサーバのカレントディレクトリにあるファイルを表示する
sftp> ls
接続先SFTPサーバのカレントディレクトリにあるファイルを表示
これもLinuxのコマンドと同じlsですが、SFTPサーバのカレントディレクトリにあるファイルを表示します。
Linuxのコマンドと同様に、lsの後ろにファイル名を指定したり、その際に*(アスタリスク)等のワイルドカードを使用することもできます。
get:接続先SFTPサーバからファイルをダウンロードする
このためにSFTPサーバに接続しているわけですので、最重要です。
接続先SFTPサーバのファイルを接続元クライアントのカレントディレクトリにコピーします。*(アスタリスク)等のワイルドカード(メタキャラクタ)を使用して複数ファイルをダウンロードすることも可能です。
接続先SFTPサーバのカレントディレクトリにあるファイルすべてを接続元クライアントのカレントディレクトリにコピーする場合は以下のコマンドです。
ftp> get *
put:接続元クライアントのファイルをSFTPサーバにアップロードする
getの逆です。これもSFTPサーバに接続している目的なので、最重要です。
接続元クライアントのファイルをSFTPサーバのカレントディレクトリにコピーします。*(アスタリスク)等のワイルドカード(メタキャラクタ)を使用して複数ファイルをアップロードすることも可能です。
接続元クライアントのカレントディレクトリにあるファイルすべてを接続先SFTPサーバのカレントディレクトリにコピーする場合は以下のコマンドです。
ftp> put *
exit:接続先SFTPサーバからログアウト(切断)する
sftp> exit
作業が終わったらexitでログアウトしましょう。
おわりに
sftpってそんなに頻繁に使わない印象があります(職種に依る?)。だからこそ、ファイル上書きなどが発生する可能性があって結構怖いということは覚えておいたほうがいいです。
Linuxをもっと使えるようになるには
実践あるのみ!ですが、一度体系的にLinuxを学習するとより深く理解することができますし、いろいろなコマンドを知っていると応用が効くようになります。
以下の書籍がおすすめです。
コメント