windows下定时利用bat脚本实现ftp上传和下载

前言:

工作中可能会遇到以下情况,利用windows作为中转,来实现两台linux服务器的文件传输。

 

实现步骤:

1、FTP上传和下载的bat脚本。

脚本分为两部分:可执行bat脚本和ftp命令文件;

可执行bat脚本:

1
2
@echo off
ftp -s:D:\ftp\ftp.txt

 ftp命令ftp.txt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
open 192.168.1.166
ftp-user
passwd
prompt off
lcd D:\ftp
cd /home/myftp
mget *
close
open 10.10.12.12
ftp-user<br>passwd
lcd D:\ftp
cd /home/myftp
mput *
prompt on
bye
quit

 2、加入Windows定时任务(网摘):

【定时任务|开机启动】Windows Server 2008/2012 计划任务配置(任务计划程序)每分钟执行BAT

打开计划任务快捷方式(在 “管理工具”内):

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Task Scheduler.lnk

很多人在问我:

1、Windows Server 2008 计划任务在哪里配置?

2、Windows Server 2008 可以配置每分钟或是每小时执行我的任务吗?

答案是:可以!

首先Windows Server 2008不同于其他服务器操作系统和Windows Server 2003有着很大的区别,计划任务的名称是“任务计划程序”不在控制面板里,而是在“管理工具”里。由于服务器需要做些任务,定时执行,自己写程序吧,麻烦,所以采用BAT进行代替操作,网络上很多人都在说每分钟执行怎么配置,今天我们就配置一下。

 

1、打开“任务计划程序”–> 点击“任务计划程序库”在右则会看到操作项里有“创建基本任务”和“创建任务”如图所示:

 

2、点击“创建任务”后如图所示:填写好相应的名称和勾选好必要的条件

 

3、选择“触发器”选项,点击“新建”,创建任务执行时间,“重复任务间隔”这个选择后,后面有时间选择,是每小时,还是每分,可自己选择后再修改时间,再确定。

特别说明:我差点被骗了,认为Windows计划任务是精确不到分钟级别的,主要是看到“重复时间间隔(P)”右边没有“1分钟”选项,如下图所示:

其实,它除了下拉选择外,还可手动修改时间值,比如上面的“1分钟”!!!

 

4、再来配置需要执行的“操作”,就是选择所写的程序或是BAT文件,这里很重要的配置是选择BAT文件后,在“起始于(可选)”这里一定要填写相应执行程序或是BAT文件的所在目录,要不然是执行不成功的。

 

5、添加后,列表栏中会出现添加的计划任务。

 


 

如何开机启动?

如果想开机启动.bat文件,只要在“新建触发器”时,“开始任务”下列框选择“启动时”即可!

 


 

如何执行PHP脚本?

参考如下图所示:

 

 

 

利用ftp命令+bat程序实现本地数据定时备份到服务器

 

需求

在组内服务器上搭建数据备份服务器,要求实验用电脑可以定时(如12小时/24小时等)备份所选文件夹的数据文件。备份位置在服务器D盘上建立Backup文件夹。

解决方案:rar命令+ftp命令+bat批处理程序+windows计划任务

  1. 利用rar命令在本地打包备份文件夹,并存放到一个本地备份文件夹;
  2. 利用ftp命令将打包文件上传到服务器备份文件夹
  3. 将bat程序添加到windows计划任务中,设置定时间隔。

具体文件

  • backup.lst 
    用于指定需要打包的文件夹。增加或者删除非常方便,就添加/删除一条路径。可以只选择特定格式的文件
E:\major\qutip\*.*   //打包所有格式文件。若只需要特定格式使用./*.doc等
F:\PICTURE\*.*

 

  • ftp.bat 
    用于执行打包文件夹,命名格式为当前日期时间。然后执行ftp.txt中的ftp命令。
set time_hh=%time:~0,2%
if /i %time_hh% LSS 10 (set time_hh=0%time:~1,1%)
set filename=%date:~,4%%date:~5,2%%date:~8,2%_%time_hh%%time:~3,2%%time:~6,2%
rar a -m5 -r Mybackup-%filename%.rar @backup.lst
ftp -s:E:\backup\ftp.txt
mkdir local_backup
move E:\backup\Mybackup-%filename%.rar E:\backup\local_backup   //将压缩文件移动到本地备份文件夹中
  • ftp.txt 
    都为ftp命令,通过用户名密码连接服务器,然后上传rar文件。
open serverIP
username
passward
cd .\backup
mkdir test
cd .\test
binary
put E:\backup\*.rar
bye



Windows下通过bat脚本实现自动上传文件到ftp服务器

 
@Echo Off
Echo open ip_address [port] >ftp.up
Echo [username]>>ftp.up
Echo [password]>>ftp.up
Echo Cd .\ >>ftp.up
Echo binary>>ftp.up
Echo put "C:\ExAdminAuditLog.txt">>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
del ftp.up /q
posted on 2017-12-26 20:31  蔡钊  阅读(18124)  评论(1编辑  收藏  举报