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计划任务
具体文件
- 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