Localizando o arquivo mais recente
A maneira mais fácil de encontrar o arquivo mais novo em um diretório é usar o zsh e seus qualificadores glob om
para classificar por hora de modificação e [1]
para escolher a correspondência mais recente.
upload /path/to/dir/*(om[1])
Não há método bom e portátil. O único método portátil é usar ls -t
para listar arquivos por data e analisar o resultado, mas analisar ls
está repleto de perigos . Faça isso apenas se tiver certeza de que os nomes dos arquivos não contêm novas linhas ou caracteres não imprimíveis.
upload "$(ls -t /path/to/dir | head -n 1)"
Upload de FTP
Para o upload, existem muitas ferramentas. Um normalmente instalado é o curl .
curl -T /path/to/local/file ftp://ftp.example.com/remote/dir
Outra abordagem é montar o diretório remoto como um sistema de arquivos, por exemplo, com curlftpfs .
mkdir ftp.example.com
curlftpfs ftp.example.com ftp.example.com
cp -p /path/to/local/file ftp.example.com/remote/dir/
Automatizando a tarefa
Adicione uma entrada crontab para executar a tarefa todos os dias. Execute crontab -e
e adicione uma linha como esta:
SHELL=/bin/zsh
42 3 * * * curl -T /path/to/dir/*(om[1]) ftp://ftp.example.com/remote/dir