使用sitecopy维护远程网站(Debian Squeeze / Ubuntu 11.10)

使用sitecopy维护远程网站(Debian Squeeze / Ubuntu 11.10)

sitecopy是将本地存储的网站复制到远程Web服务器(使用FTP或WebDAV)的工具。 它可以帮助您通过上传修改的本地文件和删除在本地计算机上已删除的远程文件来使远程站点与本地副本同步。 本教程将介绍如何使用本地Debian Squeeze / Ubuntu 11.10桌面管理您的远程Web站点。

我不会保证这将为您工作!

1初步说明

我在我的本地Debian Squeeze / Ubuntu 11.10桌面上使用用户名falko (我以该用户身份登录我的本地Linux桌面 - 请不要以root身份登录)。 远程网站example.com的文件存储在本地计算机上的目录/home/falko/sites/example.com/中。 远程文档根目录是/var/www/example.com/web/

您可以使用sitecopy与FTP和WebDAV,因此您应该在远程服务器上有FTP或WebDAV帐户。 我使用FTP / WebDAV用户名defaultfalko和密码youcl这里。

2安装sitecopy

sitecopy可以安装在本地桌面上,如下(我们需要root权限,因此我们使用sudo ):

sudo apt-get install sitecopy

您现在应该看看sitecopy的手册页,以了解自己的选项:

man sitecopy

3配置sitecopy

转到本地桌面上的主目录

cd ~

...并创建权限为700的目录.sitecopy (sitecopy使用该目录来存储文件详细信息):

mkdir -m 700 .sitecopy

接下来创建sitecopy配置文件.sitecopyrc

touch .sitecopyrc
chmod 600 .sitecopyrc

打开文件...

vi .sitecopyrc

...并填写example.com网站的配置。 这里有两个例子,一个是FTP ...

site example.com
  server example.com
  username defaultfalko
  password youcl
  local /home/administrator/sites/example.com/
  remote ~/web/
  exclude *.bak
  exclude *~

...和一个WebDAV:

site example.com
  server example.com
  protocol webdav
  username defaultfalko
  password youcl
  local /home/administrator/sites/example.com/
  remote /var/www/example.com/web/
  exclude *.bak
  exclude *~

(您可以为要使用sitecopy管理的每个网站定义一个节。)

站点指令后面必须有一个网站的名称 - 您可以自由选择一个,例如example.commysite 。 该名称将在稍后的sitecopy命令中使用。 属于该站点的以下配置选项必须缩进!

大多数以下配置选项都是自我解释的。 默认协议是FTP; 如果要使用WebDAV,请指定协议webdav 。 本地区域包含网站副本的本地路径,远程包含远程服务器上的网站路径,可以是绝对路径或相对路径。 如果您的用户被chroot(通常是FTP用户的情况),您应该使用相对路径(如〜/〜/ web )。 否则使用绝对路径。

排除行是可选的,这里只是为了演示如何通过sitecopy来排除文件的维护。

您可以在其手册页上找到有关sitecopy配置的更多信息:

man sitecopy

4第一次使用

在您首次使用sitecopy之前,您必须确定以下三种情景中的哪一种与您的情况相匹配:

  1. 现有的远程站点和本地副本同时进行。
  2. 现有的远程站点,无本地副本。
  3. 新的远程站点,现有本地副本。

4.1现有的远程站点和本地复制,两者同步

如果远程站点和本地副本都存在并处于同步状态,请运行

sitecopy --catchup example.com

使sitecopy认为本地站点与远程副本完全相同。 将example.com替换为在.sitecopyrc文件中使用的站点的名称。

falko@falko-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.
falko@falko-desktop:~$

4.2现有远程站点,无本地副本

如果您没有现有远程网站的本地副本,请运行

sitecopy --fetch example.com

首先,sitecopy从远程服务器中获取文件列表(将example.com替换为.sitecopyrc文件中使用的站点的名称):

falko@falko-desktop:~$ sitecopy --fetch example.com
sitecopy: Fetching site `example.com' (on example.com in ~/web/)
File: data/index.html - size 5
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 116
File: robots.txt - size 24
File: index.html - size 1861
File: favicon.ico - size 7358
File: .htaccess - size 26
Directory: data/
Directory: error/
Directory: stats/
sitecopy: Fetch completed successfully.
falko@falko-desktop:~$

然后跑

sitecopy --synch example.com

从远程副本更新本地站点。

falko@falko-desktop:~$ sitecopy --synch example.com
sitecopy: Synchronizing site `example.com' (on example.com in ~/web/)
Creating data/: done.
Creating error/: done.
Creating stats/: done.
Downloading data/index.html: [.] 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.
falko@falko-desktop:~$

4.3新远程站点,现有本地副本

如果本地副本存在,但您有一个空的远程站点,请运行

sitecopy --init example.com

首先要对网站进行初始化。 将example.com替换为在.sitecopyrc文件中使用的站点的名称。

falko@falko-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.
falko@falko-desktop:~$

然后跑

sitecopy --update example.com

将本地副本上传到远程站点:

falko@falko-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.
falko@falko-desktop:~$

5使用sitecopy

之后,sitecopy的使用真的很容易。 您可以使用本地副本并更新,创建和删除文件。 第一个但可选的步骤是运行

sitecopy example.com

以查找哪些文件已在本地更改(将example.com替换为.sitecopyrc文件中使用的站点的名称):

falko@falko-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).
falko@falko-desktop:~$

要将远程网站与本地副本同步(即将新的和更改的文件上传到远程服务器并删除远程服务器上本地已被删除的文件),则只需运行

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

而已! 用sitecopy玩得开心!

6链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏