经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
分享一个连接远端计算机与传输文件的脚本
来源:cnblogs  作者:Philbert  时间:2022/11/21 9:03:16  对本文有异议

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

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

用途

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

示例

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

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

脚本

脚本名称为“chaosuan.sh”:

  1. #!/bin/bash
  2. #time: 2022-10-8
  3. #email: xuranliang@hotmail.com
  4. #首先根据调试好的ssh命令修改web里的内容
  5. web=”ssh.cn-xxxxxxx.com
  6. usage() {
  7. echo "Usage: bash ${0} [-o|--option] [-r|--remote] [-l|--local]"
  8. echo "option: connect (1|c) receive (2|r) send (3|s)" 1>&2
  9. exit 1
  10. }
  11. r=" "
  12. l=" "
  13. while [[ $# -gt 0 ]]; do
  14. key=${1}
  15. case ${key} in
  16. -o|--option)
  17. o=${2}
  18. shift 2
  19. ;;
  20. -r|--remote)
  21. r=${2}
  22. shift 2
  23. ;;
  24. -l|--local)
  25. l=${2}
  26. shift 2
  27. ;;
  28. *)
  29. usage
  30. shift
  31. ;;
  32. esac
  33. done
  34. if [ ${o} == "c" ] || [ ${o} == "connect" ] || [ ${o} == "1" ]; then
  35. ssh -i id_key ${web}
  36. elif [ ${o} == "r" ] || [ ${o} == "receive" ] || [ ${o} == "2" ]; then
  37. scp -i id_key -r ${web}:/home/username/${r} ${l}
  38. elif [ ${o} == "s" ] || [ ${o} == "send" ] || [ ${o} == "3" ]; then
  39. scp -i id_key -r ${l} ${web}:/home/username/${r}
  40. else
  41. usage
  42. fi

原文链接:https://www.cnblogs.com/liangxuran/p/16909080.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号