Primeira solução
Instalar lftp
sudo apt-get install lftp
depois disso criar script
#!/bin/bash
HOST='mysite.com'
USER='myuser'
PASS='myuser'
TARGETFOLDER='/new'
SOURCEFOLDER='/home/myuser/backups'
lftp -f "
open $HOST
user $USER $PASS
lcd $SOURCEFOLDER
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"
Salve-o em algum lugar com o nome upload.sh
. Dê +x
permissão.
sudo chmod +x /path_to_script/upload.sh
Instalação crontab
para executar este comando em cada x
período de tempo
Para editar o crontab run
crontab -e
Para executar o comando a cada 5 minutos, o código é
*/5 * * * * /path_to_script/upload.sh
a cada hora
0 */1 * * * /path_to_script/upload.sh
para correr às 4 da manhã
0 4 * * * /path_to_script/upload.sh
Solução dois
Crie um script pequeno e fácil chamado lftp-script
que LFTP
possa ler:
open ftp://username:password@website.com
mirror -v --only-newer /home/local/path/ /website.com/public_html/
Finalmente, você pode executar LFTP
e iniciar a sincronização. Definir crontab como eu escrevo, mas colocar comando
lftp -f /path/to/lftp-script
algo assim
*/5 * * * * lftp -f /path/to/lftp-script
Solução três
Instalar curlftpfs
sudo apt-get install curlftpfs
o que você precisa fazer para montar o ftp localmente é executar esses comandos criar dir que será sincronizado
mkdir hostr
monte o diretório ftp remoto no local
sudo curlftpfs -o allow_other ftp://user:pass@ftp.example.com host
user: pass é o nome de usuário e a senha para fazer login na conta ftp.
Você pode adicionar curlftpfs
à fstab
montagem automática usando esta linha:
curlftpfs#user:pass@ftp.example.com /mnt/host fuse rw,uid=500,user,noauto 0 0