在之前发布的文章中,存在一个问题,上一个文章是先进行全部下载再通过文件名中的时间来进行判断有效的文件,现在修改这个流程。因为按之前的方式可能存在一个问题,当文件内容过大会消耗大量的时间,可能不止15分钟,导致程序一直在进行重复下载同一个文件
FTP:文件传输协议,常用于远程服务器的文件上传和下载
下面用例子给大家展示一下ftp的批量下载和删除,代码如下:
1.先配置远程服务器的ip地址和端口,以及用户名、密码、下载到本地的路径、备份文件路径等等
2.判断本地下载路径是否存在,不存在进行新增本地下载目录
3.开始获得当前时间或配置时间,计算出15分钟前的时间
4.连接到FTP远程服务器得到远程目录的文件名
5.选出符合15分钟的文件名
6.进行循环符合条件的文件名的文件下载
7.循环删除远程FTP已下载的文件
8.可以开始进行对文件的处理
9.配置定时程序处理文件
a.键入 crontab -e 编辑crontab服务文件
例如文件内容如下:
*/2 * * * */bin/sh /home/admin/jiaoben/buy/deleteFile.sh
b.保存文件并并退出
*/2 * * * */bin/sh /home/admin/jiaoben/buy/deleteFile.sh
*/2 * * * *通过这段字段可以设定什么时候执行脚本
/bin/sh/home/admin/jiaoben/buy/deleteFile.sh这一字段可以设定你要执行的脚本,这里要注意一下bin/sh是指运行 脚本的命令 后面一段时指脚本存放的路径
c.查看该用户下的crontab服务是否创建成功,用 crontab -l命令
d.启动crontab服务
一般启动服务用 /sbin/servicecrond start 若是根用户的cron服务可以用 sudo service crond start,这里还是要注意 下不同版本linux系统启动的服务的命令也不同,像我的虚拟机里只需用 sudo service cronrestart即可,若是在根用下直接键入service cron start就能启动服务
e.查看服务是否已经运行用 ps -ax | grepcron
f.crontab命令
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls>> /tmp/ls.txt
任务调度的crond常驻命令
crond是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此
任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工
作便会自动执行该工作。
g.crontab命令选项:
-u指定一个用户
-l列出某个用户的任务计划
-r删除某个用户的任务
-e编辑某个用户的任务
h. cron文件语法:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
记住几个特殊符号的含义:
“*” 代表取值范围内的数字 ,“/” 代表 ” 每 ”,
“-” 代表从某个数字到某个数字 ,
“,” 分开几个离散的数字