7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SFTPコマンドをシェルファイルから使うサンプル

Posted at

はじめに

SFTPコマンドを使うとサーバーとファイルのアップロードやダウンロードを行うことができます。
対話式に使うことができるので簡単で便利なのですが、定型的な処理を自動で行いたいこともあります。
この記事ではSFTPを使って、自動で処理を行う方法をお伝えします。

概要

シェルファイルからSFTPを呼び出してサーバーとファイルのアップロードやダウンロードを自動で行うサンプルを紹介します。

対象者

  • macでターミナルを使っている
  • ターミナルでファイルの操作が行える
  • テキストエディタを使える
  • シェルはzsh(最近のmacはデフォルトでzsh:2022年時点)

関連記事

目次

サンプル

sftpへの接続は鍵認証で行う想定です。

  • mac側のホームディレクトリに本日の日付のディレクトリを作る
  • 作ったディレクトリに移動する
  • サーバー側でも、本日の日付のディレクトリに移動する
  • サーバー側のそのディレクトリにあるファイルをダウンロードする

sftp_sample.sh

#!/bin/zsh

# 今日の日付を取得する
today=`date "+%Y%m%d"`

sftp -i 鍵ファイル 接続ユーザー@接続先サーバー << EOF

# mac側:ホームディレクトリへ移動
lcd

# mac側:今日の日付のディレクトリを作る
lmkdir $today

# mac側:今日の日付ディレクトリへ移動
lcd $today

# サーバー側:今日の日付のディレクトリへ移動
cd $today

# サーバーからmacへファイルをダウンロードする
get *

# 終わり
EOF

実行

source sftp_sample.sh

補足説明

sftpコマンドの行末の「<< EOF」はヒアドキュメントと呼ばれるものです。
「<< EOF」からファイル最後の「EOF」までの各行をsftpのコマンドとして送り込みます。
ヒアドキュメントは、シェルの便利な書き方の一つです。

7
3
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
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?