分享一个连接远端计算机与传输文件的脚本
2023-03-20 15:28:46 时间
分享一个连接远端计算机与传输文件的脚本
用了一个月超算,由于本地是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
相关文章
- iOS15重要功能推迟上线,苹果被全网怼怕了
- 用了iOS,为什么就不愿意换安卓了?
- iOS 15对比iOS 14:升完就后悔!
- 用了这么多年iPhone,竟然不会长截图?两种方法教你实现
- 真香警告?iPhone 13再曝三个好消息
- 苹果 iOS/iPadOS 15 开发者预览版 Beta8 发布
- 数据结构之LinkedList底层实现和原理详解
- iPhone的“其他”怎么清理?四个方法教你有效清理iPhone储存空间
- 面对海量需求,该如何抓好重点做设计?
- 苹果iOS15正式版下月发布,iOS14用户怎么办,说一点看法
- 电脑弹窗广告太烦人,教你如何彻底解决
- 看了介绍就心动的即时渲染UI,到底有多强大?
- 零基础 UI 入门(一):解析UI设计概念和就业形势
- 研究了1000多个案例,发现用户体验设计能细化为这 12 个步骤
- 大厂的设计细节有多精细?来看 QQ 浏览器的实战案例!
- iOS 15 beta 7 发布,更新了......
- 如何写出一份大家都认可的交互说明文档?
- 如何锁定用户的核心需求?试试这个「层次分析法」!
- 苹果 iOS 15/iPadOS 15 开发者预览版/公测版 Beta 7 发布
- 手机用满5年已是极限,当出现这4类情况,别犹豫该更新换代了