Como usar o lftp para apagar arquivos antigos antes de baixar novos arquivos?

0

Estou executando lftp em Raspbian

Tenho 100 GB de conteúdo no site remoto e 100 GB de espaço disponível no meu cartão SD, por isso preciso excluir os arquivos que não estão presentes no site remoto do cartão SD antes de fazer o download do novo conteúdo.

Como posso conseguir isso?

#!/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
    
por Anthony 19.01.2017 / 09:37

1 resposta

0

Eu encontrei a solução.

Adicione a opção --delete-first, então:

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

torna-se isto:

mirror -c -P5 --delete-first --log='/home/osmc/'"$base_name"'.log' "$remote_dir" "$local_dir"
    
por 28.01.2017 / 22:01

Tags