基于ubuntu nc指令实现远程传输文件到嵌入式设备中

背景:

最近在使用nc进行远程文件传输的时候发现在文件传输完成时,没有正确的反馈,而是界面一直停留在传输阶段,加上使用nc传输需要设置一些诸如-l、 -p等参数,于是想将这些参数包裹在sh脚本中,一键执行脚本,方便快捷,具体如下:

一、本地端:

powershell 复制代码
#!/bin/bash

# 初始化ip地址变量为空
ip_address=""
file_name=""

# 使用getopts处理-p和-f选项
while getopts p:f: option
do
  case "${option}"
  in
  p) ip_address=${OPTARG};;
  f) file_name=${OPTARG};;
  esac
done

{ cat "$file_name"; printf '\nEOF\n'; } | nc "$ip_address" 12345

二、远程端:

powershell 复制代码
file_name=" "
# 使用getopts处理-p和-f选项
while getopts f: option
do
  case "${option}"
  in
  f) file_name=${OPTARG};;
  esac
done
nc -l -p 12345 | while IFS= read -r line
do
  if [[ "$line" == *EOF* ]]; then
    pkill nc
  else
    echo "$line" >> $file_name
  fi
done
echo "file pass successfully!"

三、执行

1. 先远程端:sh receive.sh -f {文件名称}

2. 后本地端:sh server_send.sh -p {远程ip} -f {文件名称}

相关推荐
小义_6 分钟前
【RH134知识点问答题】第7章 管理基本存储
linux·运维·服务器
梁洪飞1 小时前
内核的schedule和SMP多核处理器启动协议
linux·arm开发·嵌入式硬件·arm
_运维那些事儿1 小时前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
Y1rong2 小时前
linux之文件IO
linux
Trouvaille ~2 小时前
【Linux】UDP Socket编程实战(一):Echo Server从零到一
linux·运维·服务器·网络·c++·websocket·udp
嵌入小生0072 小时前
Shell | 命令、编程及Linux操作系统的基本概念
linux·运维·服务器
-Try hard-3 小时前
Linuv软件编程 | Shell命令
linux·运维·服务器
释怀不想释怀3 小时前
Linux快捷键,软件安装启动
linux·运维·服务器
Hello World . .4 小时前
Linux:软件编程
linux·运维·服务器·vim
人间打气筒(Ada)4 小时前
k8s:CNI网络插件flannel与calico
linux·云原生·容器·kubernetes·云计算·k8s