Interactive Shell Script to Copy Files / Directory using SCP

May 8, 2015 | By
| Reply More

Today we have interactive shell script that will copy files / directory to source to destination. This script will allow copy multiple files and directories. Script will only work assuming you have configured ssh key based authentication between two machines.

Script will request to input destination hostname or ip address and path of destination folder. On the new line you need to provide filename or directory that need to be copied. You will be only allowed to copy one file or directory per line. When hitting enter , you will allowed to provide next file/directory. Script will exit once it receives a blank field.

#!/bin/bash
#next line prints hearer of script
echo "Interactive Script to Copy File (files) / Directory using scp"
#next line check if entered value is not null, and if null it will reask user to enter Destination Server
while [ x$desthost = "x" ]; do
#next line prints what userd should enter, and stores entered value to variable with name desthost
read -p "Destination Server Name : " desthost
#next line finishes while loop
done
#next line check if entered value is not null, and if null it will reask user to enter Destination Path
while [ x$destpath = "x" ]; do
#next line prints what userd should enter, and stores entered value to variable with name destpath
read -p "Destination Path : " destpath
#next line finishes while loop
done
#next line put null value to variable filename
filename='null'
#next line check if entered value is null, and If not null it will reask user to enter file(s) to copy
while ! [ x"$filename" = "x" ]; do
#next line prints what userd should enter, and stores entered value to variable with name filename
read -p "Path to source directory / file : " filename
#next line checks if entered value is not null, and if not null it will copy file(s)
if ! [ x"$filename" = "x" ];
then
#next line prints header
echo -n "Copying $filename ... "
#next like copy pre-entered file(s) or dir to destination path on destination server
scp -r "$filename" "$desthost":"$destpath"
#end of if
fi
#next line finishes while loop
done

shell script scp

Running the scp script

[root@TestNode1 ~]# sh scpcopyscript.sh
Interactive Script to Copy File (files) / Directory using scp
Destination Server Name : 192.168.0.2
Destination Path : /tmp
Path to source directory / file : /root/backup.txt
backup.txt 100% 0 0.0KB/s 00:00
Path to source directory / file : /root/docsdir
file2.txt 100% 0 0.0KB/s 00:00
file3.txt 100% 0 0.0KB/s 00:00
file1.txt 100% 0 0.0KB/s 00:00
Path to source directory / file :
[root@TestNode1 ~]#

 

Filed Under : SHELL SCRIPTS

Free Linux Ebook to Download

Leave a Reply

Commenting Policy:
Promotion of your products ? Comment gets deleted.
All comments are subject to moderation.