Script para excluir dados de FTP com mais de 7 dias

1

Atualmente estou usando o seguinte script de linha simples para fazer backup do diretório do servidor para o local de FTP remoto

# Take backup to remote location
ncftpput -z -R -uusername -ppassword ftp.example.org /destination/directory /source/directory

Agora, só preciso excluir o backup do FTP remoto, que tem mais de 7 dias. No local normal do diretório dentro do servidor, eu simplesmente faço isso com o seguinte script simples

# Delete backups older than 7 days
find /backup -name '*' -type d -mtime +6 -exec rm -rfv "{}" \;

Mas, a execução do mesmo não está funcionando no FTP. Existe alguma maneira de excluir dados de localização remota do FTP com mais de 7 dias? pode ser via lftp ou qualquer outro comando

    
por Farmi 08.11.2016 / 14:37

2 respostas

3

Existe um sistema de arquivos FUSE chamado curlftpfs que permite montar o site FTP como se fosse um sistema de arquivos normal, permitindo que você execute o comando find para excluir arquivos com mais de 7 dias. Primeiro instale o pacote executando apt-get install curlftpfs , yum install curlftpfs ou o equivalente para sua distribuição.

Uma vez instalado, você pode montar o site ftp remoto assim:

mkdir /tmp/ftp_mount
curlftpfs -o user=username:password ftp.example.org /tmp/ftp_mount

onde nome de usuário e senha são substituídos pelo seu nome de usuário e senha. Agora, basta fazer o cd em / tmp / ftp_mount e executar o comando find para excluir os arquivos mais antigos. Quando estiver pronto, saia do sistema de arquivos e desmonte-o com:

fusermount -u /tmp/ftp_mount

Como o curlftpfs é um sistema de arquivos FUSE, você pode fazer isso como qualquer usuário (você não precisa do root para funcionar).

    
por 12.11.2016 / 15:50
0

Parece que não há uma maneira fácil de fazer o que você deseja usando apenas o acesso ao FTP. Aqui estão algumas ideias que podem ser úteis:

  • Organize / renomeie seus diretórios por data, se aplicável. Assim, você saberá o nome do diretório para excluir.
  • Mantenha uma cópia exata dos mesmos diretórios / arquivos em sua máquina local. Aplicar encontrar na máquina local para obter lista de arquivos para excluir e depois iterar sobre todos os arquivos para excluí-los via FTP.
  • Repita a estrutura do diretório para encontrar o horário da modificação e decidir se deseja excluir esse arquivo / pasta ou não.
por 08.11.2016 / 15:09