连接远端计算机与传输文件的脚本

IT技术2年前 (2022)更新 IT大王
0

分享一个连接远端计算机与传输文件的脚本

用了一个月超算,由于本地是linux系统,需要用到ssh命令连接远端计算机,需要用到scp命令进行文件传输。
但是连接远端的命令太复杂,于是我写成了一个bash脚本,使用起来非常方便。

用途

将ssh和scp命令整合,可以连接特定的远端计算机,或者收发文件。
该脚本共设置了三个选项
-o--option 可以选择send,receive和connect三种模式,前两种将调用scp命令传输文件,后一种将使用ssh连接远端
-l--local 后面加本地文件夹或者本地文件名。如果包含“?”等模糊匹配的字符需要加引号。在receive模式下必填该选项。
-r--remote 后面加远端文件名或者远端文件夹。如果包含“?
”等模糊匹配的字符需要加引号。在send模式下必填该选项。

示例

在工作目录下提前准备好两个文件:一个文件是脚本bash文件“chaosuan.sh”,第二个是与远端计算机连接的密钥文件“id_key”

# 脚本的使用方法(以下方式均可)
bash chaosuan.sh -h 
bash chaosuan.sh --help
# 输出结果为
# Usage: bash chaosuan.sh [-o|--option] [-r|--remote] [-l|--local]
# option: connect (1|c) receive (2|r) send (3|s)
# 连接远端计算机(以下方式均可,类似ssh命令)
bash chaosuan.sh --option connect 
bash chaosuan.sh -o c
bash chaosuan.sh -o 1 
# 发送本地文件到远端(以下方式均可,类似scp命令)
bash chaosuan.sh --option send -l localfile_or_localdir -r remotefile_or_remotedir 
bash chaosuan.sh -o s -l localfile -r remotefile 
bash chaosuan.sh -o 3 -l localfile 
# 接收远端文件到本地(以下方式均可,类似scp命令)
bash chaosuan.sh --option receive  -r remotefile_or_remotedir -l localfile_or_localdir
bash chaosuan.sh -o r  -r remotefile -l localfile 
bash chaosuan.sh -o 2 -r remotefile 

脚本

脚本名称为“chaosuan.sh”:

#!/bin/bash
#time:  2022-10-8
#email: xuranliang@hotmail.com
#首先根据调试好的ssh命令修改web里的内容
web=”ssh.cn-xxxxxxx.com“
usage() {
    echo "Usage: bash ${0} [-o|--option] [-r|--remote] [-l|--local]"
    echo "option: connect (1|c) receive (2|r) send (3|s)" 1>&2
    exit 1
}
r=" "
l=" "
while [[ $# -gt 0 ]]; do 
    key=${1}
    case ${key} in 
        -o|--option)
            o=${2}
            shift 2
            ;;
        -r|--remote)
            r=${2}
            shift 2
            ;;
        -l|--local)
            l=${2}
            shift 2
            ;;
        *)
            usage 
            shift
            ;;
    esac
done
if [ ${o} == "c" ] || [ ${o} == "connect" ] || [ ${o} == "1" ]; then
  ssh -i id_key ${web}
elif [ ${o} == "r" ] || [ ${o} == "receive" ] || [ ${o} == "2" ]; then
  scp -i id_key -r ${web}:/home/username/${r} ${l}
elif [ ${o} == "s" ] || [ ${o} == "send" ] || [ ${o} == "3" ]; then
  scp -i id_key -r ${l} ${web}:/home/username/${r}
else 
  usage
fi
© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章