Linux ftp 定时批量下载

Linux ftp 定时批量下载

使用ftp mget从win服务器批量定时下载前一天的文件,编写脚本文件getfile.sh,代码及说明如下:

将脚本加入crontab定时任务

执行命令:crontab -e

按 i 编辑文件,添加命令如下:

0 0 * * * sh /home/getFile.sh

0 0 * * *指每天0点0分开始执行该定时任务

sh /home/uploadFile.sh指执行 home目录下的脚本getFile.sh

按ESC返回命令行模式,再按:wq回车保存并退出。

如果选择nano编辑,^X退出,Y确定退出,^T保存文件,然后选择一个文件名,按ENTER键即可保存后退出。

设置目标服务器ip、账号、密码,时间,根据时间下载文件

定义变量记录ip、账号、密码,获取系统时间

ip=127.0.0.1
u=root
p=123456
T=`date -d -1day +%Y%m%d`
完整脚本代码
#!/bin/bash
u=root 			#账号
p=123456			#密码
ip=127.0.0.1		#目标服务器ip地址
T=`date -d -1day +%Y%m%d`		#获取昨天日期
mkdir /home/root/$T		#创建文件夹
ftp -n <<EOF
	open $ip
	user $u $p
	binary
	cd /www/file
	lcd /home/root/$T
	prompt off
	mget $T*.txt
	close
	bye
EOF
脚本代码说明

!/bin/bash 表明该文本的内容为bash SHELL命令 。

T=`date -d -1day +%Y%m%d` 

声明变量T,即可使用变量$T,用来记录需要获取文件名中的日期标签。 -1day 表示距系统时间的天数。假如今天是20121123, -2day就表示20121121;

`date –d -2day +%Y-%m-%d %H:%M:%S`的值为:20121121 10:55:44

%Y表示年,如2012,%y也表示年,但是格式为12 #%m表示月,如11 #%d表示日,如23
同样,%H,%M,%S分明表示时分秒, 以系统时间为2012年11月23日10时55分44秒为例 。

ftp -nv 12.2.2.28 <<!EOF

ftp -n <<!EOF
open $ip

登录FTP服务器,12.2.2.28表示FTP服务器的IP地址 ,从EOF至代码结束的EOF是FTP命令。 EOF是自己随意给的标示名 。

user $u $p给出FTP的用户名和密码。此处用户名和密码是:u p。

binary二进制格式传送 。

cd /www/fileTXT表示数据文件在FTP服务器上的目录。。

lcd /home/root/$T数据文件要下载到服务器的目录 。

prompt off该命令忽略FTP交互。

mget $T*.txt需要下载的文件,$T为前面声明的变量,*表示通配符,表示下载文件名已该日期开头的文件 。

close关闭ftp链接。

ByeFTP完成退出 。

EOFFTP代码结束。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值