龙空技术网

Linux下Shell脚本实现FTP自动上传和下载文件

波波说运维 6580

前言:

今天我们对“ftp上传文件流程”大致比较看重,咱们都想要剖析一些“ftp上传文件流程”的相关资讯。那么小编同时在网摘上收集了一些有关“ftp上传文件流程””的相关文章,希望兄弟们能喜欢,各位老铁们一起来了解一下吧!

概述

之前测试写的一个脚本,主要是为了实现FTP自动上传和下载文件。大家可以参考下:

基础环境配置

[root@pxzxdm01 ~]# useradd -d /home/ftp1 ftp1 [root@pxzxdm01 ~]# passwd ftp1 (密码123456)[root@pxzxdm01 ~]# usermod -s /sbin/nologin ftp1 (限定用户ftp1只能ftp登陆)
登录FTP实现下载文件功能

FTP服务器:xx.xx.xx.A

FTP路径:/home/ftp1/down

本地路径(xx.xx.xx.B): /home/scripts/down

用户名密码:ftp1/123456

1、批量下载脚本

#从FTP上批量下载文件到本地#!/bin/shftp -v -n xx.xx.xx.A<<EOFuser ftp1 123456binarycd downlcd /home/scripts/downpromptmget *byeEOFecho "download from ftp successfully"

2、下载单个文件脚本

#从FTP上下载单文件到本地#!/bin/shftp -v -n xx.xx.xx.A<<EOFuser ftp1 123456binarycd downlcd /home/scripts/downprompt#get down.txt,并改名成note.txtget down.txt note.txtbyeEOFecho "download from ftp successfully"
登录FTP实现上传文件功能

FTP服务器:xx.xx.xx.A

FTP路径:/home/ftp1/up

本地路径: /home/scripts/up

将文件从本地传到FTP的脚本如下:

1、批量上传脚本代码

#从本地向FTP批量上传文档#!/bin/shftp -v -n xx.xx.xx.A<<EOFuser ftp1 123456binaryhashcd uplcd /home/scripts/uppromptmput *bye#here documentEOFecho "commit to ftp successfully"

2、上传单个文件脚本

#从本地向FTP上传单个文档#!/bin/shPUTFILE=up.txtftp -v -n xx.xx.xx.A<<EOFuser ftp1 123456binarycd uplcd /home/scripts/uppromptput $PUTFILEbye#here documentEOFecho "commit to ftp successfully"
自动上传文件

1、十分钟内/home/scripts/up变动的文件内容统一上传/home/ftp1/up下脚本

#!/bin/shfilename=`find /home/scripts/up -type f -mmin -10|awk -F '/' '{print $NF}'`for i in $filename;do  ftp -v -n xx.xx.xx.A<<-EOFuser ftp1 123456binarycd uplcd /home/scripts/uppromptput $ibyeEOF echo "commit to ftp successfully"done

2、二十分钟内/home/scripts/up下变动的文件上传/home/ftp1/up下对应的文件夹下脚本

路径:find /home/scripts/up -type f -mmin -120 -exec dirname {} \;

#!/bin/sh#切换到上传根目录下cd /home/scripts/upfile=`find ./ -type f -mmin -20`​for i in $file;do ​#获取文件名filename=`find $i|awk -F '/' '{print $NF}'`#获取路径名dirname=`find $i -exec dirname {} \;`​​ftp -v -n xx.xx.xx.A<<-EOFuser ftp1 123456binarycd upcd $dirnamepwdlcd $dirnamepromptpwdput $filenamebyeEOF​ echo "commit to ftp successfully"done

注意:sftp可以通过put -r 递归创建目录,ftp不行

上面是之前分开写的几个脚本,这个还是看需求吧,整体难度不大,大家可以自己测试下。后面会分享更多关于devops和DBA方面内容,感兴趣的朋友可以关注下!!

标签: #ftp上传文件流程 #如何判断ftp上传成功没有 #ftp文件目录 #ftp传输bin #ftp自动保存密码