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

Windows下的sftp工具采用putty工具包中的psftp.exe,下载地址:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

命令行下输入“psftp -h”可以查看psftp的用法。

PuTTY Secure File Transfer (SFTP) client
Release 0.59
Usage: psftp [options] [user@]host
Options:
-V        print version information and exit
-pgpfp    print PGP key fingerprints and exit
-b file   use specified batchfile
-bc       output batchfile commands
-be       don't stop batchfile processing if errors
-v        show verbose messages
-load sessname Load settings from saved session
-l user   connect with specified username
-P port   connect to specified port
-pw passw login with specified password
-1 -2     force use of particular SSH protocol version
-4 -6     force use of IPv4 or IPv6
-C        enable compression
-i key    private key file for authentication
-noagent disable use of Pageant
-agent    enable use of Pageant
-batch    disable all interactive prompts

可以看到,我们能够通过导入一个脚本文件sftp.txt来自动完成sftp下载文件。命令格式如下:

psftp remotehost -l username -pw password < sftp.txt

现在的问题是,远程服务器的备份文件采用的文件名是自动创建的,存放在/logs目录,文件名格式为“dumpyyyymmdd.log”,比如dump20070310.log,那么这个每天变化的文件名称如何能传送到脚本文件sftp.txt中呢?

只好google了,终于找到一个可以将date/time用于批处理文件的程序realdate.com,下载地址:
http://www.huweb.hu/maques/realdate.htm

好了,现在开始写批处理脚本sftp.bat。

@echo off

# 写psftp需要的脚本文件sftp.txt
for /f %%i in ('realdate.com /d') do (set remotelogname=%%i)
echo cd /logs > sftp.txt
echo get dump%remotelogname%.log >> sftp.txt
echo bye >> sftp.txt

# 写日志文件sftp.log
echo --------------------------------------- >> sftp.log
for /f %%i in ('realdate.com /f="CCYY-MM-DD"') do (set locallogdate=%%i)
for /f %%i in ('realdate.com /f="hh:mm:ss"') do (set locallogtime=%%i)
echo %locallogdate% %locallogtime% >> sftp.log
psftp remotehost -l username -pw password < sftp.txt > sftp.log
echo. >> sftp.log
echo done. >> sftp.log

将psftp.exe、realdate.com和sftp.bat放在同一文件夹中,为sftp.bat建立计划任务,半夜就可以安心睡觉了。

----sampe 1简单版本

这里的实例的两个文件是:main.bat ; ftptmp.bat

main.bat 的内容就很简单:

  1. ftp -n -s:"ftptmp.bat"

ftptmp.bat的内容如下: ()

open $ftphost

user $username $password

cd $filepath

get $filename

bye

exit

命令中的变量需自行替换。

ps:  注意文件的命名不要是系统自带文件名,如ftp.bat ,这样会导致bat 文件死循环

参考http://blog.csdn.net/oscar999/article/details/45074679

####一个小BUGwindows里面的批处理命令不停地处理同一条命令

参考https://www.cnblogs.com/flypiggy/p/5098529.html

最近在设置路由表的时候,为了方便,做了一个批处理

route.bat

route delete 0.0.0.0
route delete 10.25.0.0
route ADD 10.25.0.0 MASK 255.255.0.0 10.25.15.250 METRIC 1
route ADD 0.0.0.0 MASK 0.0.0.0 192.168.3.43 METRIC 1

结果运行之后,只会不停地执行route delete 0.0.0.0.

百度了一下,发现是批处理文件的名称跟windows系统保留名重复,遂改之,然后就好了

再笨,也要飞得更高!!--Flypiggy
 

#########2

ftp/sftp自动上传、下载脚本

            标签:               path脚本userserver                     
2012-02-13 18:50             5160人阅读             评论(0)             收藏              举报        
本文章已收录于:

 

             分类:        
SHELL                                                        

版权声明:本文为博主原创文章,转载请写明出处。

ftp脚本:

  1. #! /bin/sh
  2. server=172.23.3.150
  3. remotedir=/users/tmp/
  4. filename=test.txt
  5. ftp -in << EOM
  6. open $server
  7. user username password
  8. bin
  9. cd $remotedir
  10. put $filename
  11. bye
  12. EOM
#! /bin/sh

server=172.23.3.150
remotedir=/users/tmp/
filename=test.txt ftp -in << EOM
open $server
user username password
bin
cd $remotedir
put $filename
bye
EOM

sftp脚本:

  1. #!/bin/sh
  2. HOST=172.23.3.150
  3. USER=root
  4. PASSWORD=1234rewq
  5. FILENAME=test.txt
  6. LOCAL_PATH=/home/ligt/WindRiver/
  7. REMOTE_PATH=/users/tmp/
  8. lftp -u $USER,$PASSWORD sftp://$HOST << EOM
  9. lcd $LOCAL_PATH
  10. cd $REMOTE_PATH
  11. put $TARGET
  12. bye
  13. EOM
  14. echo "Success!"
#!/bin/sh

HOST=172.23.3.150
USER=root
PASSWORD=1234rewq
FILENAME=test.txt
LOCAL_PATH=/home/ligt/WindRiver/
REMOTE_PATH=/users/tmp/ lftp -u $USER,$PASSWORD sftp://$HOST << EOM
lcd $LOCAL_PATH
cd $REMOTE_PATH
put $TARGET
bye
EOM echo "Success!"

转:Windows下用sftp自动下载文件的更多相关文章

  1. windows下使用tftp工具下载文件到开发板(linux)

    1.下载tftp工具,也可以上CSDN找个免费0积分的 http://www.52z.com/soft/11886.html 2.确保开发板和windows在同一网段 比如192.168.101.*段 ...

  2. 【Linux系列】-Linux中用shell脚本从SFTP服务器下载文件

    银企直连的电子回单接口中,部分银行使用sftp服务作为文件服务器,通常只保留N天的文件内容,企业未在规定的时间范围下载文件之后就不能下载了,那么有一个自动下载的脚本岂不美滋滋. Linux安装SFTP ...

  3. 11、只允许在主目录下上传和下载文件,不允许用putty登录

    创建用户xiao,   使其只允许在用户主目录 (/var/www/html)下上传和下载文件,不允许用putty登录 (为了安全起见,不给过多的权限) 1.创建xiao用户 [root@localh ...

  4. 转 windows下安装pycharm并连接Linux的python环境 以及 windows 下notepad ++编辑 linux 的文件

    ######sample 1:windows下安装pycharm并连接Linux的python环境 https://www.cnblogs.com/junxun/p/8287998.html wind ...

  5. 安装选择msi格式还是zip(windows下Nodejs zip版下载安装及环境变量配置)

    安装选择msi格式还是zip((windows下Nodejs zip版下载安装及环境变量配置)) -----以node.js 安装为例: 1,外观对比: ✿ 简单介绍一下node的作用: • node ...

  6. windows下ftp上传下载和一些常用命令

    先假设一个ftp地址 用户名 密码 FTP Server: home4u.at.china.com User: yepanghuang Password: abc123 打开windows的开始菜单, ...

  7. [django]windows下用Django,静态文件请求失败,出现UnicodeDecodeError

    问题:windows下用Django,静态文件请求失败,出现UnicodeDecodeError:'utf-8' codec can't decode byte 0xb0 in position 1: ...

  8. windows下如何打开.sketch的文件

    1 .sketch的文件只能在苹果mac上支持的一种文件格式,现在越来越多的设计师喜欢用.sketch 2 windows下如果想打开.sketch文件,去Microsoft store 找一个Lun ...

  9. windows上python上传下载文件到linux服务器指定路径【转】

    从windows上传文件到linux,目录下的文件夹自动创建 #!/usr/bin/env python # coding: utf-8 import paramiko import datetime ...

随机推荐

  1. MySQL python组件安装

    可使用pip进行安装 pip install MySQL-python 如出现以下错误 _mysql.c::: 错误:my_config.h:没有那个文件或目录 _mysql.c::: 错误:mysq ...

  2. Eclipse/MyEclipse中常用快捷键总结

    1.格式化代码: Ctrl+Shift+F; 2.自动生成get/set方法:Shifi+Alt+S+R(按下空格是选中). 3.自动生成toString方法:Shifi+Alt+S+S(按下空格是选 ...

  3. VNC VIEWER的使用集锦

    关于颜色深度的问题, 今天用VNC Viewser ,连上去之后,发现色彩可能只有8或者16位 然后修改了 sever的depth,也不好使, 于是,就修改了 client的 colourlevel ...

  4. 使用CFile生成log文件的方法

    下面实例是在退出程序点击退出按钮时,在主程序的根目录下生成一个Log记录,用来记录程序的退出时间,具体实现代码与调试代码如下: void CDebugDlg::OnClose(){ // TODO: ...

  5. leetcode415---字符串大数相加

    Given two non-negative numbers num1 and num2 represented as string, return the sum of num1 and num2. ...

  6. IoC容器Autofac正篇之解析获取(六)

    解析获取的方式有如下几种: Resolve class Program { static void Main(string[] args) { var builder = new ContainerB ...

  7. 如何复原Eclipse的Package Explorer

    重新设置,复位透视图吧这样的方法最简便window--->reset perspective 你会喜欢这个操作的

  8. Hibernate写入Oracle Date类型处理

    Hibernate写入Oracle数据库时,数据库设计字段为Date类型时,只能保存年月日,不能保存时分秒,如果要保存时分秒,需修改Hibernate.cfg.xml文件 <property n ...

  9. mysql innobackupex备份工具

    先简单介绍一下这个工具:innobackupexinnobackupex比xtarbackup有更强的功能,它整合了xtrabackup和其他的一些功能,他不但可以全量备份/恢复,还可以基于时间的增量 ...

  10. HttpWebRequest 抓取页面异常处理办法

    抓取页面异常处理办法 public static string GetHtmlTest(string URI) { string fullhtml = null; while (true) { try ...