1.说明

本文提供一个Shell脚本,

可以自动连接到SFTP服务器,

然后上传或者下载指定的文件,

进而可以使用Linux的corntab命令,

定时执行脚本上传下载文件,

实现文件的同步或者备份功能。

2.FTP和SFTP的区别

一般使用FTP来上传下载文件,

但是Linux的默认是不提供FTP的,

需要额外安装FTP服务器,

而且会占用一定的VPS服务器资源。

这里建议使用SFTP代替FTP,

可以不用额外安装任何服务器端程序,

使用只有SSH的Linux服务器的时候,

开启SSH默认就开启了SFTP,

不需要单独配置就可以使用。

SFTP加密传输认证信息和数据,

相对来说会更安全。

3.安装lftp

在脚本中需要使用lftp命令来连接SFTP服务器,

如果没有需要使用root用户安装,

yum安装命令如下:

yum install lftp -y

自动上传下载文件的关键是自动输入用户名密码,

但使用ssh的工具scp、sftp和ssh不能自动输入密码,

所以这里使用lftp实现。

4.上传脚本

上传脚本uploadFile.sh内容如下:

#!/bin/bash

# SFTP配置信息

# IP

IP=10.21.19.84

# 端口

PORT=22

# 用户名

USER=yuwen

# 密码

PASSWORD=ai123456

# 需要上传的文件名

FILE=test.txt

# 需要上传的文件所在目录

CLIENTDIR=/home/yuwen/sftp/upload

# 上传到目标服务器的目录

SEVERDIR=/home/yuwen/sftp/download

lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <

cd ${SEVERDIR}/

lcd ${CLIENTDIR}

put ${FILE}

by

EOF

脚本上半部分主要配置目标服务器信息,

包括IP地址,SFTP端口,用户名,密码,

以及需要上传的文件的本地路径和远程路径。

脚本下半部分是实现自动上传的关键,

首先自动登录SFTP服务器,

然后cd切换远程目录,

lcd切换本地目录,

put把文件上传到服务器。

5.下载脚本

修改脚本uploadFile.sh内容,

把put上传命令改为get命令即可:

get ${FILE}

6.定时执行脚本

每天凌晨2点执行上传脚本:

0 2 * * * sh /home/yuwen/uploadFile.sh

查看当前的crontab任务:

crontab -l

编辑crontab任务:

crontab -e

7.参考文章

sftp shell 批量上传文件_Shell自动上传下载文件到SFTP服务器相关推荐

  1. sftp shell 批量上传文件_shell脚本进行sftp、ftp文件批量上传与下载

    SFTP传送:若使用SecureCRT,按下ALT+P开启新的会话即进行sftp操作 输入help命令,显示该SFTP提供所有的命令cd 路径 更改远程目录到"路径" lcd 路径 ...

  2. sftp shell 批量上传文件_如何在shell脚本里使用sftp批量传送文件-阿里云开发者社区...

    主要步骤如下: 1.为运行shell脚本的本地用户生成密钥对 2.将其中的公钥分发到sftp欲登录的远程服务器上 3.编写并以上面的本地用户运行shell脚本 一.生成密钥对 在shell脚本中使用s ...

  3. WEB版一次选择多个文件进行批量上传(Plupload)的解决方案

    说明:Plupload支持多种浏览器,多种上传方式! 一般的WEB方式文件上传只能使用FileUpload控件进行一个文件一个文件的进行上传,就算是批量上传,也要把文件一个一个的添加到页面,无法如 w ...

  4. shell中通过ftp批量上传文件

    为了在shell中上传文件,需要避免在控制台中通过交互的方式输入ftp的登录密码,这时要安装一个强大的ftp命令行工具:lftp,通过lftp登录ftp服务器的格式如下: lftp -u userna ...

  5. Shell自动上传下载文件到SFTP服务器

    1.说明 本文提供一个Shell脚本, 可以自动连接到SFTP服务器, 然后上传或者下载指定的文件, 进而可以使用Linux的corntab命令, 定时执行脚本上传下载文件, 实现文件的同步或者备份功 ...

  6. python paramiko并发_python paramiko 多线程批量执行指令及批量上传文件和目录

    源代码: 环境需求: 1.python3 2.paramiko pip install --upgrade pip apt-get install libssl-dev pip3 install pa ...

  7. shell上传文件到服务器,shell脚本上传文件到ftp服务器

    shell脚本上传文件到ftp服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器 ...

  8. ftp服务器批量上传文件,bat批量上传ftp文件到服务器

    bat批量上传ftp文件到服务器 内容精选 换一换 CDM支持周期性自动将新增文件上传到OBS,不需要写代码,也不需要用户频繁手动上传即可使用OBS的海量存储能力进行文件备份.这里以CDM周期性备份F ...

  9. 工作笔记1——利用bat脚本实现批量上传文件到ftp服务器

    工作笔记1--利用bat脚本实现批量上传文件到ftp服务器 问题概述 利用ftp命令实现上传文件 注意 限时功能 将共享目录映射到电脑中的某个盘符 实现断点续传 问题概述 公司中有大概225k个文件需 ...

最新文章

  1. python和java哪个-Python与Java-你首选哪个?
  2. 想要成为Linux大神,你应该和我一样这样做!
  3. xmu 1254.异或求和
  4. QT5 动态链接库的创建和使用
  5. phppage类封装分页功能_PHP封装的page分页类定义与用法完整示例
  6. 闪屏页面(Splash)开发
  7. Agilent RF fundamentals (2)- fundamental units of RF
  8. 60道计算机网络面试题(附答案,背诵版)
  9. MSDTC不可用解决办法
  10. VS2008 ---- VS2013各个版本下载地址
  11. html验证码谷歌浏览器不显示,网页不显示验证码是怎么回事?
  12. 闰年python的月份判断_C 判断闰年及指定月份有几天
  13. 四.驱动框架入门之LED(中)
  14. 英语在计算机上比汉语有优势吗,英语和汉语分别有什么优缺点?
  15. css加载中,请稍后....demo示例(整理)
  16. js 字符串数组转换成数字数组
  17. charles系列破解激活办法(最高charles4.2都可以激活)
  18. Oracle Overview
  19. 【JAVA】MANIFEST.MF / CERT.SF 中 文件SHA1-Digest计算方法
  20. 机器人素质教育,是时候普及一下了

热门文章

  1. 开源点云实时压缩方案测试
  2. SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM
  3. Qt识别输入文件后缀
  4. javascript数组排序和prototype详解
  5. 一、nginx 安装
  6. WinCE项目应用之车载导航
  7. 【UVA】11992 - Fast Matrix Operations(段树模板)
  8. [JavaWeb基础] 007.Struts2的配置和简单使用
  9. 如何设置网页自动刷新(JSP,JS,HTML)
  10. SmartDispatcher 类