Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

Copy Between Machines Using Rsync Over SSH

1. Choose or create users on both machines:

In my example, I created a user named tcpa on both machines.  Then, I setup machine1 to rsync files to/from machine2.  Here’s how I did it. 
On Machine #1
# useradd tcpa
# passwd tcpa
Changing password for user tcpa.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
On Machine #2
# useradd tcpa
# passwd tcpa
Changing password for user tcpa.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

2. Verify that there is a .ssh directory in the home directory for the user on both machines

If there isn’t one, you can create one simply by starting an ssh to localhost:
su – tcpassh -l tcpa localhost
The authenticity of host ‘localhost (::1)’ can’t be established.
RSA key fingerprint is 9a:e0:78:ea:40:74:4c:42:8b:61:e8:e0:5b:08:4b:c3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘localhost’ (RSA) to the list of known hosts.
tcpa@localhost’s password: <CNTRL-C>ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla  .ssh
verify that both machines have the $HOME/.ssh directory as per above.

3.  Create the Ssh Keys

Now we need to create keys for the users to use with ssh.  I typically create the keys on the machine from which I will be doing the bulk of the ssh’ing which I will call the ssh client.
On the rsync ssh client machine:
cd .ssh
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tcpa/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): <enter>
Enter same passphrase again: <enter>
Your identification has been saved in /home/tcpa/.ssh/id_rsa.
Your public key has been saved in /home/tcpa/.ssh/id_rsa.pub.
The key fingerprint is:
fc:ec:b6:cf:e3:81:2b:9b:89:31:87:26:1e:01:7c:20 tcpa@tcpa.1on1.com
The key’s randomart image is:
+–[ RSA 2048]—-+
|E .              |
| o .             |
|  o .            |
|   o   .         |
|    .   S        |
|     . . o .     |
|    o = . + .    |
|   . + =.+.o..   |
|    . . +++++.   |
+—————–+
Co

4.  Now copy the public key to the ssh server –machine2 in this example

From machine1:
scp id_rsa.pub tcpa@ftp.1on1.com:.ssh/authorized_keys
The authenticity of host ‘ftp.1on1.com (10.100.100.22)’ can’t be established.
RSA key fingerprint is 1c:4c:a2:55:28:dd:51:10:b3:84:bd:4d:d9:fc:d2:16.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘ftp.1on1.com,10.100.100.22’ (RSA) to the list of known hosts.
tcpa@ftp.1on1.com’s password:
id_rsa.pub                                    100%  400     0.4KB/s   00:00

5.  Now Verify that we can connect without a Password

From machine1 do:
ssh -l tcpa machine2.uptimemadeeasy.com
hostname
machine2.uptimemadeeasy.com

Now, Automate the File Copy Between Machines Using Rsync Over SSH

Below is an example of using crontab to schedule the rsync.  You will likely want to test the command manually prior.  Be sure to backup the destination directory prior in the event that things do not work as you anticipate they will.
The crontab line below will copy the files from the /source/directory/path directory on machine2 to /destination/directory/path on machine1 every hour on the hour.
0 * * * * rsync -avz –bwlimit=2000 tcpa@machine2.uptimemadeeasy.com:/source/directory/path/  /destination/directory/path/
Be sure to verify that the task is working by verifying the desination directory contents are what you think they should be.

Comments

Popular posts from this blog

PostgreSQL pgBadger

PostgreSQL Pgbadger Installation On Linux

How to configure Replication Manager (repmgr) ?

What's is the difference between streaming replication Vs hot standby vs warm standby ?

PostgreSQL Sequence