Let's we have two Ubuntu servers:
Server-1: IP: 1.2.3.10 (source server )
user account name: user1
user account password: user1
Server-2: IP: 1.2.3.11 (Destination server)
--------------------------------------------------
On Server-1
1. Install
openssh-server. You may install through terminal.
2. configure
openssh-server if needed, else leave it to the default configuration.
On Server-2
1. Install
openssh-server and
sshpass through the terminal.
2. Change the current directory to
$USER/Desktop/backup
3. Create the directory "
data"
3. Create a password file "
pw.txt" with following content.
"pw.txt" content
user1
4. Create a shell script file with the name "
backup.sh" with following content.
backup.sh content
sshpass -f pw.txt scp -r user1@1.2.3.10:data/* /home/server2/backup/data/
5. Make sure pw.txt and backup.sh files are in the same directory.
6. Execute following command in the terminal
bash backup.sh
This will copy all the content from
user1@1.2.3.10:data/ path on Server-1 to
/home/server2/backup/data/ directory on Server-2.
--------------------------------------------------
Now its time to schedule the
bash backup.sh command to execute in a specific time interval
Make sure you have gone thorugh
crontab manual page or
gnome-schedule GUI. You may also go through
this page to know more details on
crontab and
gnome-schedule.
1. Open terminal
2. Enter following command
crontab -e
3. If you are executing this command for the first time, it will ask for the choice to open an editor.
4. In the editor add following line at the end of the file.
0,12 * * * * bash /home/server2/backup/backup.sh
5. Save and exit the editor.
You can also use
gnome-schedule command to schedule the "
backup.sh"
-Thats all