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

相关推荐
Lueeee.17 分钟前
具体掌握字符设备驱动
linux
HIT_Weston42 分钟前
68、【Ubuntu】【Hugo】搭建私人博客:方案分析(二)
linux·运维·ubuntu
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [fs]ext4
linux·笔记·学习
程序员老舅1 小时前
C++ STL 算法:从原理到工程实践
linux·c++·stl·c/c++·数据结构与算法
chenyuhao20241 小时前
Linux系统编程:线程概念与控制
linux·服务器·开发语言·c++·后端
Pyeako2 小时前
MySQL基础知识&Linux导入导出数据
linux·数据库·mysql·sql查询·sql分类
prettyxian2 小时前
【linux】进程概念(1)PCB、系统调用与 proc 目录全解析
linux·运维·服务器
YJlio2 小时前
Streams 学习笔记(12.2):看见 NTFS 隐藏的备用数据流(ADS)
服务器·笔记·学习
霜雪i2 小时前
Linux MD5
linux·服务器
取加若则_2 小时前
Vim基本操作
linux·编辑器·vim