当前位置: 首页 > news >正文

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又看到该分界符(位于单独的一行)。因此分界符可以是定义的任何字符串。

相关文章:

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

文章目录 前言一、配置本地用户可上传权限ftp服务器1、用户登录ftp 二、配置FTP上传脚本文件1.脚本代码如下 补充知识 前言 vsftpd&#xff08;Very Secure FTP Daemon&#xff09;是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。vsftpd 支持支持 匿名用户、…...

Ubuntu22.04上部署Lua开发环境

需求背景 想在Ubuntu22.04上搭建一下Lua的开发环境&#xff0c;其实步骤比较简单的&#xff0c;此文章也适用于Ubuntu主机环境搭建Lua,如果想在在Ubuntu内部署一个容器&#xff0c;然后在容器内搭建Lua的环境&#xff0c;可以先参考容器的创建过程 ubuntu22.04上如何创建有pri…...

React的hooks---自定义hooks

通过自定义 Hook&#xff0c;可以将组件逻辑提取到可重用的函数中&#xff0c;在 Hook 特性之前&#xff0c;React 中有两种流行的方式来共享组件之间的状态逻辑&#xff1a;render props和高阶组件&#xff0c;但此类解决方案会导致组件树的层级冗余等问题。而自定义 Hook 的使…...

Asp.Net 使用Log4Net (基础版)

Asp.Net 使用Log4Net (基础版) 1. 创建项目 创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为"Log4NetDemo"。 2.安装Log4Net包 打开NuGet包管理器控制台&#xff0c;并运行以下命令来安装Log4Net&#xff1a; mathemati…...

STM32 互补PWM 带死区 HAL

1、设置PWM波频率100KHz&#xff0c;占空比50%&#xff0c;死区时间1us 2、 while 循环之前启动PWM HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); //启动TIM1_CH1 PWM输出 HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);//启动TIM1_CH1N PWM输出 3、死区计算 DT_time…...

20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片

20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片 2023/7/21 22:58 1、前言&#xff1a; AES-128加密的ts视频切片【第一个】&#xff0c;打开有时间限制的&#xff01; https://app1ce7glfm1187.h5.xiaoeknow.com/v2/course/alive/l_64af6130e4b03e4b54da1681?typ…...

使用Python实现产品图片自动化处理

大家好&#xff0c;在当今的数字化时代&#xff0c;产品图片在电子商务和市场营销中发挥着至关重要的作用。然而&#xff0c;为在线平台准备产品图片可能是一项耗时的任务&#xff0c;本文将分享一个Python脚本&#xff0c;用于自动化产品图片的图像处理工作流程。通过使用Pyth…...

在CSDN学Golang云原生(git)

一&#xff0c;git的工作流程 Golang的Git工作流程与其他语言的Git工作流程类似&#xff0c;通常包括以下步骤&#xff1a; 创建分支&#xff1a;在本地代码库中创建一个新的分支&#xff0c;该分支用于开发新功能或修复错误。编写代码&#xff1a;在创建的分支上进行编码&am…...

QT多线程编程基础

文章目录 前言一、线程&#xff0c;进程 介绍二、创建线程三、终止线程总结 前言 一、线程&#xff0c;进程 介绍 线程&#xff1a; 是操作系统中独立运行的最小单位。每个线程都有自己的执行路径、程序计数器、堆栈和一组寄存器。线程共享进程的资源&#xff0c;如内存和文件…...

TRT4-trt-integrate - 3 使用onnxruntime进行onnx的模型推理过程

前言&#xff1a; onnx是microsoft开发的一个中间格式&#xff0c;而onnxruntime简称ort是microsoft为onnx开发的推理引擎。允许使用onnx作为输入进行直接推理得到结果。 py接口的推理过程&#xff1a; main函数&#xff1a; if __name__ "__main__":session onn…...

layui+drogon完成文件上传(简例)

layui界面加入按钮、文本框、进度条&#xff1a; <div class"layui-row"><button type"button" class"layui-btn" id"file_upload_control">文件上传</button><input type"file" id"files_input…...

高精度地图服务引擎项目

技术栈&#xff1a;使用vue3TypeScriptElement PlusPiniaaxios 项目描述&#xff1a;高精度地图服务引擎项目&#xff0c;提供轻量化处理3D瓦片切片分布式处理分发服务的一站式解决方案 工作内容&#xff1a;1、项目60%已上的页面开发 2、部分模块的功能实现&#xff0c; 3、封…...

PyTorch使用Transformer进行机器翻译

文章目录 简介数据集环境要求实验代码实验结果参考来源 简介 本文使用PyTorch自带的transformer层进行机器翻译&#xff1a;从德语翻译为英语。从零开始实现Transformer请参阅PyTorch从零开始实现Transformer&#xff0c;以便于获得对Transfomer更深的理解。 数据集 Multi30…...

LoadRunner使用教程

1. LoadRunner简介 LoadRunner是一款广泛使用的性能测试工具 可以对各种应用程序进行性能测试&#xff0c;包括Web应用程序、移动应用程序、企业级应用程序等。它提供了一个综合的性能测试解决方案&#xff0c;包括测试计划设计、脚本录制、测试执行、结果分析和报告生成等功…...

Zia和ChatGPT如何协同工作?

有没有集成ChatGPT的CRM系统推荐&#xff1f;Zoho CRM已经正式与ChatGPT集成。下面我们将从使用场景、使用价值和使用范围等方面切入讲述CRMAI的应用和作用。 Zia和ChatGPT如何协同工作&#xff1f; Zia和ChatGPT是不同的人工智能模型&#xff0c;在CRM中呈现出共生的关系。 …...

【位操作】——获取整数变量最低位为 1 的位置

获取整数变量最低位为 1 的位置 #define BIT_LOW_BIT(y) (((y)&BIT(0)) ? 0 : (((y)&BIT(1)) ? 1 : (((y)&BIT(2)) ? 2 : (((y)&BIT(3)) ? 3 : \(((y)&BIT(4)) ? 4 : (((y)&BIT(5)) ? 5 : (((y)&BIT(6)) ? 6 : (((y)&…...

gtest测试用例注册及自动化调度机制源代码流程分析

gtest的入门参见&#xff1a; 玩转Google开源C单元测试框架Google Test系列(gtest) gtest源码分析流程参见&#xff1a; gtest流程解析 测试用例注册流程分析要点&#xff1a;TEST_F宏替换、C静态成员的动态初始化。 自动化调度流程分析要点&#xff1a;UnitTest、UnitTestIm…...

IOS自动化测试环境搭建教程

目录 一、前言 二、环境依赖 1、环境依赖项 2、环境需求与支持 三、环境配置 1、xcode安装 2、Git安装 3、Homebrew安装&#xff08;用brew来安装依赖&#xff09; 4、npm和nodejs安装 5、libimobiledevice安装 6、idevicesinstaller安装 7、ios-deploy安装 8、Ca…...

常用API学习08(Java)

格式化 格式化指的是将数据按照指定的规则转化为指定的形式 。 那么为什么需要格式化&#xff1f;格式化有什么用&#xff1f; 以数字类为例&#xff0c;假设有一个比分牌&#xff0c;在无人得分的时候我们希望以&#xff1a;“00&#xff1a;00”的形式存在&#xff0c;那么…...

面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?

面试题-TS(八)&#xff1a;什么是装饰器&#xff08;decorators&#xff09;&#xff1f;如何在 TypeScript 中使用它们&#xff1f; 在TypeScript中&#xff0c;装饰器&#xff08;Decorators&#xff09;是一种用于增强代码功能的特殊类型声明。装饰器提供了一种在类、方法、…...

Taurus多执行器对比实战:JMeter/Gatling/Locust统一压测方案

1. 为什么选Taurus做多执行器对比——不是为了炫技&#xff0c;而是为了少踩坑在性能测试领域&#xff0c;我见过太多团队卡在“选型”这一步&#xff1a;刚招来一个会写JMeter脚本的工程师&#xff0c;项目突然要压测WebSocket接口&#xff0c;发现JMeter原生支持弱、插件维护…...

浅聊26上半年软考架构师

2026年上半年架构师考试已然落幕&#xff0c;大家都考的如何&#xff1f;架构师共有三门考试&#xff0c;上午综合知识&#xff08;75道选择题&#xff09;案例分析&#xff0c;时间为8.30-12.30&#xff1b;下午论文&#xff0c;时间为14.30-16.30。下面说说我整体的备考过程。…...

AArch64内存管理:MAIR_EL3寄存器详解与应用

1. AArch64内存管理基础与MAIR_EL3寄存器定位 在Armv8-A/v9-A架构中&#xff0c;内存管理单元(MMU)通过多级页表实现虚拟地址到物理地址的转换。当处理器执行内存访问时&#xff0c;MMU会遍历页表条目(Translation Table Entry)&#xff0c;其中包含两个关键信息&#xff1a;目…...

为Alchitry Au FPGA开发板外接JTAG接口的完整指南

1. 项目概述与核心价值如果你正在使用基于Xilinx Artix-7 FPGA的Alchitry Au或Au开发板&#xff0c;并且已经厌倦了每次调试或烧录都要依赖板载的USB-JTAG桥接芯片&#xff0c;或者你的项目已经将板载USB接口挪作他用&#xff0c;那么为你的开发板外接一个独立的JTAG调试器&…...

sudo企业级应用【20260525】001篇

文章目录 一、总体设计思路 1️⃣ 设计原则 2️⃣ 日志策略(重点) 二、10 个真实生产场景(含 sudoers 配置) 🔹 Linux 系统管理(3 个) ✅ 场景 1:基础运维(用户 / 权限) ✅ 场景 2:磁盘与文件系统 ✅ 场景 3:网络与防火墙 🔹 云管理(2 个) ✅ 场景 4:云 CLI …...

内存占用3KB!极致瘦身释放MCU无限可能

极致小体积&#xff0c;给工业领域带来了无限的可能&#xff1a;更低硬件成本&#xff0c;更小芯片体积&#xff0c;更低功耗&#xff0c;更高可靠性&#xff0c;让每一颗小MCU都拥有大系统的完整能力。 https://www.bilibili.com/video/BV1eZLi6PEjc/?spm_id_from333.1387.ho…...

双系统Ubuntu磁盘告急?别重装!用GParted无损扩容保姆级教程(附U盘启动盘制作)

双系统Ubuntu磁盘告急&#xff1f;别重装&#xff01;用GParted无损扩容保姆级教程&#xff08;附U盘启动盘制作&#xff09;当你在Windows和Ubuntu双系统环境下工作时&#xff0c;是否遇到过这样的窘境&#xff1a;当初安装时给Ubuntu分配的空间捉襟见肘&#xff0c;而Windows…...

碧蓝航线自动化脚本终极指南:3小时学会全自动游戏管理

碧蓝航线自动化脚本终极指南&#xff1a;3小时学会全自动游戏管理 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为碧蓝…...

告别CAJ格式困扰:3分钟学会用开源工具将知网文献转为PDF

告别CAJ格式困扰&#xff1a;3分钟学会用开源工具将知网文献转为PDF 【免费下载链接】caj2pdf Convert CAJ (China Academic Journals) files to PDF. 转换中国知网 CAJ 格式文献为 PDF。佛系转换&#xff0c;成功与否&#xff0c;皆是玄学。 项目地址: https://gitcode.com/…...

手把手教你用Mind+和Blynk,让手机轻松遥控掌控板(含自建服务器避坑指南)

从零搭建物联网控制平台&#xff1a;Mind与Blynk深度整合实战 当你第一次尝试用手机控制硬件设备时&#xff0c;那种"隔空取物"的奇妙感总会让人兴奋不已。想象一下&#xff0c;躺在沙发上就能调节书桌上的智能台灯亮度&#xff0c;或者在外出时随时查看家中的温湿度…...