Feelings

I am sailing ...

  • Increase font size
  • Default font size
  • Decrease font size
首页 日志 学习笔记 linux下自动sftp下载文件

linux下自动sftp下载文件   分享到新浪微博  

E-mail Print
User Rating: / 2
PoorBest 

远程服务器是linux操作系统,没有ftp服务,可以ssh,数据库每天2:00会自动创建一个备份文件,本地计算机是linux操作系统,希望用sftp每天3:00下载远程服务器上的备份文件。

上篇文章贴出后,有高手提示可以用lftp解决,查了一下,lftp也有了windows版本,并且支持sftp,不过,这个需求的重点是每天要取以当天日期命名的文件,应该是如何在脚本中自动更新文件名称,而sftp的工具并不是首要重点,只要能支持非交互处理就行。

当然,环境转到linux以后,lftp就是首选了,可以用以下命令执行:

lftp -f scriptfile

首先,来看看sftp.sh脚本:

#!/bin/bash 

# 取得当天的日期

tt=`date` # 这个日期时间用于记录在日志中
yy=`date +%Y` # Year yyyy
mm=`date +%m` # Month mm
dd=`date +%d` # Day dd

# 写批处理脚本sftp.scr
echo "open sftp://remotehost" > sftp.scr
echo "user username password" >> sftp.scr
echo "cd /logs" >> sftp.scr
echo "get dump"$yy$mm$dd".log" >> sftp.scr
echo "exit" >> sftp.scr

# 写日志文件
echo "------------------------------------" >> sftp.log
echo $tt >> sftp.log
lftp -f sftp.scr
echo "done." >> sftp.log

这样,把sftp.sh加入到crontab就可以了。不过,直接执行sftp.sh写的日志sftp.log中不会包含lftp执行时发现的错误信息,比如没有远程文件等,所以,要把lftp的运行情况加入sftp.log,需要执行这样的命令:

sftp.sh 2>>sftp.log

这样,检查sftp.log就可以看到一些简单的信息了。

如:

------------------------------------
2007年 03月 12日 星期一 09:36:00 HKT
get: 访问失败: No such file (dump20070312.log)
done.

 

 


琴声再起 - 赵伟戍 & 吴昊

In order to view this object you need Flash Player 9+ support!

Get Adobe Flash player

Powered by RS Web Solutions

In order to view this object you need Flash Player 9+ support!

Get Adobe Flash player

Powered by RS Web Solutions

弟兄们,还记得小兔子和昊子的吉他组合么?一起来听听当年他们的歌声吧!


Joomla 1.5模板