SFTPによる最後のディレクトリの抽出

SFTPによる最後のディレクトリの抽出

SFTP経由でサーバーに接続できるスクリプトがあります。私が望むのは、ディレクトリに移動して、すべてのサブフォルダとファイルで生成された最後のディレクトリをインポートすることです。ここに例として示したディレクトリは間違っています。私が間違っているのですか?ファイルを入れずにすべてのフォルダを抽出するのですか?非常にありがとう

#!/bin/bash 
HOST=192.168.1.133 
PORT=22 
USER=root 
PASSWORD=password 
SOURCE_FILE=/root/logs 
DIA=`date +"%d/%m/%Y"` 
HORA=`date +"%H:%M"` 
TIME=`$DAY+$HOUR` 
TARGET_DIR="ls -td -- */ | head -n 1" 
/usr/bin/expect<<EOD > output.log 
spawn /usr/bin/sftp -o Port=$PORT $USER@$HOST 
expect "password:" 
send "$PASSWORD\r" 
expect "sftp>" 
send "get -r $SOURCE_FILE $TIME $TARGET_DIR\r" 
expect "sftp>" 
send "bye\r" 
EOD 
RC=$? 
if [[ ${RC} -ne 0 ]]; then   
   cat output.log | mail
-s "Errors Received" "[email protected]" 
else   
    echo "Success" | mail -s "Transfer Successful" "[email protected]" 
fi

ベストアンサー1

問題を解決しました。こうなりました。もし必要な方がいらっしゃるなら安否お伝えします。

#!/bin/bash

HOST=192.168.1.123

PORT=3355

USER=lab

PASSWORD=demo

DIR=$(date +"%Y-%m-%d")

 

/usr/bin/expect<<EOD > output.log

spawn /usr/bin/sftp -o Port=$PORT $USER@$HOST

expect "password:"

send "$PASSWORD\r"

expect "sftp>"

send "cd logs\r"

expect "sftp>"

send "mget -r $DIR\r"

expect "sftp>"

send "bye\r"

EOD

RC=$?

 

#if [[ ${RC} -ne 0 ]]; then

#  cat output.log | mail -s "Errors Received" [email protected]

#else

#  echo "Success" | mail -s "Transfer Successful" [email protected]

#fi

おすすめ記事