Я просматриваю каталог с такой структурой
/
/.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, даже если они могут не завершить загрузку