Web Development · 6 min read · Feb 14, 2026

Mantendo sites remotos com sitecopy no Ubuntu 16.04

sitecopy é uma ferramenta para copiar sites armazenados localmente para um servidor web remoto (usando FTP ou WebDAV). Ela ajuda você a manter o site remoto sincronizado com sua cópia local, fazendo o upload de arquivos locais modificados e excluindo arquivos remotos que foram deletados no computador local. Este tutorial mostra como você pode gerenciar seu site web remoto a partir de sua área de trabalho local Ubuntu 16.04 com sitecopy.

1 Nota Preliminar

Estou usando o nome de usuário till na minha área de trabalho local Ubuntu (estou logado na minha área de trabalho Linux local como esse usuário - por favor, não faça login como root). Os arquivos para o site remoto example.com estão armazenados no diretório /home/till/sites/example.com/ no computador local. A raiz do documento remoto é /var/www/example.com/web/.

Você pode usar sitecopy com FTP e WebDAV, então você deve ter uma conta FTP ou WebDAV no servidor remoto. Estou usando o nome de usuário FTP defaulttill e a senha howtoforge aqui.

O site remoto que estou usando para estes exemplos foi criado com ISPConfig. Mas qualquer site onde você tenha acesso FTP ou WebDAV funcionará.

2 Instalando sitecopy

Sitecopy pode ser instalado na área de trabalho local da seguinte forma (precisamos de privilégios de root, portanto usamos sudo):

sudo apt-get -y install sitecopy

Agora você deve dar uma olhada na página de manual do sitecopy para se familiarizar com suas opções:

man sitecopy

3 Configurando sitecopy

Vá para seu diretório home na área de trabalho local…

cd ~

… e crie o diretório .sitecopy com permissões de 700 (sitecopy usa esse diretório para armazenar detalhes dos arquivos):

mkdir -m 700 .sitecopy

Em seguida, crie o arquivo de configuração do sitecopy .sitecopyrc:

touch .sitecopyrc  
chmod 600 .sitecopyrc

Abra o arquivo…

nano .sitecopyrc

… e preencha a configuração para o site example.com. Aqui estão dois exemplos, um para FTP…

site example.com
  server example.com
  username defaulttill
  password howtoforge
  local /home/till/sites/example.com/
  remote ~/web/
  exclude *.bak
  exclude *~

… e um para WebDAV:

site example.com
  server example.com
  protocol webdav
  username defaulttill
  password howtoforge
  local /home/till/sites/example.com/
  remote /var/www/example.com/web/
  exclude *.bak
  exclude *~

(Você pode definir uma estrofe para cada site que deseja gerenciar com sitecopy.)

A diretiva site deve ser seguida por um nome para o site - você pode escolher um livremente, por exemplo, example.com ou mysite. Este nome será usado mais tarde nos comandos do sitecopy. As seguintes opções de configuração que pertencem a esse site devem ser indentadas!

A maioria das opções de configuração a seguir são autoexplicativas. O protocolo padrão é FTP; se você quiser usar WebDAV, por favor, especifique o protocolo webdav. A diretiva local contém o caminho local da cópia do site, remoto contém o caminho do site no servidor remoto - pode ser absoluto ou relativo. Se seu usuário estiver chrooted (como é normalmente o caso com usuários FTP), você deve usar um caminho relativo (como ~/ ou ~/web). Caso contrário, use um caminho absoluto.

As linhas de exclusão são opcionais, elas estão aqui apenas para demonstrar como você pode excluir arquivos de serem mantidos pelo sitecopy.

Você pode descobrir mais sobre a configuração do sitecopy em sua página de manual:

man sitecopy

4 Primeiro Uso

Antes de usar o sitecopy pela primeira vez, você deve decidir qual dos seguintes três cenários corresponde à sua situação:

  1. Site remoto existente e cópia local, ambos em sincronia.
  2. Site remoto existente, sem cópia local.
  3. Novo site remoto, cópia local existente.

4.1 Site Remoto Existente e cópia local, ambos em sincronia

Se tanto o site remoto quanto a cópia local existem e estão em sincronia, execute

sitecopy --catchup example.com

para fazer o sitecopy pensar que o site local é exatamente o mesmo que a cópia remota. Substitua example.com pelo nome do site que você usa no arquivo .sitecopyrc.

till@ubuntu-desktop:~$ sitecopy --catchup example.com  
sitecopy: Catching up site `example.com' (on example.com in ~/web/)  
sitecopy: All the files and and directories are marked as updated remotely.

4.2 Site Remoto Existente, sem cópia local

Se você não tiver uma cópia local do site web remoto existente, execute

sitecopy --fetch example.com

primeiro para que o sitecopy busque a lista de arquivos do servidor remoto (substitua example.com pelo nome do site que você usa no arquivo .sitecopyrc):

till@ubuntu-desktop:~$ sitecopy --fetch example.com  
sitecopy: Fetching site `example.com' (on example.com in ~/web/)  
File: error/503.html - size 1906  
File: error/502.html - size 1881  
File: error/500.html - size 1851  
File: error/405.html - size 1810  
File: error/404.html - size 1806  
File: error/403.html - size 1809  
File: error/401.html - size 1806  
File: error/400.html - size 1792  
File: stats/.htaccess - size 128  
File: robots.txt - size 14  
File: index.html - size 1861  
File: favicon.ico - size 7358  
File: .htaccess - size 26  
Directory: error/  
Directory: stats/  
sitecopy: Fetch completed successfully.

Em seguida, execute

sitecopy --synch example.com

para atualizar o site local a partir da cópia remota.

sitecopy: Synchronizing site `example.com' (on example.com in ~/web/)  
Creating error/: done.  
Creating stats/: done.  
Downloading error/503.html: [.] done.  
Downloading error/502.html: [.] done.  
Downloading error/500.html: [.] done.  
Downloading error/405.html: [.] done.  
Downloading error/404.html: [.] done.  
Downloading error/403.html: [.] done.  
Downloading error/401.html: [.] done.  
Downloading error/400.html: [.] done.  
Downloading stats/.htaccess: [.] done.  
Downloading robots.txt: [.] done.  
Downloading index.html: [.] done.  
Downloading favicon.ico: [.] done.  
Downloading .htaccess: [.] done.  
sitecopy: Synchronize completed successfully.

4.3 Novo Site Remoto, Cópia Local Existente

Se a cópia local existir, mas você tiver um site remoto vazio, execute

sitecopy --init example.com

primeiro para inicializar o site. Substitua example.com pelo nome do site que você usa no arquivo .sitecopyrc.

till@ubuntu-desktop:~$ sitecopy --init example.com  
sitecopy: Initializing site `example.com' (on example.com in ~/web/)  
sitecopy: All the files and directories are marked as NOT updated remotely.  
  

Em seguida, execute:

sitecopy --update example.com

para fazer o upload da cópia local para o site remoto:

till@ubuntu-desktop:~$ sitecopy --update example.com  
sitecopy: Updating site `example.com' (on example.com in ~/web/)  
Creating stats/: done.  
Creating data/: done.  
Creating error/: done.  
Uploading stats/.htaccess: [.] done.  
Uploading data/index.html: [.] done.  
Uploading error/403.html: [.] done.  
Uploading error/401.html: [.] done.  
Uploading error/404.html: [.] done.  
Uploading error/503.html: [.] done.  
Uploading error/400.html: [.] done.  
Uploading error/502.html: [.] done.  
Uploading error/405.html: [.] done.  
Uploading error/500.html: [.] done.  
Uploading index.html: [.] done.  
Uploading robots.txt: [.] done.  
Uploading .htaccess: [.] done.  
Uploading favicon.ico: [.] done.  
sitecopy: Update completed successfully.

5 Usando sitecopy

Depois disso, o uso do sitecopy é realmente fácil. Você pode trabalhar com sua cópia local e atualizar, criar e excluir arquivos. Um primeiro, mas opcional, passo é executar

sitecopy example.com

para descobrir quais arquivos mudaram localmente (substitua example.com pelo nome do site que você usa no arquivo .sitecopyrc):

till@ubuntu-desktop:~$ sitecopy example.com  
sitecopy: Showing changes to site `example.com' (on example.com in ~/web/)  
* These items have been added since the last update:  
info.php  
sitecopy: The remote site needs updating (1 item to update).

Para sincronizar seu site web remoto com sua cópia local (ou seja, fazer o upload de arquivos novos e alterados para o servidor remoto e excluir arquivos no servidor remoto que foram deletados localmente), você simplesmente executa

sitecopy --update example.com
till@ubuntu-desktop:~$ sitecopy --update example.com  
sitecopy: Updating site `example.com' (on example.com in ~/web/)  
Uploading info.php: [] done.  
sitecopy: Update completed successfully.

É isso! Divirta-se com o sitecopy!

6 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.