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
Tags rm vps shell-script