Consegui transferir todos os arquivos de uma pasta via ftp de um servidor remoto para um framboesa, mas gostaria de transferir apenas os novos. Abaixo está o script de trabalho que eu tenho.
#!/bin/bash -vx
ftp -in IP_SERVER<<END_SCRIPT
quote USER rem_user
quote PASS rem_pass
bin
prompt:off
cd /path_to_server_files
lcd /path_to_local_files
mget *.mp3
bye
END_SCRIPT
Eu tenho uma empresa que fornece música de fundo para outras empresas. Meu método estava deixando um computador em cada um jogando 24/7 ou com outros trabalhos agendados específicos, dependendo do cliente. E o framboesa é uma ótima maneira de fazer isso em vez de um computador. O método que tenho direito sabe que está funcionando é um trabalho cron por pasta. Cada pasta tem um tipo de música. Então, eu colocarei música diferente de vez em quando no servidor e a tarefa cron transferirá esses arquivos uma vez por semana. Está configurado para transferir todos os arquivos mp3 nessa pasta para o RPi. A coisa é, ele irá transferir todos os arquivos lá, incluindo os que já estavam lá. Se eu colocar lá, por exemplo, 150 arquivos de música, vai demorar muito tempo para transferi-los, para não mencionar se é feito com todas as pastas, já que o RPi ARM não é tão poderoso. A solução não seria sobrescrever os arquivos já existentes, apenas os novos. Então, depois de algum tempo, outra tarefa do cron excluirá todos os arquivos com mais de * dias.
Eu procurei, mas parece que o ftp ainda não tem uma opção como essa. Então eu encontrei o comando wget que permite transferir sem sobrescrever, mas não consegui transferir vários arquivos. Eu tenho tentado converter o script acima com o comando wget sem sucesso. Alguém com experiência neste assunto pode ajudar? Pode ser um problema com o http também. Agradecemos antecipadamente.
Eu tentei com o comando wget:
* * * * * wget -r -l1 -N -A.mp3 'ftp://serverUser:Password@serverIP/path_to_server_files' /var/www/rd/musica/teste/ftp11.log 2>&1
Erros:
ftp://serverUser:Password@serverIP/path_to_server_files: Bad Port Number
/var/www/rd/musica/teste: Scheme Missing
Esta é a minha tentativa com o rsync:
O rsyncd.conf: (Não tenho certeza se todas as credenciais estão corretas, então colocarei todos os arquivos aqui para que possam ser corrigidos.)
lock file = /var/run/rsync.lock
lock file = /var/log/rsyncd.log
pid file = /var/run/rsync.pid
[documents]
path = /var/www/rd/musica/teste
comment = The documents folder of localusername
uid = localusername
gid = localusername
read only = no
list = yes
auth users = serverusername
secrets file =/etc/rsync.secrets
hosts allow = serverIP/255.255.255.0
rsyncd.secrets
localuser:password
serveruser:password
comando para executar o rsync:
rsync -rtv serverusername@serverIP::documents/path_to_server_files/*.mp3 /path_to_local_destination_folder
Ele retorna esses erros:
rsync: failed to connect to serverIP (serverIP): Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.9]