Я пытаюсь переместить файлы из одного каталога в другой каталог на удаленном SFTP-сервере через сценарий оболочки после локальной загрузки файлов.Я понимаю, что нет функции подстановки файлов перемещения, поэтому мне кажется, что я могу переименовать файлы по отдельности.
Может кто-нибудь помочь мне с кодом ниже, если есть лучший способ написания этого кода.
Все, что я пытаюсь сделать, это переместить файлы в архивную папку на SFTP-сервере, как только файлы будут загружены в мой локальный каталог.
Я знаю, что есть другие способы сделать это с помощью python /Perl-скрипты, но я ограничен в использовании сценариев Shell на Linux.
#!/usr/bin/ksh
#LOGGING
LOGFILE="/tmp/test.log"
#SFTP INFO
FTP_SERVER="test.rebex.net"
FTP_USER="demo"
FTP_PWD="password"
FTP_PORT=22
FTP_PICKUP_DIR="/"
LOCAL_DIR="/"
#-------DOWNLOAD FILES
expect <<END #> $LOGFILE
send "$(date)\r";
spawn sftp $FTP_USER@$FTP_SERVER
expect "*password: "
send "$FTP_PWD\r";
expect "sftp> "
send "mget *.ext\r"
expect "sftp>"
send "exit\r"
END
#--------- MOVE FILES TO ARCHIVE ON SERVER
cd /home/ravi/Files
for fl in *.ext
do
expect <<END #> $LOGFILE
send "$(date)\r";
spawn sftp $FTP_USER@$FTP_SERVER
expect "*password: "
send "$FTP_PWD\r";
expect "sftp> "
send "rename $fl /ARCHIVE/$fl\r"
expect "sftp>"
send "exit\r"
END
done
#For Loop End