SFTP使用

SFTP是一种基于SSH协议的文件传输协议,提供安全的文件传输。文章详细解释了sftp命令,如get、put、cd等,以及如何使用脚本进行自动化操作,包括登录、切换目录、上传下载文件等。此外,还介绍了expect工具来封装sftp脚本,实现更复杂的交互和管理。
摘要由CSDN通过智能技术生成

sftp描述

sftp是一个交互式的文件传输协议,类似于ftp,但它进行加密传输,比ftp更安全,SFTP 是 SSH 协议的一部分

sftp命令讲解

get    远程路径                                         --下载文件 

put    本地路径                                         --上传文件

cd     路径                                                --切换远程目录到“路径”

lcd    路径                                                --切换本地目录到“路径”

dir                                                            --列出远程目录内容

mget                                                        --下载多个文件

mput                                                        --上传多个文件

pwd                                                         --显示远程计算机工作目录

send                                                        --发送一个文件

size                                                         --显示远程文件大小

bye、exit、quit、!                                  --断开sftp链接

sftp命令演示

1:下载文件 --get

sftp>get /sftpDir/remote.jsp /localDir

2:上传文件 --put 

sftp>put /localDir/local.jsp /sftpDir

sftp封装脚本

    命令讲解

spawn:                    --交互程序开始后面跟命令或者指定程序
expect:                    --获取匹配信息匹配成功则执行expect后面的程序动作
send:                       --用于向进程发送字符串  换行符为确认结束(\r)
interact:                   --允许用户交互
exp_continue:         --在expect中多次匹配就需要用到
send_user:              --用来打印输出 相当于shell中的echo
exit:                         --退出expect脚本
eof:                         --expect执行结束 退出
set timeout:            --设置超时时间(单位是:s ; 20s:20秒后超时;-1 表示永不超时)

  脚本演示

sftp_file()
{
    expcmd=`which expect`
	$expcmd <<EOF
	spawn sftp $userName@$ip
	expect {
	    "yes/no" {send "yes\r" ; exp_continue;}
		"*password:" {send "${password}\r"}
	
	}
	expect "sftp>"
	send "lcd path\r" # 切换至本地目录
	expect "sftp>"
	send "cd path\r"  # 切换至ftp目录
	expect "sftp>"
	set timeout -1    #  设置超时时间 -1表示永不超时 n表示多少秒
	send "put fileName\r" # 将本地文件上传ftp服务
	
	expect "sftp>"
	send "ls -l fileName\r" #查看ftp上文件
	expect "sftp>"
	send "bye\r"
	expect eof
	
	EOF
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值