scp ${script_path}/jq-linux64 ${CUR_USER}@${node}:${jq_path} 改为不支持免密scp 传输文件 交互输入密码
时间: 2023-11-01 16:38:51 浏览: 40
可以将命令改为使用sshpass命令来实现交互式输入密码进行SCP传输文件。具体命令如下:
sshpass -p "password" scp ${script_path}/jq-linux64 ${CUR_USER}@${node}:${jq_path}
其中,将"password"替换为实际的目标主机密码即可。
相关问题
:~/wgc/BA1005_Platform/build_linux/bin/ARM/Debug$ scp -r /home/maccura/wgc/BA1005_Platform/build_linux/bin/ARM/Debug/cms_linux.out root@10.2.50.50:/root/
这是一个Linux命令,它的作用是将本地路径为“/home/maccura/wgc/BA1005_Platform/build_linux/bin/ARM/Debug/cms_linux.out”的文件夹及其内容复制到远程主机10.2.50.50的/root/目录下。其中“-r”表示递归复制整个文件夹,“root”是远程主机的用户名。
#! /bin/bash if [ -z $1 ];then echo -e "\e[31m ======Missing running path====== \e[0m" read -p "Pleace Enter the Path Needed: " var1 elif [ -z $1 ]; then var1=$1 fi caseNo=0 passNo=0 curDir=`pwd` DATE=`date +%y%m%d` remote_user="tianrzh" remote_host="szvtg1-01" path="/argus03/tianrzh/NE/${DTAE}" scp -r $remote_user@$remote_host:$var1/NEABT_FAIL.log $path Fail="$path/NEABT_FAIL.log" cat ${Fail} | sed 's/.*\./$path/' >> $path/casefile cat $path/casefile | while read line do filename=${line##*/} dirname=${line%/*} mkdir -p "$path/$line" scp -r $remote_user@$remote_host:$var1/$line/*.log $path/$line done echo "所有文件已传输到本地服务器!"哪里出错了?
这段代码存在一些语法错误和逻辑问题。以下是一些需要修正的问题:
1. 第2行的 `if` 和第4行的 `elif` 条件是一样的,应该将第4行改为 `else`。
2. 第6行缺少一个空格,应该为 `case No=0`。
3. 第7行也缺少一个空格,应该为 `pass No=0`。
4. 第8行的 `DTAE` 变量未定义。
5. 第10行的 `$path` 应该被双引号包围,以便正确地展开变量。
6. 第11行的 `sed` 命令中的单引号将 `$path` 作为字符串字面量而不是变量,应该使用双引号。
7. 第11行的 `>>` 操作符使用错误,应该为 `>`。
8. 第13行的变量 `line` 应该被双引号包围,以便正确地展开变量。
9. 第14行的 `mkdir` 命令中 `$line` 应该被双引号包围,以便正确地展开变量。
10. 第15行的 `scp` 命令中 `$line` 应该被双引号包围,以便正确地展开变量。
修正后的代码如下:
```bash
#! /bin/bash
if [ -z $1 ]; then
echo -e "\e[31m======Missing running path======\e[0m"
read -p "Please Enter the Path Needed: " var1
elif [ -z $1 ]; then
var1=$1
fi
caseNo=0
passNo=0
curDir=`pwd`
DATE=`date +%y%m%d`
remote_user="tianrzh"
remote_host="szvtg1-01"
path="/argus03/tianrzh/NE/${DATE}"
scp -r $remote_user@$remote_host:"$var1/NEABT_FAIL.log" "$path"
Fail="$path/NEABT_FAIL.log"
cat "$Fail" | sed "s/.*\./$path/" > "$path/casefile"
cat "$path/casefile" | while read line; do
filename="${line##*/}"
dirname="${line%/*}"
mkdir -p "$path/$dirname"
scp -r $remote_user@$remote_host:"$var1/$line/*.log" "$path/$line"
done
echo "所有文件已传输到本地服务器!"
```
请注意,这段代码的实际功能和正确性仍需要根据需求进一步验证。