Managing your remote site locally – sitecopy.

If you are managing a remote site, web server that you do not have direct access to (terminal or ssh) and you have to do it with cpanel, then I know how much pain it is. I had the same issue until recently when I discovered sitecopy.

Description of sitecopy:

sitecopy allows you to easily maintain remote Web sites.  The program will upload files to the server which have changed locally, and delete files from the server which have been removed locally, to keep the remote site synchronized with the local site, with a single command. sitecopy will also optionally try to spot files you move locally, and move them remotely.  FTP and WebDAV servers are supported.

Now that\’s interesting. So how to use sitecopy. I will give you a step by step guide. If you are running Fedora, the package is in the Fedora repo.

So, Lets first install the package :

sudo yum install sitecopy

Once that is done, we need to create a rc file to direct the sites:

site amit –>> Just a name for sitecopy to recognize this site.
server amit-agarwal.co.in –>> The server
remote /  ->> Path on the server to manage
local sitecopy –>> the local path for storage of the files.
username xxxx –>> the username for the site
password xxxx –>> the password for the site
url http://amit-agarwal.co.in –>> URL of the site
protocol ftp –> The protocol to use by sitecopy, webdav also can be used.

Put the above file in the home folder as .sitecopyrc. Then change the permission to 0600. Create a folder called .sitecopy and change the permission to 0700. That much for the configuration. Now create the destination storage folder specified in the local configuration above and change the folder permission to 0700. You are ready to go.

Initialize the site:

sitecopy -i

Then update the site:

sitecopy -s amit

This is supposed to synchronize the local folder with the remote folder but I found that the command did not create the directories recursively, so did a little hack and ran the below to do a complete copy:

sitecopy -s ; while [ $? == 1 ] do sitecopy -s amit; done;

This will complete the initial set of directories for you and then whenever you want to sync the local directory you can run

sitecopy -s amit

and when you make changes locally you can update the site with

sitecopy -u amit