Como rsync pasta usando o gitlab-ci

0

Eu tento sincronizar meus arquivos locais dentro da pasta chamada dist com a pasta root da minha conta de ftp usando .gitlab-ci.yml . Enquanto a tarefa é executada com sucesso, minha pasta raiz do ftp permanece vazia.

Eu criei uma conta ftp, que tem acesso somente a httpdocs . Eu quero que meus arquivos sejam copiados dentro do httpdocs.

Estou usando este código para copiar os arquivos:

rsync -avh --delete --rsh="sshpass -p $PROD_FTP_PASS ssh -o StrictHostKeyChecking=no "  ./dist/ [email protected]/

O comando registra o seguinte:

sending incremental file list
created directory [email protected]
./
android-chrome-192x192.png

          4.69K 100%    0.00kB/s    0:00:00  
          4.69K 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=18/20)
android-chrome-256x256.png

          6.41K 100%    6.12MB/s    0:00:00  
          6.41K 100%    6.12MB/s    0:00:00 (xfr#2, to-chk=17/20)
app.css

          2.06K 100%    1.97MB/s    0:00:00  
          2.06K 100%    1.97MB/s    0:00:00 (xfr#3, to-chk=16/20)

sent 62.95K bytes  received 423 bytes  126.74K bytes/sec
total size is 61.64K  speedup is 0.97
Job succeeded

Eu li que usar dist/ ou dist faz diferença. Eu não quero copiar a pasta, mas arquivos. Embora eu queira colocar esses arquivos no diretório raiz da minha conta ftp (que é httpdocs/ ).

O que estou fazendo de errado e onde estão os arquivos sendo copiados agora, já que não consigo vê-los usando minha conta ftp?

Outra mensagem de erro :

Quando tento enviar dados para um caminho aleatório, recebo o seguinte erro:

$ rsync -avh --progress --delete --rsh="sshpass -p $PROD_FTP_PASS ssh -o StrictHostKeyChecking=no " ./dist [email protected]/httpdocs/yellowstorm
sending incremental file list
rsync: mkdir "/builds/fyd/fyd-presite/[email protected]/httpdocs/yellowstorm" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at main.c(674) [Receiver=3.1.1]
ERROR: Job failed: exit code 1
    
por Marian Rick 01.09.2017 / 19:13

1 resposta

1

A sintaxe para origem / destino remoto em rsync é [<user>@]<host>:[path] Portanto, minimamente, isso deve ser example.com: , ou seja, o : é importante.

Seu controle remoto não tem o : então o rsync estará copiando os arquivos para um diretório local chamado [email protected] (você pode confirmar executando um ls no plano de compilação) em vez disso você deve usar [email protected]:/ na raiz do controle remoto (os servidores raiz não a raiz do ftp desde que você está usando o ssh). Ou [email protected]: será copiado para o diretório pessoal do usuário.

    
por 01.09.2017 / 19:57

Tags