shell脚本使用scp传输文件

时间:2020-03-05 15:31:48  来源:igfitidea点击:

该脚本将请求输入目标文件夹的目标主机名或者IP地址和路径。
在新行上,我们需要提供需要传输的文件名或者目录。
我们将只允许每行复制一个文件或者目录。
击中Enter时,我们将允许提供下一个文件/目录。
脚本将退出后收到空白字段。

#!/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

运行SCP脚本

[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 ~]#