Инструменты · 5 min read · Feb 14, 2026

Поддержка удаленных веб-сайтов с помощью sitecopy на Ubuntu 16.04

sitecopy — это инструмент для копирования локально хранящихся веб-сайтов на удаленный веб-сервер (с использованием FTP или WebDAV). Он помогает поддерживать синхронизацию удаленного сайта с вашей локальной копией, загружая измененные локальные файлы и удаляя удаленные файлы, которые были удалены на локальном компьютере. Этот учебник показывает, как вы можете управлять своим удаленным веб-сайтом с рабочего стола Ubuntu 16.04 с помощью sitecopy.

1 Предварительная заметка

Я использую имя пользователя till на своем локальном рабочем столе Ubuntu (я вошел в свою локальную Linux-систему как этот пользователь - пожалуйста, не входите как root). Файлы для удаленного веб-сайта example.com хранятся в каталоге /home/till/sites/example.com/ на локальном компьютере. Удаленный корень документа - /var/www/example.com/web/.

Вы можете использовать sitecopy с FTP и WebDAV, поэтому у вас должна быть учетная запись FTP или WebDAV на удаленном сервере. Я использую имя пользователя FTP defaulttill и пароль howtoforge.

Удаленный веб-сайт, который я использую для этих примеров, был создан с помощью ISPConfig. Но любой сайт, к которому у вас есть доступ через FTP или WebDAV, подойдет.

2 Установка sitecopy

Sitecopy можно установить на локальном рабочем столе следующим образом (нам нужны права root, поэтому мы используем sudo):

sudo apt-get -y install sitecopy

Теперь вам следует взглянуть на страницу man sitecopy, чтобы ознакомиться с его параметрами:

man sitecopy

3 Настройка sitecopy

Перейдите в свой домашний каталог на локальном рабочем столе…

cd ~

… и создайте каталог .sitecopy с правами 700 (sitecopy использует этот каталог для хранения деталей файлов):

mkdir -m 700 .sitecopy

Затем создайте файл конфигурации sitecopy .sitecopyrc:

touch .sitecopyrc  
chmod 600 .sitecopyrc

Откройте файл…

nano .sitecopyrc

… и заполните конфигурацию для сайта example.com. Вот два примера, один для FTP…

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

… и один для 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 *~

(Вы можете определить раздел для каждого веб-сайта, который хотите управлять с помощью sitecopy.)

Директива site должна быть сопровождаема именем веб-сайта - вы можете выбрать любое, например, example.com или mysite. Это имя будет использоваться позже в командах sitecopy. Следующие параметры конфигурации, относящиеся к этому сайту, должны быть с отступом!

Большинство следующих параметров конфигурации самоочевидны. Протокол по умолчанию - FTP; если вы хотите использовать WebDAV, пожалуйста, укажите protocol webdav. Директива local содержит локальный путь к копии веб-сайта, remote содержит путь к веб-сайту на удаленном сервере - он может быть абсолютным или относительным. Если ваш пользователь находится в chroot (как это обычно бывает с пользователями FTP), вы должны использовать относительный путь (например, ~/ или ~/web). В противном случае используйте абсолютный путь.

Строки exclude являются необязательными, они здесь просто для демонстрации того, как вы можете исключить файлы из управления sitecopy.

Вы можете узнать больше о конфигурации sitecopy на его странице man:

man sitecopy

4 Первое использование

Перед тем как использовать sitecopy в первый раз, вам нужно решить, какой из следующих трех сценариев соответствует вашей ситуации:

  1. Существующий удаленный сайт и локальная копия, оба в синхронизации.
  2. Существующий удаленный сайт, нет локальной копии.
  3. Новый удаленный сайт, существующая локальная копия.

4.1 Существующий удаленный сайт и локальная копия, оба в синхронизации

Если и удаленный сайт, и локальная копия существуют и синхронизированы, выполните

sitecopy --catchup example.com

чтобы заставить sitecopy думать, что локальный сайт точно такой же, как удаленная копия. Замените example.com на имя сайта, которое вы используете в файле .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 Существующий удаленный сайт, нет локальной копии

Если у вас нет локальной копии существующего удаленного веб-сайта, сначала выполните

sitecopy --fetch example.com

чтобы sitecopy получил список файлов с удаленного сервера (замените example.com на имя сайта, которое вы используете в файле .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.

Затем выполните

sitecopy --synch example.com

чтобы обновить локальный сайт из удаленной копии.

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 Новый удаленный сайт, существующая локальная копия

Если локальная копия существует, но у вас есть пустой удаленный сайт, выполните

sitecopy --init example.com

сначала, чтобы инициализировать сайт. Замените example.com на имя сайта, которое вы используете в файле .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.  
  

Затем выполните:

sitecopy --update example.com

чтобы загрузить локальную копию на удаленный сайт:

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 Использование sitecopy

После этого использование sitecopy действительно просто. Вы можете работать с вашей локальной копией и обновлять, создавать и удалять файлы. Первый, но необязательный шаг - выполнить

sitecopy example.com

чтобы узнать, какие файлы изменились локально (замените example.com на имя сайта, которое вы используете в файле .sitecopyrc):

till@ubuntu-desktop:~$ sitecopy example.com  
sitecopy: Showing changes to site `example.com' (on example.com in ~/web/)  
* Эти элементы были добавлены с последнего обновления:  
info.php  
sitecopy: Удаленный сайт нуждается в обновлении (1 элемент для обновления).

Чтобы синхронизировать ваш удаленный веб-сайт с вашей локальной копией (т.е. загрузить новые и измененные файлы на удаленный сервер и удалить файлы на удаленном сервере, которые были удалены локально), вы просто выполняете

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.

Вот и все! Удачи с sitecopy!

6 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.