実現したいこと。
SFTPによりサーバーからファイルを取得する。
また、実行時はSSH認証からファイル取得まで自動実行する。
制限事項 条件 仕様
クライアント:Linux
サーバー:Linux
ファイル取得方法:SFTP
SSH認証方法:共通鍵認証
ファイル取得時の検索条件:testのファイル名を持つtxtファイル
[仕様]
1 SFTP/GET コマンド実行前にサーバー側のファイルのサイズを確認する。 ※複数ファイル可能性あり
2 SFTP/GET コマンド実行後にGETしたクライアント側のファイルのサイズを確認する。 ※複数ファイル可能性あり
3 上記1 上記2のサイズを比較し異なる場合はエラーとし、クライアントのファイルを削除する。
比較が一致する場合はサーバー側のファイルをリネームし次回実行時に取得対象とならないようにする。
4 SFTP/QUIT を実行する
今私が考えている実現方法とソース例
シェルスクリプトで実現したいと考えています。
以下にソース例を貼り付けさせていただきます。
※上記仕様の部分以外のソース例とさせていただいております。
#!/bin/bash #実現性の確認 echo "SFTP start" # SFTP接続 sftp -i /Users/username/.ssh/id_rsa username@aa.bb.cc.dd << END cd sftp get test*.txt quit END echo "SFTP end" exit
※Javaでの実現は可能であることはわかったのですがpureJavaでの実装が難易度が高いので
それならシェルスクリプトでできないか検討しています。
困っていること
●SFTP/GET実行前後におけるファイルサイズ取得方法がわからない
SFTP/LS コマンドは準備されているのでファイルサイズを標準出力することは可能ですが
その結果をクライアント側で取得する方法がわかりません。
SFTP/QUITした後にログかなんかに出力されたファイルサイズを取ってきて比較する方法しか
ありませんでしょうか。
できれば、QUITする前に比較したいなと思っています。
以上です。どうか知恵をください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。