Exclui o arquivo mais antigo com um script de shell no servidor FTP

1

Eu gostaria de criar uma tarefa cron para excluir o arquivo mais antigo em um diretório que está no servidor FTP. Eu criei meu primeiro script de shell

#!/bin/sh

# connect to backup FTP server...
lftp -u (username),password backup.contabo.net << EOF
cd /backups
ls

EOF

Isso é o que obtenho do link

Eu fiz algumas pesquisas e a seguinte linha funcionou quando eu testei no terminal dentro de uma pasta de teste no VPS (com alguns arquivos .txt recém-criados):

rm "$(ls -t | tail -1)"

... mas quando eu coloco dentro do shell script e quando eu corro com bash testing.sh eu pego

rm: Acesso falhado: 550 index.php: Nenhum arquivo ou diretório desse tipo

Por que o script está tentando excluir index.php? Eu nem vejo dentro da lista de arquivos. Deve eliminar 01December_01_2016_html.tar

EDITAR Ok, eu finalmente consegui excluir o arquivo, mas com a escrita manual do nome do arquivo.

rm /backups/01December_01_2016_html.tar

Então eu estava pensando em primeiro criar uma variável com o nome do arquivo para que eu possa passá-lo para rm /backups/$FILENAME.tar ou similar, eu não fiz isso porque o código a seguir está me dando o erro - Unknown command 'FILENAME="testing.sh" Isso é basicamente a mesma coisa, significa que eu recebo o arquivo mais recente no diretório local e não no diretório FTP (mesmo que o único ls funcionasse bem para recuperar todos os arquivos)

FILENAME="$(ls -t | tail -1)"
echo $FILENAME
    
por Ivan Topić 19.01.2017 / 14:17

0 respostas