следующее сохраняется к/usr/local/bin chmod 700 и выполняло crom/etc/crontab каждые 2 часа в 37-минутной метке.
#!/bin/bash
login="username"
pass="*****"
host="seedboxURL"
remote_dir='~/folder/I/want/to/copy'
local_dir="/media/driveNAME/files"
base_name="$(basename "$0")"
lock_file="/tmp/$base_name.lock"
trap "rm -f $lock_file" SIGINT SIGTERM
if [ -e "$lock_file" ]
then
echo "$base_name is running already."
exit
else
touch "$lock_file"
lftp -u $login,$pass $host << EOF
set ftp:ssl-allow no
set mirror:use-pget-n 10
mirror -c -P10 --only-missing --log="/var/log/$base_name.log" "$remote_dir" "$local_dir"
quit
EOF
rm -f "$lock_file"
trap - SIGINT SIGTERM
exit
fi
это копирует файлы/папки с завершенной папки потока. иногда я буду заканчивать с частичным локальным файлом, который я предполагаю, была пойманная середина передачи от папки загрузки для завершения папки. мой вопрос состоит в том, как я могу осуществить lftp проверку, что локальный файл меньше и REpull/mirror, если это так?