Инструменты · 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 sitecopy3 Настройка 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 sitecopy4 Первое использование
Перед тем как использовать sitecopy в первый раз, вам нужно решить, какой из следующих трех сценариев соответствует вашей ситуации:
- Существующий удаленный сайт и локальная копия, оба в синхронизации.
- Существующий удаленный сайт, нет локальной копии.
- Новый удаленный сайт, существующая локальная копия.
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.comtill@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 Ссылки
- sitecopy: http://www.manyfish.co.uk/sitecopy/
- Ubuntu: http://www.ubuntu.com/
Get new posts in your inbox
No spam. Unsubscribe anytime.