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

news2024/9/24 23:24:43

文章目录

  • 前言
  • 一、配置本地用户可上传权限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=NO
		listen=YES
		listen_ipv6=NO
		userlist_deny=NO
		local_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=/backup

ftp -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.coloradmin.cn/o/798224.html

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

相关文章

代码随想录算法训练营day11 | 20. 有效的括号,1047. 删除字符串中的所有相邻重复项

目录 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值 20. 有效的括号 难度&#xff1a;easy 类型&#xff1a;栈与队列 思路&#xff1a; 利用栈来做括号匹配&#xff1b; 代码&#xff1a; class Solution {public boolean isValid(String…

【深度学习】从现代C++中的开始:卷积

一、说明 在上一个故事中&#xff0c;我们介绍了机器学习的一些最相关的编码方面&#xff0c;例如 functional 规划、矢量化和线性代数规划。 本文&#xff0c;让我们通过使用 2D 卷积实现实际编码深度学习模型来开始我们的道路。让我们开始吧。 二、关于本系列 我们将学习如何…

LayUi 树形组件tree 实现懒加载模式,展开父节点时异步加载子节点数据

如题。 效果图&#xff1a; //lazy属性为true&#xff0c;点开时才加载 引用代码&#xff1a; <link href"~/Content/layui-new/css/layui.css" rel"stylesheet" /><form id"form" class"layui-form" style"margin-to…

Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突

文章目录 解决spark模块依赖冲突2.2.6 执行编译命令2.2.7 编译成功 下一章 核心概念后记 解决spark模块依赖冲突 修改了Hive版本为3.1.2&#xff0c;其携带的jetty是0.9.3&#xff0c;hudi本身用的0.9.4&#xff0c;存在依赖冲突。 1&#xff09;修改hudi-spark-bundle的pom文…

QVariant

QVariant 标准类型构造函数将支持的类型的数据设置到QVariant对象中将QVariant对象转换为实际的数据类型 自定义类型 标准类型 构造函数 // 这类转换需要使用QVariant类的构造函数, 由于比较多, 大家可自行查阅Qt帮助文档, 在这里简单写几个 QVariant::QVariant(int val); QV…

文件命名简化!一键将电脑文件名从简体中文转换为西班牙语

您是否曾经被电脑上的简体中文文件名搞得头疼不已&#xff1f;通过一键将文件名从简体中文转换为西班牙语&#xff0c;让您的文件管理更加便捷和高效&#xff01;现在&#xff0c;我们向您推荐一款革命性的软件&#xff0c;为您带来无与伦比的文件命名体验。 首先第一步&#…

Ansible 自动化运维工具

Ansible简介 Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。…

在亚马逊平台,如何有效举报违规行为?

众所周知&#xff0c;在每个行业都有一些违规现象&#xff0c;甚至这些违规现象还会给自己带来利益方面的损失&#xff0c;一旦触犯到自己的利益的话&#xff0c;那自己是需要想办法解决的&#xff0c;想办法规避。 就拿开亚马逊店铺来说&#xff0c;比较容易遇到的就是产品侵…

Windows用户如何安装新版本cpolar内网穿透

在科学技术高度发达的今天&#xff0c;我们身边充斥着各种电子产品&#xff0c;这些电子产品不仅为我们的工作带来极大的便利&#xff0c;也让生活变得丰富多彩。我们可以使用便携的电子设备&#xff0c;记录下生活中精彩和有趣的瞬间&#xff0c;并通过互联网方便的与大家分享…

Clion开发Stm32之温湿度传感器(DS18B20)驱动编写和测试

前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DSP18B20驱动文件 头文件 /*******************************************************************************Copy…

Kafka入门到起飞系列 - 副本机制,什么是副本因子呢?

我们一直在讲一个主题会有多个分区&#xff0c;这多个分区可以分布在一台服务器上&#xff0c;也可以分布在多台服务器上&#xff0c;还可以增加分区&#xff08;Kafka目前只支持分区&#xff09;&#xff0c;这是Kafka提供的一种横向扩展的手段 比如我们创建了一个主题&#x…

Scala项目找不到或无法加载主类

目录 1&#xff0c;出错背景2&#xff0c;分析与解决 1&#xff0c;出错背景 Scala项目无法创建scale和Java文件。项目没有报错&#xff0c;但执行时项目总是找不到项目下的类&#xff0c;报错信息如下所示&#xff1a; 错误: 找不到或无法加载主类 com.my.memTestCheck但该类…

第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面

文章目录 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面使用 HL7 架构结构页面查看文档类型列表查看消息结构查看段结构 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面 使用 HL7 架构结构页面 通过 HL7 架构页面&#xff0c;可以导入和查看 HL7 版本 2 架构规范。…

[PAT甲级] 1001 A+B Format [Python3]

题目描述&#xff1a; Calculate ab and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits). Input Specification: Each input file contains one test case. Each c…

【Hive实战】Hive的压缩池与锁

文章目录 Hive的压缩池池的分配策略自动分配手动分配隐式分配 池的等待超时Labeled worker pools 标记的工作线程&#xff08;自定义线程池&#xff09;Default pool 默认池Worker allocation 工作线程的分配 锁Turn Off ConcurrencyDebuggingConfigurationhive.support.concur…

超详细的74HC595应用指南(以stm32控制点阵屏为例子)

74HC595是一款常用的串行输入/并行输出&#xff08;Serial-in/Parallel-out&#xff09;移位寄存器芯片&#xff0c;在数字电子领域有着广泛的应用。它具有简单的接口和高效的扩展能力&#xff0c;成为了许多电子爱好者和工程师们的首选之一。本文将深入介绍74HC595芯片的功能、…

019 - STM32学习笔记 - Fatfs文件系统(一) - FatFs文件系统初识

019 - STM32学习笔记 - Fatfs文件系统&#xff08;一&#xff09; - FatFs文件系统初识 最近工作比较忙&#xff0c;没时间摸鱼学习&#xff0c;抽空学点就整理一点笔记。 1、文件系统 在之前学习Flash的时候&#xff0c;可以调用SPI_FLASH_BufferWrite函数&#xff0c;将数…

【Terraform学习】Terraform-AWS部署快速入门(快速入门)

Terraform-AWS部署快速入门 实验步骤 连接到 Terraform 环境 SSH 连接到Terraform 环境(名为MyEC2Instance的实例) 在 Amazon Web Services &#xff08;AWS&#xff09; 上预置 EC2 实例 用于描述 Terraform 中基础结构的文件集称为 Terraform 配置。您将编写一个配置来定义…

【视觉SLAM入门】5.1 非线性最小二乘理论 ------线搜索,信赖域,最速/牛顿下降法,高斯牛顿,LM等原理推导

"天之道也" 0. 引入1. 最速下降法2. 牛顿法3. (实用)G-N法4. (实用)L-M方法5. 总结 注意&#xff1a; 上一节得到的最小二乘问题&#xff0c;本节来讨论---- 求解非线性最小二乘问题 \color {red}求解非线性最小二乘问题 求解非线性最小二乘问题 0. 引入 求解这个简…

el-upload上传图片和视频,支持预览和删除

话不多说&#xff0c; 直接上代码&#xff1a; 视图层&#xff1a; <div class"contentDetail"><div class"contentItem"><div style"margin-top:5px;" class"label csAttachment">客服上传图片:</div><el…