基于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 {文件名称}

相关推荐
wishchin3 分钟前
Jetson Orin Trt: No CMAKE_CUDA_COMPILER could be found
linux·运维·深度学习
ArrebolJiuZhou9 分钟前
03 rtp,rtcp,sdp的包结构
linux·运维·服务器·网络·arm开发
4032407312 分钟前
Ubuntu/Jetson 通用:NVMe 硬盘分区、挂载及开机自动挂载完整教程
linux·运维·ubuntu
田地和代码15 分钟前
linux应用用户安装jdk以后 如果root安装hbase客户端需要jdk还需要再次安装吗
java·linux·hbase
乔碧萝成都分萝16 分钟前
二十四、Linux如何处理中断
linux·驱动开发·嵌入式
输出输入16 分钟前
那鸿蒙应用的后端服务器用什么语言编写
服务器·华为
真的想上岸啊18 分钟前
2、刷机+mobaxterm登录
linux
物理与数学24 分钟前
Linux 内核 address_space与页缓存
linux·linux内核
weixin_4896900230 分钟前
MicroSIP自定义web拨打协议
服务器·前端·windows
yuanmenghao32 分钟前
Linux 配置Samba,Windows登录,开机自动映射登录
linux·运维·windows·操作系统·samba