Essa pergunta é muito antiga, mas eu ainda queria adicionar minha única solução bash, pois estava procurando por uma quando cheguei aqui. O tar do grep no comando listar é apenas para meu próprio propósito listar apenas arquivos tar, pode ser adaptado, é claro.
RESULT='echo "ls -t path/to/old_backups/" | sftp -i ~/.ssh/your_ssh_key [email protected] | grep tar'
i=0
max=7
while read -r line; do
(( i++ ))
if (( i > max )); then
echo "DELETE $i...$line"
echo "rm $line" | sftp -i ~/.ssh/your_ssh_key [email protected]
fi
done <<< "$RESULT"
Isso exclui todos os arquivos tar no diretório fornecido, exceto os últimos 7. Não está considerando a data, mas se você tiver apenas um backup por dia, é bom o suficiente.