Я хочу автоматизировать процесс SFTP, чтобы передать последний файл, созданный на локальном сервере, и отправить его на удаленный сервер.
На локальном сервере у меня есть "/ Source / Path /" У меня есть файлы с именами, как показано ниже:
Logfile_2019-04-24
Logfile_2019-04-24_old.txt
Это мой текущий скрипт:
dyear=`date +'%Y' -d "1 day ago"`
dmonth=`date +'%b' -d "1 day ago"`
ddate=`date +%Y-%m-%d -d "1 day ago"`
HOST='192.168.X.X'
USER='user'
PASSWD='password'
localpath='/Source/Path/'$dyear'/'$dmonth'/'*$ddate*'.txt'
remotepath='/Destination/Path/'$dyear'/'$dmonth'/'
echo $localpath
echo $remotepath
export SSHPASS=$PASSWD
sshpass -e sftp $USER@$HOST << EOF
put '$localpath' '$remotepath'
EOF
Когда я делаю echo $localpath
, он печатает правильный файл, но в скрипте я получаю эту ошибку:
Connecting to 192.168.X.X...
sftp> put '/Source/Path/2019/Apr/*2019-04-24*' '/Destination/Path/2019/Apr/'
stat /Source/Path/2019/Apr/*2019-04-24*: No such file or directory
Как будет правильным регулярным выражением в этой строке pasrt *$ddate*'.txt' in following
:
localpath='/Source/Path/'$dyear'/'$dmonth'/'*$ddate*'.txt'
для передачи файла "Logfile_2019-04-24_old.txt"?
Заранее спасибо