SCP传输文件
当两台LINUX主机之间要互传文件时可使用SCP命令来实现
scp传输速度较慢,但使用ssh通道保证了传输的安全性
# 安装SCP
yum install openssh-clients -y
# 本地文件拷贝至远程
scp 本地文件路径 远程用户名@计算机IP或者计算机名称:远程目标路径
# 不写用户名也可以
scp 本地文件路径 计算机IP或者计算机名称:远程路径
# 传输目录需要
scp -r 目录路径 计算机IP或者计算机名称:远程路径
# 远程文件拷贝至本地
scp 远程用户名@计算机IP或者计算机名称:远程文件路径 本地文件路径
# 若目标路径下已经存在同名文件,会替换掉原文件,百度是否替换原文件跟命令有关,我这可以替换原文件的命令是:
# scp 文件名 目标目录
scp test.sh username@IP:/tmp
expect在scp传输中自动输入密码
expect命令见我另一篇博客或百度
#!/usr/local/bin/expect
# 上面这一行就不一样,普通的shell开头是#!/bin/bash,这里不是
# 在这种情况下,定义局部变量不能跟在普通shell中一样,像是a="bc",会报错
# 要像下面这行一样,set a bc这样才行,set a "bc"应该也可以不过我没试过
set timeout 30
spawn scp testFile root@192.168.46.101:/tmp/
expect {
"(yes/no)?"
{
send "yes\n"
expect "*assword:"
{
send "123456\n"
}
}
"*assword:"
{
send "123456\n"
}
}
expect "100%"
expect eof
# 遇到过一个问题,程序不能正常运行,原因是我把expect后的 { 放到下一行去了
但是如果有堡垒机情况就不同了
先不尝试了,自行百度吧先