Hey,吃完饭多陪陪家人吧!

通过sftp备份网站(用lftp传输备份文件)

   

之前介绍过百度云网盘备份网站文件的方式,但是不知道是不是百度推出百度会员的原因,上传速度越来越慢,甚至经常出现CALL API ERROR。所以,今天再介绍另一种备份方式:通过SFTP备份网站(用lftp传输备份文件),如果网站数据比较大可以买一些大硬盘的vps储存备份文件。

这种方式通过sftp连接另一台专门用来备份的vps(在vps上用sftp传输不需要安装ftp服务器,比较方便,但是可能安全性比ftp传输低一点吧)。

sftp可以通过以下命令登录:

  1. sftp -oPort=端口 用户名@IP
  2. #例子:
  3. sftp -oPort=22 admin@168.168.168.168

但是,这样并不能将密码一起输入直接登录。

毕竟用脚本备份追求的就是自动化嘛,所以我就采用另外一种登录方式:

用lftp命令登录

  1. lftp sftp://admin:password@168.168.168.168:22
  2. #或者:
  3. lftp -u admin,password sftp://168.168.168.168:22

下面先介绍几个常用的lftp命令(转自http://i.linuxtoy.org/docs/guide/ch42s04.html):

大多数图形界面的 ftp客户端,都有两栏窗口,一栏为本地目录,一栏为远程目录。lftp 也采用这种方式工作,只不过没有使用图形界面直观的显示

命令 本地 远程
显示工作目录 lpwd pwd
切换目录 lcd cd
显示文件列表 !ls cls
!ls -l ls
  • 其中, ! 表示执行本地命令,lftp中没有与 ls 对应的本地命令 lls, 所以要使用 !ls 显示本地目录文件

使用以上命令确认当前工作目录的情况。以下命令用于从本地目录上传,或者从远程目录下载:

下载 上传
单个文件 get put
多个文件 mget mput
多线程 pget
目录 mirror mirror -R
  • lftp 配置文件 ~/.lftp/rc 中设置 pget 使用的线程数
    1. set pget:default-n 5

在远程目录中,可以使用以下命令操作文件

统计文件大小 du
移动、重命名 mv
删除 rm
创建文件夹 mkdir
删除文件夹 rmdir

使用 exit 命令退出 lftp(也可以使用bye命令~)

 

登录成功之后便进入对应目录上传文件

  1. lcd /data/local  #进入本地目录
  2. cd /data/remote  #进入远程目录
  3. put backup.zip   #上传backup.zip到远程vps

lftp

 

下面是上传的脚本:(可自行修改,添加在上次发布的备份脚本的最后面)

  1. lftp -u USER,PASS sftp://IP:22<< EOF     #登录sftp
  2.  cd /backup                                   #进入远程目录:backup
  3.  lcd /local//backup                           #进入本地目录;local//backup
  4.  mkdir backup_$(date +"%Y%m%d")               #在远程目录创建文件夹
  5.  cd backup_$(date +"%Y%m%d")                  #进入远程目录的文件夹
  6.  put data_$(date +"%Y%m%d").zip               #上传
  7.  put web_$(date +"%Y%m%d").zip
  8.  bye                                          #断开连接
  9.  EOF
  10.  echo "upload competed~"
未经允许不得转载:Rising Sun's Blog » VPS / 建站 » 通过sftp备份网站(用lftp传输备份文件)
标签:
评论 0
 
 
发表评论