FTP服务器的搭建和配置上传脚本


文章目录

  • 前言
  • 一、配置本地用户可上传权限ftp服务器
    • 1、用户登录ftp
  • 二、配置FTP上传脚本文件
    • 1.脚本代码如下
  • 补充知识


前言

vsftpd(Very Secure FTP Daemon)是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。vsftpd 支持支持 匿名用户、本地用户、虚拟用户 3种登录方式。vsftpd 高速安全,支持带宽限制,支持IPv6,可分配虚拟IP,支持创建虚拟用户。


提示:以下是本篇文章正文内容,下面案例可供参考

一、配置本地用户可上传权限ftp服务器

[root@node2 ~]# yum install vsftpd -y
在这里插入图片描述

1、创建本地用户
[root@node2 ~]# useradd backuper
[root@node2 ~]# echo redhat | passwd --stdin backuper
在这里插入图片描述

2、本地用户上传目录
[root@node2 vsftpd]# mkdir -p /data/ftp
[root@node2 vsftpd]# chown -R backuper /data/ftp

在这里插入图片描述

3、修改ftp配置文件

进入到 vim /etc/vsftpd.conf 进行文件配置,刚开始进去就是空白的,讲以下的代码写入进去,然后保存anonymous_enable=NOlisten=YESlisten_ipv6=NOuserlist_deny=NOlocal_root=/data/ftp

4、设置白名单
[root@node2 vsftpd]# echo backuper > user_list

5、重启服务:
[root@node2 vsftpd]# systemctl restart vsftpd

6、安装客户端
[root@node1 ~]# yum install ftp lftp -y

以上三步一般都不会有问题的,直接跟着敲就好了

1、用户登录ftp

在这里插入图片描述

二、配置FTP上传脚本文件

1.脚本代码如下

代码如下(示例):

#!/bin/bash#定义当天的时间
nowdate=`date +%Y%m%d`#获取7天前的日期,删除ftp服务器空间7天前备份
deldate=$(date -d -7day +%Y%m%d)#定义备份文件存放的目录
MPATH=/backupftp -v -n 192.168.40.142<<EOF
user backuper redhat
binary
hash
mkdir ${nowdate}
cd ${nowdate}
lcd ${MPATH}
mput *.*
close
bye
#here document
EOF
echo "successfully"
[root@master shell]# ./test6.sh
Connected to 192.168.40.142 (192.168.40.142).
220 (vsFTPd 3.0.2)
530 Permission denied.
Login failed.
530 Please login with USER and PASS.
Hash mark printing on (1024 bytes/hash mark).
530 Please login with USER and PASS.
530 Please login with USER and PASS.
Local directory now /backup
mput mysql_bak.2023-07-22.sql? 530 Please login with USER and PASS.
Passive mode refused.
mput percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm? 530 Please login with USER and PASS.
Passive mode refused.
mput school.sql? 530 Please login with USER and PASS.
Passive mode refused.
mput school.sql.gz? mput school1.sql? mput school2.sql? mput schoolbabe.sql? mput shcool.sql.gz? mput shcool3.sql? mput student.sql? 221 Goodbye.
successfully

这里有一个问题,就是提示530问题,我去搜索了一下需要关闭ftp的enable服务,将这里的userlist_enable注释掉
在这里插入图片描述原因
因为检测不到文件,但是文件又被启用,所以导致了账号和密码无法找到,故无法登陆,

原以为脚本修改得有问题,折腾了快一个小时,才发现应该是ftp的问题,第一次接触ftp,所以导致不是特别熟练

补充知识

1、

ftp -v -n 192.168.40.142<<EOF

<< 是使用即时文件重定向输入
EOF是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。

FTP常见标识作用
-d使用调试模式,但必须编辑 /etc/syslog.conf 文件并添加以下中的一项:user.info FileName 或 user.debug FileName。
-g禁用文件名中的元字符拓展,即取消全局文件名。
-i关闭多文件传输中的交互式提示。
-n防止在起始连接中的自动登录。否则, ftp 命令会搜索 $HOME/.netrc 登录项,该登录项描述了远程主机的登录和初始化过程。
-v显示远程服务器的全部响应,并提供数据传输的统计信息,即在程序运行时显示详细的处理信息。

2、传输文件类型

FTP传输文件类型作用
ascii将文件传输类型设置为网络 ASCII。此类型为缺省值,即默认使用ascii方式进行传输。
binary将文件传输类型设置为二进制映像。需要使用binary方式传输的文件类型有ISO文件、可执行文件、压缩文件、图片等。此类型可能比 ASCII 传送更有效。
ebcdic将文件传输类型设为 EBCDIC。
image将文件传输类型设置为二进制映像。此类型可能比 ASCII 传送更有效。
local M将文件传输类型设置为本地。M 参数定义每计算机字位的十进制数。此参数没有缺省值。
tenex将文件传输类型设为 TENEX 机器需要的类型

3、文件传输
下载文件
下载多个文件

mget [remote-files]获取远端所在文件夹下所有文件
mget *
and
met *.*

mget . 每下载一个文件,都会有提示。如果要除掉提示,则在mget . 命令前先执行:prompt off。

下载单个文件

get [remote-file] [local-file]获取远端FTP上的a.txt文件
get a.sh

上传文件
上传多个文件

mput local-files将所在文件夹下所有文件上传到FTP上
mput *

上传单个文件

put local-file [remote-file]将本地a.txt文件上传到远端FTP上
put a.sh

4、分界符标志

<< EOF
#execute shell
EOF

EOF只是一个分界符标志,完全可以用abc, ! 等替换,也一样的功能,只是大家都习惯用EOF来表示。 <<用法:当shell看到<<的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。因此分界符可以是定义的任何字符串。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html2Canvas+jsPDF 下载PDF 遇到跨域的对象存储的图片无法显示

一、问题原因 对象存储的域名和你网址的域名不一样&#xff0c;此时用Canvas相关插件 将DOM元素转化为PDF&#xff0c;就会出现跨域错误。 二、解决办法 两步 1. 图片元素上设置属性 crossorigin"anonymous" 支持原生img和eleme组件 2. 存储桶设置资源跨域访问…

Python - Opencv + pyzbar实时摄像头识别二维码

直接上代码&#xff1a; import cv2 from pyzbar.pyzbar import decodecap cv2.VideoCapture(0) # 打开摄像头while True: # 循环读取摄像头帧ret, frame cap.read()# 在循环中&#xff0c;将每一帧作为图像输入&#xff0c;使用pyzbar的decode()函数识别二维码barcodes …

MFC表格控件CListCtrl的改造及用法

1、目的 简单描述MFC的表格控件使用方法。Qt适用习惯了以后MFC用的比较别扭&#xff0c;因此记录一下以备后续复制代码使用。由于MFC原生的CListCtrl比较局限&#xff0c;比如无法改变表格的背景色、文字颜色等设定&#xff0c;因此先对CListCtrl类进行重写&#xff0c;以便满足…

Carla教程一:动力学模型到LQR

Carla教程一、动力学模型到LQR 从运动学模型和动力学模型到LQR 模型就是可以描述车辆运动规律的模型。车辆建模都是基于自行车模型的设定,也就是将四个轮子抽象为自行车一样的两个轮子来建模。 1、运动学模型 运动学模型是基于几何关系分析出来的,一般适用于低俗情况下,…

【监控系统】可视化工具Grafana简介及容器化部署实战

1.什么是Grafana 官网地址&#xff1a;https://grafana.com/ Grafana用Go语言开发的开源数据可视化工具&#xff0c;可以做数据监控和数据统计&#xff0c;带有告警功能。支持快速灵活的客户端图表&#xff0c;面板插件有许多不同方式的可视化指标和日志&#xff0c;官方库中…

【NLP】无服务器问答系统

一、说明 在NLP的眼见的应用&#xff0c;就是在“ 当你在谷歌上提出一个问题并立即得到答案时会发生什么&#xff1f;例如&#xff0c;如果我们在谷歌搜索中询问谁是美国总统&#xff0c;我们会得到以下回答&#xff1a;Joe Biden&#xff1b;这是一个搜索问题&#xff0c;同时…

SpringCloudAlibaba微服务实战系列(一)Nacos服务注册发现

SpringCloudAlibaba微服务实战系列&#xff08;一&#xff09;Nacos服务注册发现 实战前先做一个背景了解。 单体架构、SOA和微服务 单体架构&#xff1a;近几年技术的飞速发展&#xff0c;各种各样的服务已经进入到网络化。单体架构发布时只需要打成一个war或jar包发布即可&a…

jar 命令实践

jar -h非法选项: h 用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项:-c 创建新档案-t 列出档案目录-x 从档案中提取指定的 (或所有) 文件-u 更新现有档案-v 在标准输出中生成详细输出-f 指定档案文件名-m 包含指定清单文…

嵌入式软件—RK3568开发环境搭建

一、RK3568 1.1 开发板特点 BSP比较大&#xff0c;对于电脑内存和存储空间要求高 1.2 BSP BSP&#xff08;Board Support Package&#xff0c;板级支持包&#xff09;&#xff0c;类似于PC系统中BIOS和驱动程序的集合&#xff0c;BSP包含的范围更广&#xff0c;除了外设驱动…

数值线性代数:知识框架

记录数值线性代数研究的知识框架。 软件包线性方程组直接法Guass消元法/LU分解、Cholesky分解 LAPACK oneAPI MKL ARPACK Octave 迭代法Jacobi迭代、SOR迭代、共轭梯度法最小二乘特征值/特征向量非对称幂法、QR、Arnoldi分解对称QR、Jacobi、二分法、分治法、SVD 参考资料 G…

pg三种插件验证

sr_plan 创建extension, 他会创建保留执行计划的表 创建表并插入数据 开启sr_plan.write_mode, 允许sr_plan收集SQL和执行计划 查看QUERY 1的执行计划 PostgreSQL支持merge join、GroupAggregate(通过INDEX SCAN),所以这个CASE,非常快,并不需要b对所有数据进行聚合。查看…

nginx mirror代码分析

实现方式 mirror逻辑的工作阶段&#xff1a; ngx在log phase之后&#xff08;在ngx_http_free_request处调用&#xff09;已完成向client端返回response&#xff0c;在log phase之后完成close connection&#xff08;短链接&#xff09;&#xff0c;在该阶段处理mirror逻辑不…

Python——Windows下载ffmpeg

目录 前言 一、下载 &#xff08;3种下载方式&#xff09; 1、第一种下载方式——我上传的文件 2、第二种下载方式——GitHub下载 3、第三种下载方式——官网下载 二、解压 三、配置环境变量 四、验证是否安装成功 五、其他 关于ffmpeg其他安装教程 ffmpeg的延迟问题 …

typescript自动编译文件实时更新

npm install -g typescripttsc --init 生成tsconfig.json配置文件 tsc -w 在监听模式下运行&#xff0c;当文件发生改变的时候自动编译

C语言文件操作

目录 前言: 文件的分类 1. 程序文件 2.数据文件 文件的使用 文件指针 文件指针的使用 文件的打开与关闭 文件的使用方式 示例1&#xff1a; 示例2&#xff1a; 文件的顺序读写 函数简介 示例1&#xff1a; 示例2&#xff1a; 函数简介 示例1&#xff1a; 示例2&…

【我们一起60天准备考研算法面试(大全)-第二十六天 26/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

NAT详解(网络地址转换)

一句话说清楚它是干什么的&#xff1a; 网络地址转换&#xff1a;是指通过专用网络地址转换为公用地址&#xff0c;从而对外隐藏内部管理的IP地址&#xff0c;它使得整个专用网只需要一个全球IP就可以访问互联网&#xff0c;由于专用网IP地址是可以重用的&#xff0c;所以NAT大…

【Linux】Http协议的学习

文章目录 前言一、了解HTTP协议是如何规定的总结 前言 HTTP协议&#xff08;超文本传输协议&#xff09;和我们上一篇写的网络版计算器中自己定制的协议一样&#xff0c;只不过Http协议是是一个非常好用的协议&#xff0c;所以我们可以直接用现成的不用自己再搞一套了。 一、了…

EM算法实例

EM算法的E步骤&#xff0c; 是计算在当前的预估参数下&#xff0c;隐含变量&#xff08;是A硬币还是B硬币&#xff09;的每个值出现的概率。也就是给定和观测数据&#xff0c;计算这组数据出自A硬币的概率和这组数据出自B硬币的概率 我们根据E步中求出的A硬币、B硬币概率分布&…

在家构建您的迷你 ChatGPT

这篇文章分为三个部分&#xff1b;他们是&#xff1a; 什么是指令遵循模型&#xff1f;如何查找遵循模型的指令构建一个简单的聊天机器人废话不多说直接开始吧&#xff01;&#xff01;&#xff01; 什么是指令遵循模型&#xff1f; 语言模型是机器学习模型&#xff0c;可以根…