SFTPコマンドで、接続先のコマンド実行結果を取得したい

実現したいこと

前提

Linuxで動くシェルスクリプトで、
別サーバーの指定フォルダにファイルが存在するかどうかをチェックする処理を実現したいです。

そのため、
ローカルから指定ホストへSFTP接続し、セッション内(SFTP接続先)で「ls」コマンドを実行し、
その結果をローカル側のテキストに書き込み、ファイルの存在をチェックしようとしています。

しかし、
SFTPセッション内で実行したコマンド結果ではなく、
コマンドそのものをテキストファイルに書き込んでしまいます。

該当のソースコード

sh

1DistDir="home/asp/file" 2FtpHost="asp@something..." 3 4sftpcd="cd '${DistDir}'" 5sftpls="ls -1" 6 7echo -e ${sftpcd}"\n"${sftpls} | sftp -b - ${FtpHost} > sftp_check_result.txt

結果

上記コードを試すと、
sftp_check_result.txtにコマンドが書き込まれています。

どうしても実現できず困っています。
ご教授頂けますと大変助かります。
よろしくお願いします。

コメントを投稿

0 コメント