はじめに
ホームページのコンテンツのアップロードは、Windows環境の場合FFFTPなどのFTPクライアントを使っていると思いますが、 FTPクライアントを起動してアップロードを行うのは、更新頻度が多いサイトの場合やはり面倒です。 今回は、sitecopyによるローカルとリモート(ホームページ)のミラーリング方法を解説します。
2014年06月07日 18時54分
ホームページのコンテンツのアップロードは、Windows環境の場合FFFTPなどのFTPクライアントを使っていると思いますが、 FTPクライアントを起動してアップロードを行うのは、更新頻度が多いサイトの場合やはり面倒です。 今回は、sitecopyによるローカルとリモート(ホームページ)のミラーリング方法を解説します。
作業の前提条件は、下記のとおりです。
ソフトウエア | バージョン |
---|---|
OS | Windows 7 Ultimate 32bit |
Cygwin | Setup Version 2.831 |
sitecopyのビルド時に必要なlibintl1および、libneon-develパッケージをインストールします。
$ apt-get install libintl1 $ apt-get install libneon-devel
Working directory is /cache Mirror is http://ftp.iij.ad.jp/pub/cygwin/, Architecture is x86 --2014-06-07 17:14:01-- http://ftp.iij.ad.jp/pub/cygwin//x86/setup.bz2 Resolving ftp.iij.ad.jp (ftp.iij.ad.jp)... 202.232.140.170 Connecting to ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.170|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 436097 (426K) [application/x-bzip2] Saving to: `setup.bz2' 100%[======================================>] 436,097 1.59M/s in 0.3s 2014-06-07 17:14:01 (1.59 MB/s) - `setup.bz2' saved [436097/436097] Updated setup.ini Installing libintl1 Found package libintl1 --2014-06-07 17:14:02-- http://ftp.iij.ad.jp/pub/cygwin//x86/release/gettext/libintl1/libintl1-0.10.40-1.tar.bz2 Resolving ftp.iij.ad.jp (ftp.iij.ad.jp)... 202.232.140.170 Connecting to ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.170|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 11120 (11K) [application/x-bzip2] Saving to: `libintl1-0.10.40-1.tar.bz2' 100%[======================================>] 11,120 --.-K/s in 0.09s 2014-06-07 17:14:02 (120 KB/s) - `libintl1-0.10.40-1.tar.bz2' saved [11120/11120] Unpacking... Package libintl1 requires the following packages, installing: cygwin Package cygwin is already installed, skipping Package libintl1 installed
Working directory is /cache Mirror is http://ftp.iij.ad.jp/pub/cygwin/, Architecture is x86 --2014-06-07 17:20:01-- http://ftp.iij.ad.jp/pub/cygwin//x86/setup.bz2 Resolving ftp.iij.ad.jp (ftp.iij.ad.jp)... 202.232.140.170 Connecting to ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.170|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 436097 (426K) [application/x-bzip2] Saving to: `setup.bz2' 100%[======================================>] 436,097 1.51M/s in 0.3s 2014-06-07 17:20:01 (1.51 MB/s) - `setup.bz2' saved [436097/436097] Updated setup.ini Installing libneon-devel Found package libneon-devel --2014-06-07 17:20:01-- http://ftp.iij.ad.jp/pub/cygwin//x86/release/neon/libneon-devel/libneon-devel-0.29.6-3.tar.bz2 Resolving ftp.iij.ad.jp (ftp.iij.ad.jp)... 202.232.140.170 Connecting to ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.170|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 91429 (89K) [application/x-bzip2] Saving to: `libneon-devel-0.29.6-3.tar.bz2' 100%[======================================>] 91,429 510K/s in 0.2s 2014-06-07 17:20:02 (510 KB/s) - `libneon-devel-0.29.6-3.tar.bz2' saved [91429/91429] Unpacking... Package libneon-devel requires the following packages, installing: bash gettext libexpat-devel libiconv libneon27 libproxy-devel openssl-devel zlib-devel coreutils sed Package bash is already installed, skipping Package gettext is already installed, skipping Working directory is /cache Mirror is http://ftp.iij.ad.jp/pub/cygwin/, Architecture is x86 Installing libexpat-devel Found package libexpat-devel --2014-06-07 17:20:03-- http://ftp.iij.ad.jp/pub/cygwin//x86/release/expat/libexpat-devel/libexpat-devel-2.1.0-3.tar.bz2 Resolving ftp.iij.ad.jp (ftp.iij.ad.jp)... 202.232.140.170 Connecting to ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.170|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 220720 (216K) [application/x-bzip2] Saving to: `libexpat-devel-2.1.0-3.tar.bz2' 100%[======================================>] 220,720 1.34M/s in 0.2s 2014-06-07 17:20:03 (1.34 MB/s) - `libexpat-devel-2.1.0-3.tar.bz2' saved [220720/220720] Unpacking... Package libexpat-devel requires the following packages, installing: libexpat1 Package libexpat1 is already installed, skipping Package libexpat-devel installed Package libiconv is already installed, skipping Package libneon27 is already installed, skipping Working directory is /cache Mirror is http://ftp.iij.ad.jp/pub/cygwin/, Architecture is x86 Installing libproxy-devel Found package libproxy-devel --2014-06-07 17:20:05-- http://ftp.iij.ad.jp/pub/cygwin//x86/release/libproxy/libproxy-devel/libproxy-devel-0.4.11-2.tar.bz2 Resolving ftp.iij.ad.jp (ftp.iij.ad.jp)... 202.232.140.170 Connecting to ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.170|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 13836 (14K) [application/x-bzip2] Saving to: `libproxy-devel-0.4.11-2.tar.bz2' 100%[======================================>] 13,836 --.-K/s in 0.01s 2014-06-07 17:20:05 (1.20 MB/s) - `libproxy-devel-0.4.11-2.tar.bz2' saved [13836/13836] Unpacking... Package libproxy-devel requires the following packages, installing: libproxy1 Package libproxy1 is already installed, skipping Package libproxy-devel installed Package openssl-devel is already installed, skipping Package zlib-devel is already installed, skipping Package coreutils is already installed, skipping Package sed is already installed, skipping Package libneon-devel installed
sitecopy-0.16.6.tar.gzをダウンロードして展開します。
$ mkdir -p src && cd src $ curl -sL http://www.manyfish.co.uk/sitecopy/sitecopy-0.16.6.tar.gz | tar zxf -
$ cd sitecopy-0.16.6 $ ./configure --with-libintl-prefix=/usr
checking for gcc... gcc checking for C compiler default output file name... a.exe checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... .exe checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether make sets $(MAKE)... yes checking for library containing strerror... none required checking for a BSD-compatible install... /bin/install -c checking for inline... inline checking for an ANSI C-conforming const... yes checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for socketpair... yes configure: debugging is enabled checking for GNU fnmatch... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for size_t... yes checking for off_t... yes checking for uname... CYGWIN_NT-6.1 checking for int... yes checking size of int... 4 checking for long... yes checking size of long... 4 checking for long long... yes checking size of long long... 8 checking for gcc -Wformat -Werror sanity... yes checking errno.h usability... yes checking errno.h presence... yes checking for errno.h... yes checking stdarg.h usability... yes checking stdarg.h presence... yes checking for stdarg.h... yes checking for string.h... (cached) yes checking for stdlib.h... (cached) yes checking for size_t... (cached) yes checking size of size_t... 4 checking how to print size_t... u checking for off_t... (cached) yes checking size of off_t... 8 checking how to print off_t... lld checking for ssize_t... yes checking size of ssize_t... 4 checking how to print ssize_t... d checking whether byte ordering is bigendian... no checking whether strerror_r is declared... yes checking for strerror_r... yes checking whether strerror_r returns char *... yes checking for snprintf... yes checking for vsnprintf... yes checking for ar... /bin/ar checking for ranlib... /bin/ranlib checking for neon-config... /bin/neon-config checking linking against neon... yes configure: incompatible neon library version 0.29.6: wanted 0.24 25 26 27 28 configure: using bundled neon (0.28.2) checking for sys/time.h... yes checking for limits.h... yes checking for sys/select.h... yes checking for arpa/inet.h... yes checking for libintl.h... yes checking for signal.h... yes checking for sys/socket.h... yes checking for netinet/in.h... yes checking for netinet/tcp.h... yes checking for netdb.h... yes checking for sys/poll.h... yes checking for sys/limits.h... no checking for fcntl.h... yes checking for iconv.h... yes checking for timezone global... yes configure: LFS support unnecessary, off_t is not 32-bit checking for strtoll... yes checking for strcasecmp... yes checking for signal... yes checking for setvbuf... yes checking for setsockopt... yes checking for stpcpy... yes checking for poll... yes checking for fcntl... yes checking for getsockopt... yes checking whether stpcpy is declared... yes checking for library containing socket... none needed checking for library containing getaddrinfo... none needed checking for gai_strerror... yes checking for getnameinfo... yes checking for inet_ntop... yes configure: IPv6 support is enabled checking for working AI_ADDRCONFIG... yes checking for socklen_t... yes checking for struct tm.tm_gmtoff... no checking for struct tm.__tm_gmtoff... no configure: zlib not supported checking whether to enable ACL support in neon... no configure: SSL support is not enabled configure: Thread-safe SSL support is not enabled configure: Thread-safe SSL not supported configure: SOCKSv5 support is not enabled checking for krb5-config... none checking expat.h usability... yes checking expat.h presence... yes checking for expat.h... yes checking for XML_SetXmlDeclHandler in -lexpat... yes checking for XML_Size... yes checking for XML_Size... (cached) yes checking size of XML_Size... 4 checking how to print XML_Size... ld configure: XML parser used: expat configure: WebDAV support is enabled checking for getopt_long... yes checking for strcasecmp... (cached) yes checking for strdup... yes checking for strsignal... yes checking for strerror... yes checking for memcpy... yes checking for setlocale... yes checking for nl_langinfo... yes checking return type of signal handlers... void checking for stdarg.h... (cached) yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking for sys/time.h... (cached) yes checking regex.h usability... yes checking regex.h presence... yes checking for regex.h... yes checking locale.h usability... yes checking locale.h presence... yes checking for locale.h... yes checking langinfo.h usability... yes checking langinfo.h presence... yes checking for langinfo.h... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for limits.h... (cached) yes checking for sys/select.h... (cached) yes checking for fcntl.h... (cached) yes checking for the third argument of getsockname... socklen_t checking for a thread-safe mkdir -p... /bin/mkdir -p checking whether NLS is requested... yes checking for msgfmt... no checking for gmsgfmt... : checking for xgettext... no checking for msgmerge... no checking build system type... i686-pc-cygwin checking host system type... i686-pc-cygwin checking whether we are using the GNU C Library 2 or newer... no checking for ranlib... /bin/ranlib checking for simple visibility declarations... yes checking for stdint.h... yes checking for working alloca.h... yes checking for alloca... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for getpagesize... yes checking for working mmap... no checking whether integer division by zero raises SIGFPE... yes checking for inttypes.h... yes checking for unsigned long long int... yes checking for inttypes.h... (cached) yes checking whether the inttypes.h PRIxNN macros are broken... no checking for AIX... no checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking for ld used by GCC... /bin/ld checking if the linker (/bin/ld) is GNU ld... yes checking for shared library run path origin... done checking whether imported symbols can be declared weak... yes checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking for pthread_kill in -lpthread... yes checking for pthread_rwlock_t... yes checking for multithread API to use... posix checking argz.h usability... yes checking argz.h presence... yes checking for argz.h... yes checking for inttypes.h... (cached) yes checking for limits.h... (cached) yes checking for unistd.h... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking for getcwd... yes checking for getegid... yes checking for geteuid... yes checking for getgid... yes checking for getuid... yes checking for mempcpy... yes checking for munmap... yes checking for stpcpy... (cached) yes checking for strcasecmp... (cached) yes checking for strdup... (cached) yes checking for strtoul... yes checking for tsearch... yes checking for argz_count... yes checking for argz_stringify... yes checking for argz_next... yes checking for __fsetlocking... no checking whether feof_unlocked is declared... no checking whether fgets_unlocked is declared... no checking for iconv... yes checking for working iconv... yes checking how to link with libiconv... -liconv checking for iconv declaration... extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); checking for NL_LOCALE_NAME macro... no checking for bison... bison checking version of bison... 2.7.12, ok checking for long long int... yes checking for wchar_t... yes checking for wint_t... yes checking for intmax_t... yes checking whether printf() supports POSIX/XSI format strings... yes checking whether we are using the GNU C Library 2.1 or newer... no checking for stdint.h... (cached) yes checking for SIZE_MAX... yes checking for stdint.h... (cached) yes checking for CFPreferencesCopyAppValue... no checking for CFLocaleCopyCurrent... no checking for ptrdiff_t... yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for asprintf... yes checking for fwprintf... yes checking for putenv... yes checking for setenv... yes checking for setlocale... (cached) yes checking for snprintf... (cached) yes checking for wcslen... yes checking whether _snprintf is declared... no checking whether _snwprintf is declared... no checking whether getc_unlocked is declared... yes checking for nl_langinfo and CODESET... yes checking for LC_MESSAGES... yes checking for windres... windres checking for CFPreferencesCopyAppValue... (cached) no checking for CFLocaleCopyCurrent... (cached) no checking whether included gettext is requested... no checking for GNU gettext in libc... no checking for GNU gettext in libintl... yes checking whether to use NLS... yes checking where the gettext function comes from... external libintl checking how to link with libintl... -lintl configure: creating ./config.status config.status: creating Makefile config.status: creating lib/neon/Makefile config.status: creating po/Makefile.in config.status: creating intl/Makefile config.status: creating config.h config.status: executing po-directories commands config.status: creating po/POTFILES config.status: setting ALL_LINGUAS in configure.in is obsolete config.status: creating po/Makefile configure: Configured sitecopy 0.16.6: Install prefix: /usr/local Compiler: gcc Frontend: Console (executable named 'sitecopy') Supported protocols: sftp/ssh rsh/rcp WebDAV FTP neon library: included libneon (0.28.2) XML Parser: expat SSL library: SSL support is not enabled Internationalization: Built using native support
configureスクリプトによって作成されたMakefileのまま、ビルドを行うとエラーになるため、Makefileを修正します。
変更前
$(TARGET): subdirs $(ALLOBJS)
変更後
$(TARGET): $(ALLOBJS)
$ cp -p Makefile Makefile.orig $ vi Makefile $ diff Makefile.orig Makefile
89c89 < $(TARGET): subdirs $(ALLOBJS) --- > $(TARGET): $(ALLOBJS)
makeコマンドを実行して、sitecopyをビルドします。
$ make
gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/sites.o -c src/sites.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/sitefiles.o -c src/sitefiles.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/sitestore.o -c src/sitestore.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/rcfile.o -c src/rcfile.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/common.o -c src/common.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/nulldriver.o -c src/nulldriver.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/lsparser.o -c src/lsparser.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/ftp.o -c src/ftp.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/ftpdriver.o -c src/ftpdriver.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/davdriver.o -c src/davdriver.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/rshdriver.o -c src/rshdriver.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/sftpdriver.o -c src/sftpdriver.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o src/console_fe.o -c src/console_fe.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o lib/netrc.o -c lib/netrc.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o lib/basename.o -c lib/basename.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o lib/dirname.o -c lib/dirname.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o lib/rpmatch.o -c lib/rpmatch.c gcc -I. -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -I./src -I./lib -g -O2 -I./lib/neon -o lib/yesno.o -c lib/yesno.c gcc -g -O2 -I./lib/neon -o sitecopy.exe src/sites.o src/sitefiles.o src/sitestore.o src/rcfile.o src/common.o src/nulldriver.o src/lsparser.o src/ftp.o src/ftpdriver.o src/davdriver.o src/rshdriver.o src/sftpdriver.o src/console_fe.o -L./lib/neon -lneon -lexpat -lintl lib/netrc.o lib/basename.o lib/dirname.o lib/rpmatch.o lib/yesno.o Compilation complete. Run 'make install' to install sitecopy. (You may need to become root to do this)
make installを実行して、sitecopyをインストールします。
nls関係のインストール時にエラーになりますが、無視します。
$ make install
Creating directories... /bin/sh ./mkinstalldirs /usr/local/bin /usr/local/share/sitecopy /usr/local/doc/sitecopy mkdir /usr/local/share mkdir /usr/local/share/sitecopy mkdir /usr/local/doc mkdir /usr/local/doc/sitecopy Installing sitecopy.exe executable... /bin/install -c sitecopy.exe /usr/local/bin/sitecopy.exe Installing data files... set -e; for f in doc/examplerc doc/changes.awk; do \ /bin/install -c -m 644 ./$f /usr/local/share/sitecopy/`echo $f | sed 's/^doc\///'`; \ done Installing documentation... set -e; for f in README NEWS THANKS doc/update.sh; do \ /bin/install -c -m 644 ./$f /usr/local/doc/sitecopy/`echo $f | sed 's/^doc\///'`; \ done Installing man page... /bin/sh ./mkinstalldirs /usr/local/share/man/man1 mkdir /usr/local/share/man mkdir /usr/local/share/man/man1 /bin/install -c -m 644 ./doc/sitecopy.1 /usr/local/share/man/man1/sitecopy.1 for f in fr; do /bin/sh ./mkinstalldirs /usr/local/share/man/$f/man1; \ /bin/install -c -m 644 ./doc/sitecopy.$f.1 \ /usr/local/share/man/$f/man1/sitecopy.1; done mkdir /usr/local/share/man/fr mkdir /usr/local/share/man/fr/man1 sitecopy installation finished. /bin/sh: line 0: cd: po: No such file or directory Makefile:158: recipe for target 'install-nls' failed make: *** [install-nls] Error 1
ヘルプを表示させて、動作を確認します。
$ sitecopy --help
sitecopy 0.16.6: FTP WebDAV rsh/rcp sftp/ssh, debugging, cygwin platform. Usage: sitecopy [OPTIONS] [MODE] [sitename]... Options: -d, --debug=KEY[,KEY] Turn debugging on for each KEY, which may be: socket, files, rcfile, ftp, http, httpbody, rsh, sftp, xml, xmlparse, cleartext Warning: cleartext displays (normally hidden) passwords in plain text -g, --logfile=FILE Append debugging messages to FILE (else use stderr) -r, --rcfile=FILE Use alternate run control file -p, --storepath=PATH Use alternate site storage directory -y, --prompting Request confirmation before making each update -a, --allsites Perform the operation on ALL defined sites -k, --keep-going Carry on an update regardless of errors -o, --show-progress Display total percentage file transfer complete -q, --quiet Be quiet while performing the operation -qq, --silent Be silent while perforing the operation -n, --dry-run Display but do not carry out the operation Operation modes: -l, --list List changes between remote and local sites (default) -ll, --flatlist Flat list of changes between remote and local sites -v, --view Display a list of the site definitions -i, --initialize Mark all files and directories as not updated -f, --fetch Find out what files are on the remote site -e, --verify Verify stored state of site matches real remote state -c, --catchup Mark all files and directories as updated -s, --synchronize Update the local site from the remote site -u, --update Update the remote site -h, --help Display this help message -V, --version Display version information Please send feature requests and bug reports to sitecopy@lyra.org
以上で、sitecopyのインストールは終了です。
sitecopyの設定を行います。
sitecopyが使用する制御情報を保存するフォルダを作成します。
$ mkddir -pm 0700 ~/.sitecopy
sitecopyでは、下記の設定項目を使用します。
設定項目 | 概要 |
---|---|
site | サイト名を指定します。 |
server | リモートサーバーを指定します。 |
username | FTPユーザー名を指定します。 |
password | FTPパスワードを指定します。 |
local | ローカル側のフォルダを指定します。 |
remote | サーバー側のアップロードフォルダを指定します。 |
state | checksumを指定するとミラーされたファイルの完全性がチェックされます。 |
protocol | ftpを指定します。 |
checkmoved | ローカル側で移動されたファイルをサーバー側でも移動します。 |
permissions | ファイルやフォルダのパーミッションもミラーします。 |
exclude | ミラーから除外すファイルやフォルダを指定します。 |
$ vi ~/.sitecopy
site sitename server servername username username password userpasswd local ~/html/ remote / state checksum protocol ftp checkmoved permissions all exclude "RCS"
初めて実行する場合、sitecopyを初期化します。
$ sitecopy -ai
ミラーリングを実行します。
$ sitecopy -au
以上で、sitecopyの設定は終了です。
ファイルを更新した後、sitecopyを実行するだけで更新されたファイルのみをアップロードできるようになります。