GNU/Linux >> Linux の 問題 >  >> Linux

expect ユーティリティを使用して sftp ファイル転送を自動化する方法

ユーザーがパスワードを求められることなく、sftp を使用してファイルを転送するために、いつでもパスワードなしの ssh を構成できます。ただし、パスワードなしの ssh の構成が許可されていない場合は、sftp ファイル転送を自動化する方法があります。 「expect」を使用して達成できます ‘ Tcl シェルによって提供されるコマンド。

expect ユーティリティを機能させるには、「expect」パッケージをインストールする必要があります。これを行うには、以下のコマンドを使用します:

# yum install expect

以下は、バッチ ファイルを使用してリモート アクセスを自動化するスクリプトの例です。

#!/bin/bash

if (( $# < 3 )); then
    echo "Usage: $0 [remote addr] [password] [batch file]"
    echo
    echo -e "tremote addr : [loginid]:[host addr]n"
    exit
fi

REMOTE=$1
PASS=$2
BATCH=$3
expect -c "
spawn sftp -o "batchmode no" -b "$BATCH" $REMOTE
expect -nocase "password:" {send "$PASSr"; interact}
"

ここで、

spawn - to initiate the sftp process
expect - it expects a particular string ( here it is "password:" prompt )
send - sends the password when the expect utility gets the required prompt.

パスワード「password」を使用して root としてログインした後、remote.example.com の testjob.bat のコマンドを実行するスクリプトを実行する方法の例を次に示します。

# bash ./test.sh [email protected] password testjob.bat


Linux
  1. ddを使用してFFでファイルをパディングする方法は?

  2. パイプを使用してvimでファイルを開く方法

  3. SFTP サーバーが使用しているエンコーディングを変更するにはどうすればよいですか?

  1. Linuxでパスワードで保護されたZIPファイルを作成する方法

  2. 安全なファイル転送のためにFileZillaを使用してSFTPに接続する方法

  3. rm を使わずにファイルを削除するには?

  1. KaliLinuxでzipパスワードを解読する方法

  2. Linuxでスワップファイルを使用してスワップスペースを拡張する方法

  3. コマンドを使用してPPKをPEMファイルに変換する方法