rsync em um script bash parece funcionar, mas os arquivos não são atualizados no servidor de destino

1

Eu tenho um servidor onde faço meu desenvolvimento e teste na web, e tenho um monte de servidores frontend que ficam atrás de um balanceador de carga. Eu escrevi um script bash simples para rsync um diretório no meu servidor dev para todos os servidores de produção quando eu corrigir um bug, etc

O rsync APARECE para trabalhar, mas quando eu realmente vou para os outros servidores, nenhum dos arquivos foi atualizado. O que estou fazendo errado?

#!/bin/bash

directory=$1

echo "$directory"

set -x
for host in "xxx.xxx.xxx.xxx"
do
    rsync -avz -e ssh ${directory} root@${host}:${directory}
done

No momento, só tenho um endereço IP no loop for, mas adicionarei mais com o passar do tempo. É assim que eu estou executando o script e a saída abreviada:

[root@admin vhosts]# ./rsync_to_frontend.sh /var/www/scripts
/var/www/scripts
+ for host in '"xxx.xxx.xxx.xxx"'
+ rsync -avz -e ssh /var/www/scripts [email protected]:/var/www/scripts
sending incremental file list
scripts/
scripts/fetchTweets.php
scripts/syncMediaFiles.log
scripts/syncMediaFiles.php
.....

sent 7395053 bytes  received 1252 bytes  2113230.00 bytes/sec
total size is 36718000  speedup is 4.96
[root@admin vhosts]#

Se eu executar o comando novamente, o rsync parecerá funcionar adequadamente e, como esperado, não mostrará nenhum arquivo na lista, aparentemente porque todos foram atualizados. No entanto, quando vou examinar os arquivos no servidor xxx.xxx.xxx.xxx, eles não foram atualizados.

    
por Kenny Wyland 13.06.2013 / 01:32

1 resposta

1

Devido aos requisitos rigorosos das barras ao usar o rsync, eu só precisava colocar uma barra ao rsyncing em um diretório:

Ruim:

# ./rsync_to_frontend.sh /var/www/scripts

vs bom:

# ./rsync_to_frontend.sh /var/www/scripts/
    
por 13.06.2013 / 06:23

Tags