首页 运维 Linux 查看内容

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

2019-3-4 11:37 |来自: 互联网 2714 0

摘要: 概述之前测试写的一个脚本,主要是为了实现FTP自动上传和下载文件。大家可以参考下:基础环境配置# useradd -d /home/ftp1 ftp1 # passwd ftp1 (密码123456) # usermod -s /sbin/nologin ftp1 (限定用户ftp1只能ftp登陆) 登录FTP实现下载文件功能FTP服务器:xx.xx.xx.AFTP路径:/home/ftp1/down本 ...
关键词: FTP 文件 脚本 xx home scripts 路径 批量 单个 find

概述

之前测试写的一个脚本,主要是为了实现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/sh
ftp -v -n xx.xx.xx.A<

2、下载单个文件脚本

#从FTP上下载单文件到本地
#!/bin/sh
ftp -v -n xx.xx.xx.A<

登录FTP实现上传文件功能

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

FTP路径:/home/ftp1/up

本地路径: /home/scripts/up

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

1、批量上传脚本代码

#从本地向FTP批量上传文档
#!/bin/sh
ftp -v -n xx.xx.xx.A<

2、上传单个文件脚本

#从本地向FTP上传单个文档
#!/bin/sh
PUTFILE=up.txt
ftp -v -n xx.xx.xx.A<

自动上传文件

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

#!/bin/sh
filename=`find /home/scripts/up -type f -mmin -10|awk -F / {print $NF}`
for i in $filename;
do 
 ftp -v -n xx.xx.xx.A<<-EOF
user ftp1 123456
binary
cd up
lcd /home/scripts/up
prompt
put $i
bye
EOF
 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/up
file=`find ./ -type f -mmin -20`
�6�7
for i in $file;
do 
�6�7
#获取文件名
filename=`find $i|awk -F / {print $NF}`
#获取路径名
dirname=`find $i -exec dirname {} \;`
�6�7
�6�7
ftp -v -n xx.xx.xx.A<<-EOF
user ftp1 123456
binary
cd up
cd $dirname
pwd
lcd $dirname
prompt
pwd
put $filename
bye
EOF
�6�7
 echo "commit to ftp successfully"
done

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


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

本文出处: https://www.toutiao.com/i6663058167796072964/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部