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

관련 정보