主要步骤如下:

1.为运行shell脚本的本地用户生成密钥对

2.将其中的公钥分发到sftp欲登录的远程服务器上

3.编写并以上面的本地用户运行shell脚本

一.生成密钥对

在shell脚本中使用sftp时必须用到密钥对(公钥和私钥).可使用下列方式生成(SSH 2.X版本),这里本地用户记为:local_user:

$ ssh-keygen –d

屏幕提示:

Generating public/private dsa key pair.

Enter file in which to save the key (/home/local_user/.ssh/id_dsa):

# 按回车保存为: /home/local_user/.ssh/id_dsa,即当前用户local_user的私钥

Enter passphrase (empty for no passphrase):

# 按回车,表示读取密钥时不需要密钥的密码

Enter same passphrase again:

# 确认密钥的密码,必须和上面的输入相同

Your identification has been saved in /home/local_user/.ssh/id_dsa.

# 私钥保存信息

Your public key has been saved in /home/local_user/.ssh/id_dsa.pub.

# 公钥保存信息

The key fingerprint is:

ec:41:e8:08:38:0b:f8:1e:bc:92:98:32:fc:d7:69:7d ...

# 密钥指纹

二.分发公钥

为了使用密钥,必须将公钥分发到欲登录的远程服务器上,这里远程服务器记为remote_host,欲登录的远程用户记为remote_user

1.copy公钥到欲登录的远程服务器的远程用户的家目录下,例如:

copy id_dsa.pub到remote_host:/home/remote_user/.ssh/

若目录/home/remote_user/.ssh/不存在,请先创建之.

2.将copy来的公钥文件改名为authorized_keys

3.修改公钥文件的访问权限

chmod 644 authorized_keys

三.示例

目标:

从远程服务器remote_host:/home/remote_user/data/

传送下列文件到本地计算机的当前目录: /home/local_user/data/:

20050201

20050202

20050203

20050204

20050205

方式1: 批模式

sftp提供了一个选项-b,用于集中存放sftp命令(该选项主要用于非交互模式的sftp).因此对于上面的目标,可以生成如下的命令文件:

cd /home/remote_user/data/

lcd /home/local_user/data/

-get 20050201 .

-get 20050202 .

-get 20050203 .

-get 20050204 .

-get 20050205 .

quit

这里存为: sftp_cmds.txt

说明: get命令前加一个"-"以防止其执行错误时sftp执行过程被终止.

以下为脚本示例:

#!/bin/sh

sftp -b ./sftp_cmds.txt remote_user@remote_host

方式二:

#!/bin/sh

sftp remote_user@remote_host << EOF

cd /home/remote_user/data/

lcd /home/local_user/data/

-get 20050201 .

-get 20050202 .

-get 20050203 .

-get 20050204 .

-get 20050205 .

quit

EOF

linux脚本里使用sftp,如何在shell脚本里使用sftp批量传送文件相关推荐

  1. 如何在脚本中输入密码 linux,如何在shell脚本中为用户分配密码

    本篇文章给大家介绍的内容是关于如何在shell脚本中为用户分配密码,下面我们来看具体的内容. 我们先来看一下命令echo | passwd –stdin 例如: 使用以下命令更改shell脚本中用户j ...

  2. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件

    原标题:如何在Shell脚本中逐行读取文件 在这里,我们学习Shell脚本中的3种方法来逐行读取文件. 方法一.使用输入重定向 逐行读取文件的最简单方法是在while循环中使用输入重定向. 为了演示, ...

  3. linux停止jar程序,Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法

    废话不多说了,先给大家上代码,具体代码如下所示: #!/bin/bash cd `dirname $0` CUR_SHELL_DIR=`pwd` CUR_SHELL_NAME=`basename ${ ...

  4. linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本

    <LINUX定时执行含有DB2存储过程的SHELL脚本>由会员分享,可在线阅读,更多相关<LINUX定时执行含有DB2存储过程的SHELL脚本(6页珍藏版)>请在人人文库网上搜 ...

  5. 如何在Shell脚本中使用if-else?

    Moving ahead from our previous tutorial on arrays in shell scripts, let's understand how we can use ...

  6. linux脚本查看系统内存,二个linux下查看内存使用情况的shell脚本()

    摘要 腾兴网为您分享:二个linux下查看内存使用情况的shell脚本(),政务易,悦作业,优化大师,王者荣耀等软件知识,以及单向历app,优路教育app,kimoji,开关电源设计软件,皮皮高清影视 ...

  7. linux启动脚本springboot,Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法

    废话不多说了,先给大家上代码,具体代码如下所示: #!/bin/bash cd `dirname $0` cur_shell_dir=`pwd` cur_shell_name=`basename ${ ...

  8. linux shc shell脚本_使用shc工具加密shell脚本详解

    Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件.经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x ...

  9. SHELL/SSH基础知识(入门篇)-包含 shell 脚本语言的基本用法、 shell 脚本语言的基本用法、流程控制、函数 function、其它脚本相关工具、数组 array(欢迎留言交流)

    目录 1 shell 脚本语言的基本用法 1.1 shell 脚本注释规范 1.1.1 shell 脚本注释规范 1.1.2 执行(5种) 1.1.3 在远程主机运行本地脚本 1.1.4 检查shel ...

最新文章

  1. 20 种小技巧,玩转 Google Colab
  2. Leetcode 6
  3. php命名空间划重点
  4. 学python需要安装什么软件-学武汉Python培训课程需要安装什么软件?分享这10款...
  5. nullnullGet previous business day
  6. 【Breadth-first Search 】515. Find Largest Value in Each Tree Row
  7. 清华学霸被Facebook开除了
  8. php pcntl signal,php – 后续的pcntl_signal信号没有启动处理程序
  9. oracle调用MySQL函数,Oracle的INSTR函数MySQL实现
  10. phpstudy设置允许远程访问mysql数据库
  11. [通信] ITU-T G.729 8kb/s CS—ACELP简介
  12. i.MX6ULL终结者RS232驱动测试及RS485测试
  13. Java物联网平台后端架构构思设计
  14. python--xlsx文件的读写
  15. python一阶差分_如何用Python对数据进行差分
  16. 想转行学IT,小白如何选择靠谱的培训学校
  17. win10删除右键菜单多余项
  18. 洛谷P1526 智破连环阵
  19. Win10的几个实用技巧系列之win10和win8系统哪个好用、系统任务栏和窗口假死的解决方法
  20. 附合导线简易平差(4500PA)

热门文章

  1. 气死N个女孩子的图片
  2. 玩转keybd_event
  3. 一些不错的C++网站[秋镇菜]
  4. 经典面试题(30):以下代码将输出的结果是什么?
  5. 江小白包装设计原型_江小白品牌策划、包装设计成功的点在哪?
  6. python中range 函数_Python range()函数用法图文详解
  7. 卷积神经网络CNN(8)—— Pix2Pix Application -- Aerialmap Lane Line Detection (Pix2Pix应用:航拍图车道线检测)
  8. Adobe illustrator 论文图形编辑和排版 - 连载 1
  9. PS Raw增效工具:Adobe Camera Raw13 for mac
  10. 什么是创新?如何创新?