Como apagar arquivos em um servidor não suporta SSH. Somente sFTP

1

Então eu posso fazer isso: sftp user @ server

Estes são os arquivos link

Eu preciso excluir arquivos com mais de 60 dias.

Qualquer maneira de automatizar isso?

O comando

find não funciona. excluir por curinga não funciona.

O rsync é suportado. Como isso é feito com o rsync?

    
por kgpdeveloper 20.05.2010 / 08:11

3 respostas

2

Como uma alternativa às melhores opções acima, você pode criar scripts (usando lftp ou algo do tipo) para excluir todos os arquivos usando um caractere curinga e uma subposição local de data.

É muito feio mas funciona:

para i em 60 999; Faz lftp sftp: // usuário @ host -c "rm / caminho / para / site_produção _ $ (data -d" $ i dias atrás "+% m-% d-% Y) *" feito

Você pode querer configurá-lo para não precisar digitar a senha.

    
por 02.07.2010 / 07:01
0

Monte a pasta sftp no seu sistema, se você estiver usando o OS X, você pode usar Transmit para fazer isso ou Linux (Ubuntu, neste caso), você pode usar este guia link .

Todos usam o FuSE, então eu aposto que também funciona no Windows também, se você procurar. Mas depois de montá-lo, você poderá usar todos os comandos que puder no seu sistema.

    
por 20.05.2010 / 09:02
0

O Rsync protege a data de criação. Então você pode rsync todos os arquivos para o seu computador. Em seguida, execute find para selecionar arquivos com mais de 60 dias e excluí-los. E envie-os de volta via rsync. Ou apenas exclua-os no destino.

EDITAR

Resultado do teste do rsync nos diretórios locais:

rsync -av input/ tmp/
find tmp/* -mtime +10 -exec rm {} \;
rsync --delete -av tmp/ input

Depois disso, o diretório ./input/ é retirado dos arquivos modificados há mais de 10 dias. Isso deve ser appliable no diretório remoto via SFTP.

    
por 20.05.2010 / 08:35

Tags