Introduction
In the past I have used Ubuntu One until it went out of business, then ownCloud, until it went out of business. I have been looking for a method to perform bidirectional backup to a directory on my Hostgator shared server. Osync initially looked promising, but SSHs into the server too many times, exceeding the 12 allowable attempts per IP per 90 seconds imposed by Hostgator. I fell back to rsync, and had to hack the “bidirectional” feature in an unsatisfactory way.
Rsync
See here for setting up SSH keys. The command to upload from a local directory ~/syncd/ to Hostgator, preserving directory structure:
1 | cd ~/syncd/ |
for cron edit the file using the command crontab:
1 | #crontab -e |
\$ps aux to list PIDs
\$kill
crontab -l to see crons
flags
-q quiet - use with cron
-v verbose
-r recursive
-R relative
-t times must be used to transfer only modified files in future backups
-a equivalent to -rlptgoD
-o owner
-g group
-p permissions
-D devices - transfer char and block device info
-z compress
-P same as -partial -progress
-partial retain partially transferred files
-progress show progress (should also use -v )
Create 2 batch files, one for upload and one for download.
I will use the upload syntax to register a cron job. The job will run every 15 minutes and back up to the cloud.
1 |
|
1 |
|
If I use a second computer, manually run rsync-download.sh upon login. When returning to the primary computer, again manually run rsync-download.sh to capture any changes made on the auxilliary machine. As a reminder, I created a batch file that will prompt me on login. Add a new autostart with the Applications / Settings / Settings manager / Session and startup / Application autostart dialog with the command: xfce4-terminal -e “bash /home/pl/check-for-download.sh” –hold
1 |
|
Backup to USB
I don’t want private keys in the cloud so I backup personal directories and files to a local USB.
1 |
|
lsyncd
http://blog.acipo.com/using-rsync-to-transfer-files-to-your-hostgator-account/
username: syncd@granitemtn.net
password: EW27&v&cd)z+
We can now restart the lsyncd service by issuing the following command:
sudo service lsyncd restart
sudo su
ssh remote_mirror_ip_address
ls /remotesync
http://www.cerebralmastication.com/2011/04/fast-two-way-sync-in-ubuntu/
Osync
https://github.com/deajan/osync
1 | $ git clone https://github.com/deajan/osync |
Test that I can SSH into my server:
1 | mbc@dc7700s:~$ ssh -p 2222 mbcladwell@123.123.123.123 |
Now perform a test transfer before using the configuration file:
1 | ./osync/osync.sh --initiator="/home/mbc/syncd/" --target="ssh://123.123.123.123:2222//public_html" --rsakey=/home/mbc/.ssh/id_rsa |
Set up the configuration file sync.conf with the following variables:
INITIATOR_SYNC_DIR=”/home/mbc/lnsDFoKytr”
TARGET_SYNC_DIR=”ssh://mbcladwell@123.123.123.123:2222//home2/mbcladwell/public_html”
SSH_RSA_PRIVATE_KEY=”/home/mbc/.ssh/id_rsa”
As mentioned above, osync repeatedly confirms SSH accessibility, exceeding the login limits allowed by my provider. Insert a sleep statement in the
CheckConnectivityRemoteHost function to slow the script down. Hostgator allows 12 SSH logins per 90 seconds, with a fresh allocation of logins every 90 seconds.
1 |
|