Shell自动上传下载文件到SFTP服务器
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} <<EOF
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.参考文章
定时执行Linux shell脚本实现SFTP定时上传下载文件
ftp/sftp定时自动上传文件脚本(CentOS)
浅谈ftp和sftp的区别
sftp登录及命令行用法
Linux下犀利的FTP工具-lftp
Shell自动上传下载文件到SFTP服务器的更多相关文章
- ftp自动上传下载文件脚本
FTP自动登录批量下载文件 从ftp服务器192.168.1.60 上的/home/data 到本地的/home/databackup目录 #!/bin/bash ftp -v -n 192.168. ...
- windows上python上传下载文件到linux服务器指定路径【转】
从windows上传文件到linux,目录下的文件夹自动创建 #!/usr/bin/env python # coding: utf-8 import paramiko import datetime ...
- 上传下载文件到Linux服务器
转自链接:https://blog.csdn.net/drdongshiye/article/details/89430535Mac的终端是十分强大 , 可以通过命令进行上传下载下载文件夹 scp - ...
- Java上传文件至SFTP服务器
Windows搭建SFTP服务器 https://www.cnblogs.com/wangjunguang/p/9453611.html 注意点: 1.以管理员权限运行FreeSSHd 2.如果无法启 ...
- C#FTP下载文件出现远程服务器返回错误: (500) 语法错误,无法识别命令
如果下载多个文件的时候,有时候莫名其妙的出现500服务器错误,很有可能是没有设置KeepAlive 属性导致的. 出现应用程序未处理的异常:2015/1/6 11:40:56 异常类型:WebExce ...
- SecureCRT 上传/下载文件到Linux服务器
1. 安装上传/.下载软件 a) cd /tmp wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz tar zxvf lrzsz-0. ...
- paramiko向服务器自动上传下载文件
import paramikoimport os def download_from(ip,u,p): file_list=['file2',file3','file4'] file_path=&qu ...
- linux上创建ftp服务器下载文件///使用AWS服务器作为代理,下载sbt相关的包
最近觉得自己下载有些jar的速度太慢了,就在aws上下好了,然后转到我电脑上来,在aws上开了ftp服务器.结果就倒腾了一上午,作个记录,以便后面查看. 1.安装vsftpd yum -y insta ...
- linux利用sh脚本上传下载文件到ftp服务器
####本地的/app/awsm/csv2 to ftp服务器上的/awsm/#### #!/bin/sh export today=`date +%Y-%m-%d` ftp -v -n 10.116 ...
随机推荐
- mybatis缓存+aop出现的问题
在对某些特殊数据进行转换时,getOne方法后执行fieleInfoHandle进行转换,如果直接使用fixedTableData进行操作,没有后续的二次调用这样是没问题的,但是在后面当执行完upda ...
- C++ 类型转换(C风格的强制转换):
转https://www.cnblogs.com/Allen-rg/p/6999360.html C++ 类型转换(C风格的强制转换): 在C++基本的数据类型中,可以分为四类:整型,浮点型,字符型, ...
- 记录一下使用MySQL的left join时,遇到的坑
# 现象 left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论.商城里一个货物有多少评论.一条评论有多少个赞等等.但是由于对join.on.where等关键字 ...
- References in C++
When a variable is declared as reference, it becomes an alternative name for an existing variable. A ...
- 小程序中使用less(最优方式)
写惯了less/sass,但是现在开发小程序缺还是css,很不习惯. 在网上搜的教程,要么是gulp,要么就是vscode的Easy-less的插件. 传统方式 我们来对比,这两种方式的优劣. Gul ...
- 【Spring Framework】Spring入门教程(四)注册Bean到IOC容器
注册Bean到IOC容器大致分为4种: ①.包扫描+组件注解(@Controller.@Service.@Repository.@Component) 针对类是我们自己编写的情况 ②.@Bean注解 ...
- 『学了就忘』Linux服务管理 — 77、RPM包安装基于xinetd的服务的管理
目录 1.基于xinetd服务的启动管理 (1)telnet服务安装 (2)telnet服务启动 2.基于xientd服务的自启动管理 现在Linux系统中基于xinetd的服务越来越少了,但Linu ...
- Linux中的正则
目录 一.匹配规则 二.举例 一.匹配规则 * 匹配 0 或多个字符 ? 匹配任意一个字符 [list] 匹配 list 中的任意单一字符 [^list] 匹配 除list 中的任意单一字符以外的字符 ...
- [BUUCTF]PWN——axb_2019_fmt32
axb_2019_fmt32 附件 步骤: 例行检查,32位程序,开启了nx保护 本地试运行一下程序,看看大概的情况 32位ida载入 alarm(),是闹钟函数,主要功能是设置信号传送闹钟,即用来设 ...
- w4sp-lab安装
扯淡 i春秋有个答题活动,苟了个奖品,我选了一本书:<wireshark与metasploit实战指南>,里面有个配套环境,本来看着书上说使用docker搭建的,以为很简单,只需要pull ...