Как перенести каталог по SFTP, если он содержит определенный файл - PullRequest
0 голосов
/ 07 марта 2019

Я просматриваю каталог с такой структурой

/

/.sftp (for certificate, thus the password in my script is blank)

/Test folder

/Test folder/.xferComplete (file that is automatically uploaded when the transfer of the main file is complete)

/Test folder/Some content (can be jpg or anything)

Это мой код:

#!/usr/bin/env bash
while true; do
checkfile=$(lftp -c "open -u USERNAME,blank URLofSFTP -e 'set ftp:list-options -a'; find -d 3 / | grep .xferComplete")
if [[ $checkfile == *"/.xferComplete"* ]]
then
lftp -u USERNAME,blank URLofSFTP << EOF
mirror --Move -O /$HOME/Documents
EOF
else
echo "Nothing to transfer"
fi
sleep 1
done

Я хочу получить содержимое тестовой папки, создать локальный каталогс тем же именем и передайте содержимое, затем удалите папку на SFTP.

Однако при скрытом файле .xferComplete папка не удаляется с зеркалом - Переместить, поскольку она не пуста.

Однако, если я использую set list-options -a перед зеркалом, он удаляет папку успешно, однако он также берет папку .sftp, которая содержит открытый ключ для аутентификации без пароля.

Другой потенциалпроблема заключается в нескольких загрузках.то есть, если два человека загружают одновременно, сценарий увидит .xferComplete человека # 1 и попытается также отразить папку человека # 2, даже если они могут не завершить загрузку

...