새 파일을 다운로드하기 전에 lftp를 사용하여 오래된 파일을 삭제하는 방법은 무엇입니까?

새 파일을 다운로드하기 전에 lftp를 사용하여 오래된 파일을 삭제하는 방법은 무엇입니까?

Raspbian에서 lftp를 실행 중입니다.

원격 사이트에 100GB의 콘텐츠가 있고 내 SD 카드에 100GB의 여유 공간이 있으므로 새 콘텐츠를 다운로드하기 전에 원격 사이트에 없는 파일을 SD 카드에서 삭제해야 합니다.

이 목표를 어떻게 달성할 수 있나요?

#!/bin/bash
login="username"
pass="password"
host="server.feralhosting.com"
remote_dir="/folder/you/want/to/copy"
local_dir="/cygdrive/s/lftp/somefolder/where/you.want/your/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 1
else
  touch "$lock_file"
  lftp -u $login,$pass $host << EOF
  set ftp:ssl-allow no
  set mirror:use-pget-n 5
  mirror -c -P5 --log='/var/log/'"$base_name"'.log' "$remote_dir" "$local_dir"
  quit
EOF
  rm -f "$lock_file"
  trap - SIGINT SIGTERM
  exit 0
fi

답변1

해결책을 찾았습니다.

--delete-first 옵션을 추가하여 다음을 수행하십시오.

mirror -c -P5 --log='/var/log/'"$base_name"'.log' "$remote_dir" "$local_dir"

다음과 같이 됩니다:

mirror -c -P5 --delete-first --log='/home/osmc/'"$base_name"'.log' "$remote_dir" "$local_dir"

관련 정보