scp 'ad port ' 22 问题解决
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,在写一个scp推送文件脚本的时候遇到的问题脚本# cat test.sh#!/bin/bashIP=`head -1 hosts.txt|tail -1|awk -F" " '{print $1}'`
千家信息网最后更新 2025年12月02日scp 'ad port ' 22 问题解决
在写一个scp推送文件脚本的时候遇到的问题
脚本
# cat test.sh#!/bin/bashIP=`head -1 hosts.txt|tail -1|awk -F" " '{print $1}'`PORT=`head -1 hosts.txt|tail -1|awk -F" " '{print $2}'`scp -P ${PORT} -r $1 ${IP}:/tmp执行结果
# sh test.sh /tmp/yum.log'ad port '22lost connection
hosts.txt文件内容
# cat hosts.txt 192.168.0.103 22
原因分析
开启shell调试选项,执行结果如下
# sh -x test.sh /tmp/yum.log++ awk '-F ' '{print $1}'++ tail -1++ head -1 hosts.txt+ IP=192.168.0.103++ awk '-F ' '{print $2}'++ tail -1++ head -1 hosts.txt+ PORT=$'22\r'+ scp -P $'22\r' -r /tmp/yum.log 192.168.0.103:/tmpyum.log'ad port '22lost connection奇怪为什么会PORT=$'22\r',百度$'\r'遇到这种问题还不少,\r是windows的换行符,问题可能出在这里hosts.tx文件是我从windows下写的,而后上传到linux;由于$2是最后一个字段所以$2包含了\r
解决办法
方法一:在hosts.txt文件内容的每一行后添加一个空格
方法二:安装dos2unix
# yum install dos2unix -y...# dos2unix hosts.txt dos2unix: converting file hosts.txt to UNIX format ...
再次执行脚本成功
# sh -x test.sh /tmp/yum.log ++ awk '-F ' '{print $1}'++ tail -1++ head -1 hosts.txt+ IP=192.168.0.103++ awk '-F ' '{print $2}'++ tail -1++ head -1 hosts.txt+ PORT=22+ scp -P 22 -r /tmp/yum.log 192.168.0.103:/tmpyum.log
文件
问题
脚本
内容
方法
结果
成功
一行
再次
办法
原因
原因分析
字段
换行符
时候
空格
分析
推送
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北生活中小学生网络安全
在线网络技术服务项目
数据库数据按日期迁移
二级语言类和数据库类
歌曲管理系统数据库
辅助管理服务器访问端口软件
猎魂觉醒服务器人数
聚合物材料物性数据库
江西省网络安全竞赛试题答案
车载安卓系统软件开发
计算机网络技术基础实训
网络安全教育周策划
软件开发c还是c
公安开展国家网络安全周
批量直播服务器
数据库安全性的不足之处
企业管理器怎么切换数据库
法信是常用的法律法规数据库
网络安全法制作文350字
网络安全主题画作
无线传感器网络技术题目
青少年网络安全平台
iso是什么软件开发的
网络安全员比赛
济南计算机软件开发平台
东软的财务软件开发助理
mysql数据库更新数据的语句
一起长知识之国家网络安全特辑
网络安全行业上市龙头
miit网络安全与云管理