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

Kubernetes入门——Longhorn简介

概述

Longhorn是由Rancher创建的一款云原生的、轻量级、可靠且易用的开源分布式块存储系统。部署到K8s集群上之后,Longhorn会自动将集群中所有节点上可用的本地存储聚集为存储集群,然后利用这些存储管理分布式、带有复制功能的块存储,支持快照和数据备份。

对于 Longhorn,你可以:

  • 使用 Longhorn 卷作为 Kubernetes 集群中分布式有状态应用程序的持久存储
  • 将块存储分区为 Longhorn 卷(volume)
  • 在多个节点和数据中心复制块存储以提高可用性
  • 将备份数据存储在外部存储器中,如 NFS 或 AWS S3
  • 从备份中恢复卷
  • 升级 Longhorn 而不中断持久的卷

Longhorn 设计有两层: 数据平面(data plane)和控制平面(control plane)。Longhorn Engine 是与数据平面对应的存储控制器,Longhorn Manager 与控制平面对应。

Longhorn Manager Pod 作为 Kubernetes DaemonSet 在 Longhorn 集群中的每个节点上运行。它负责在 Kubernetes 集群中创建和管理卷。

当 Longhorn Manager 被要求创建一个卷( volume)时,它会在卷附加的节点上创建一个 Longhorn Engine 实例,它以 Linux 进程的形式运行。并在每个节点上创建一个数据副本。副本应该放在单独的主机上,以确保最大限度的可用性。

Longhorn基于块存储的,并且支持 ext4/XFS文件系统。Longhorn CSI 驱动程序获取块设备,并格式化它,并将其挂载到节点上。然后 kubelet绑定状态这些块设备到K8s pod中,这样 pod就能访问Longhorn卷。

设置的副本数量不应该超过集群节点数量

在这里插入图片描述

上图中

  • 创建了3个Longhorn卷
  • 每个卷都有一个专用的控制器:Longhorn Engine
  • 每个 Longhorn 卷有两个副本,每个副本是一个 Linux 进程
  • 通过为每个卷创建一个单独的 Longhorn Engine,如果其中一个控制器失败,则不会影响其他卷的功能

在这里插入图片描述

Longhorn 副本使用 Linux sparse files 构建,支持自动精简配置(thin provisioning)。有一个实际大小和”名义上的”大小。

Longhorn UI

Longhorn提供了UI管理页面,简单的方式是通过 kube edit svc longhorn-frontend -n longhorn-system命令修改服务类型为 type: NodePort。 保存退出。

$ kube get svc  longhorn-frontend -n longhorn-system
NAME                TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
longhorn-frontend   NodePort   10.43.125.27   <none>        80:32007/TCP   9d

这样就可以通过任意集群节点IP+32007端口访问。

部署

添加helm仓库

$ helm repo add longhorn https://charts.longhorn.io
"longhorn" has been added to your repositories
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "longhorn" chart repository
...

为了简化,设置 alias kube=‘kubectl’

执行部署

$ kube create namespace longhorn-system
namespace/longhorn-system created
$ helm install longhorn longhorn/longhorn --namespace longhorn-system
NAME: longhorn
LAST DEPLOYED: Mon May 24 11:07:24 2021
NAMESPACE: longhorn-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Longhorn is now installed on the cluster!Please wait a few minutes for other Longhorn components 
such as CSI deployments, Engine Images, and Instance Managers to be initialized.

然后会在 longhorn-system命名空间下部署 csi-attacher、csi-provisioner、csi-resizer、engine-image-ei、longhorn-csi-plugin和longhorn-manager等Pod对象。

等待这些对象都变成 running后即部署完成。

$ kube get po -n longhorn-system
NAME                                        READY   STATUS    RESTARTS   AGE
csi-attacher-5dcdcd5984-6wk4k               1/1     Running   0          13m
csi-attacher-5dcdcd5984-7qtbj               1/1     Running   0          13m
csi-attacher-5dcdcd5984-rhrwt               1/1     Running   0          13m
csi-provisioner-5c9dfb6446-96hjf            1/1     Running   0          13m
csi-provisioner-5c9dfb6446-g6szj            1/1     Running   0          13m
csi-provisioner-5c9dfb6446-kfvzv            1/1     Running   0          13m
csi-resizer-6696d857b6-5s6pt                1/1     Running   0          13m
csi-resizer-6696d857b6-b4r87                1/1     Running   0          13m
csi-resizer-6696d857b6-w2hhr                1/1     Running   0          13m
csi-snapshotter-96bfff7c9-5ghjv             1/1     Running   0          13m
csi-snapshotter-96bfff7c9-ctwpt             1/1     Running   0          13m
csi-snapshotter-96bfff7c9-rzg66             1/1     Running   0          13m
engine-image-ei-611d1496-65hwx              1/1     Running   0          13m
engine-image-ei-611d1496-tlw2r              1/1     Running   0          13m
instance-manager-e-4fe8f5dc                 1/1     Running   0          13m
instance-manager-e-a6b90821                 1/1     Running   0          13m
instance-manager-r-6542f13a                 1/1     Running   0          13m
instance-manager-r-766ea453                 1/1     Running   0          13m
longhorn-csi-plugin-4c4qp                   2/2     Running   0          13m
longhorn-csi-plugin-qktcl                   2/2     Running   0          13m
longhorn-driver-deployer-5d45dcdc5d-jgsr9   1/1     Running   0          14m
longhorn-manager-k5tdr                      1/1     Running   0          14m
longhorn-manager-pl662                      1/1     Running   1          14m
longhorn-ui-5879656c55-jxmkj                1/1     Running   0          14m

注意默认会创建3个副本,部署完成后可通过 kube edit cm longhorn-storageclass -n longhorn-system 修改 numberOfReplicas值为合适的值,不能超过集群节点个数。

测试

基于longhorn部署一个nginx。

longhorn-pvc.yaml:

 apiVersion: v1kind: PersistentVolumeClaimmetadata:name: longhorn-pvc-demospec:accessModes:- ReadWriteOncevolumeMode: FilesystemstorageClassName: longhornresources:requests:storage: 2Gi

创建了一个基于longhorn存储类的PVC资源。Longhorn支持动态预配,可以自动创建出适配的PV卷。

 $ kube apply -f longhorn-pvc.yaml persistentvolumeclaim/longhorn-pvc-demo created$ kube get pvc/longhorn-pvc-demoNAME                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGElonghorn-pvc-demo   Bound    pvc-2202aaea-c129-44bc-9580-55914b6bd7ea   2Gi        RWO            longhorn       20s

绑定PVC

将该PVC作为一个卷挂载到下面这个 pod:

longhorn-pod.yaml:

 apiVersion: v1kind: Podmetadata:name: volume-testnamespace: defaultlabels:app: volume-testspec:containers:- name: volume-testimage: nginx:stable-alpineimagePullPolicy: IfNotPresentvolumeMounts:- name: volvmountPath: /usr/share/nginx/html # nginx默认html路径ports:- containerPort: 80volumes:- name: volvpersistentVolumeClaim:claimName: longhorn-pvc-demo

等待部署完成:

 $ kubectl get po volume-testNAME          READY   STATUS    RESTARTS   AGEvolume-test   1/1     Running   0          98s

在这里插入图片描述

在Longhorn UI中查看该卷状态为:Attached,因为测试集群就2个节点,这里创建了2个副本。每个卷会根据参数numberOfReplicas值创建副本数量。并且会每个节点只会创建一个副本。如下图,分别在rancher1和rancher2节点上创建了副本,以实现高可用。

进入容器内部,并找到挂载路径,修改文件。

 $ kube exec -it volume-test -- sh   # 进入容器内部/ # cd /usr/share/nginx/html//usr/share/nginx/html # ls  # ext4格式默认生成lost+found文件夹lost+found/usr/share/nginx/html # vi index.html # 创建index.html/usr/share/nginx/html # lsindex.html  lost+found/usr/share/nginx/html # cat index.html <!DOCTYPE html><html><head><title>Welcome to nginx!</title><style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}</style></head><body><h1>Hello Longhorn!</h1><p></p></body></html>

暴露服务,访问测试。

 $ kube expose pod volume-test --type=NodePort --target-port=80service/volume-test exposed$ kube get svc volume-testNAME          TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGEvolume-test   NodePort   10.43.253.209   <none>        80:32187/TCP   7s

在这里插入图片描述

删除pod:

 $ kube delete pod volume-testpod "volume-test" deleted

在这里插入图片描述

此时查看,该卷还存在,但状态为Detached。

重新挂载卷

重新创建一个pod,指定相同的persistentVolumeClaim.claimName。

longhorn-pod-2.yaml:

 apiVersion: v1kind: Podmetadata:name: volume-test-2namespace: defaultlabels:app: volume-test-2spec:containers:- name: volume-test-2image: nginx:stable-alpineimagePullPolicy: IfNotPresentvolumeMounts:- name: volv-2mountPath: /usr/share/nginx/html # nginx默认html路径ports:- containerPort: 80volumes:- name: volv-2persistentVolumeClaim:claimName: longhorn-pvc-demo

进入新的pod查看:

 $ kube exec -it volume-test-2 -- sh/ # cat /usr/share/nginx/html/index.html   lost+found// # cat /usr/share/nginx/html/index.html <!DOCTYPE html><html><head><title>Welcome to nginx!</title><style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}</style></head><body><h1>Hello Longhorn!</h1><p></p></body></html>

在这里插入图片描述

此时longhorn卷又自动挂载起来了。

清理测试资源:

 $ kube delete -f longhorn-pvc.yaml$ kube delete -f longhorn-pod-2.yaml

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

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

java初学者应该怎么学?

Java语言每年都在吸引更多同学前来入行&#xff0c;其中不乏存在很多初学者没有任何编程经验的人&#xff0c;那么我们作为初学者应该如何才能学好Java语言呢&#xff1f;小千给你几个建议。 1.切忌眼高手低 小千认为最重要的一点就是千万不要眼高手低&#xff0c;同学们无论是…...

git操作和笔记

使用本地的 git 工具操作 github 1. 网上创建好了有内容的仓库&#xff0c;本地去更新 将远端的仓库克隆到本地使用 git clone 地址 命令 远端地址分为两种 1. http 地址 2. ssh 地址 在克隆好的项目中更新一个 index.html将做好的更新提交到远端 在对应仓库打开 npm执行 git…...

安装好的matlab如何添加额外的工具箱Toolbox

最最简单的办法&#xff1a;就是通过MATLAB自己的附加功能里面去找&#xff0c;然后安装。 可能你会说要正版才可以&#xff0c;我不知道自己是不是正版&#xff0c;反正我是破解的那种&#xff0c;然后在官网下载额外的toolbox其实不需要你是否有正版授权&#xff0c;只要有一…...

一句话解释空洞卷积和反卷积

空洞卷积 通俗理解&#xff1a;在卷积核上增加空白数据&#xff0c;或者说是在卷积的时候固定跳过部分像素点&#xff0c;达到一次卷积看到的范围变大的效果。 作用&#xff1a;在不增加参数的情况下&#xff0c;增大感受野。&#xff08;效果等同于卷积池化&#xff0c;但是避…...

SpringBoot

1、SpringBoot&#xff1a;Hello,World&#xff01; SpringBoot简介 1.1、回顾什么是Spring Spring是一个开源框架&#xff0c;2003 年兴起的一个轻量级的Java 开发框架&#xff0c;作者&#xff1a;Rod Johnson 。 Spring是为了解决企业级应用开发的复杂性而创建的&#xf…...

MD5加密工具类

依赖 <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.7.1</version></dependency>md5加密工具类 package com.fsx.shiro.utils;import org.apache.shiro.crypto.hash.Md5H…...

javascript 幻灯片代码(含自动播放)

参见&#xff1a;https://www.runoob.com/w3cnote/javascript-slideshow.html...

paraview使用说明书

paraview tutorial&#xff1a;The ParaView Tutorial - KitwarePublic 1.简介 大多数人与ParaView相关联的应用程序实际上只是一个小的客户端应用程序&#xff0c;它构建在一堆库之上&#xff0c;这些库为ParaView提供了它的功能。 由于ParaView的绝大多数功能都是在库中实…...

python2.7安装pyqt4

起因 由于pyqt5对于pyqt4部分功能不兼容&#xff0c;因此在使用旧包的时候会报错。 这里尝试安装pyqt4&#xff0c;但是发现pyqt4的官方.exe安装包已经不提供支持&#xff0c;使用pip install Pyqt4也会失效&#xff0c;因此直接绕过这些步骤&#xff0c;使用.whl文件进行安装…...

【学习笔记】Java 8函数式编程#Lambda表达式#方法引用

全文目录函数式编程&#xff1a;Functional programming函数式编程的一些基本概念函数式编程的定义&#xff1a;程序的副作用&#xff1a;函数编程与数学函数&#xff1a;设计函数式编程应该遵循的原则&#xff1a;First-Class and Higher-Order Functions纯函数不变性引用透明…...

单线程+异步I/O的编程模型:协程

现代操作系统对I/O操作的改进中最为重要的就是支持异步I/O。如果充分利用操作系统提供的异步I/O支持&#xff0c;就可以用单进程单线程模型来执行多任务&#xff0c;这种全新的模型称为事件驱动模型。Nginx就是支持异步I/O的Web服务器&#xff0c;它在单核CPU上采用单进程模型就…...

实验一Ping 扫描实验

实验一Ping 扫描实验 预备知识: Ping是Windows和Linux都自带的一个扫描工具&#xff0c;用于校验与远程计算机或本机的连接。只有在安装TCP/IP协议之后才能使用该命令。Ping命令通过向计算机发送ICMP 回应报文并且监听回应验与远程计算机或本地计算机的连接。对Ping最多等待1秒…...

Java枚举类与注解——一篇文章读懂枚举类与注解

文章目录一、枚举类① 自定义枚举类② enum关键字定义枚举类③ enum 枚举类的方法④ enum 枚举类实现接口二、注解① 生成文档相关注解②注解在编译时进行格式检查③注解跟踪代码的依赖性&#xff0c;实现替代配置文件功能④ 自定义注解⑤ jdk提供的4种元注解⑥ JKD8 新特性&am…...

Git一个项目中引用其他Git仓库

// git submodule add [git地址] [目录位置] $ git submodule add https://xxx/gittest.git src/gittest使用submodule后 在当前git目录下会生成一个 .gitmodules 文件 如果但当前目录已经存在了一个 .gitmodules&#xff0c;命令需要更改为 $ git submodule add -f https://…...

工作中让他人做选择题

object事实信息reflective感受体会联想interpretive理解思考decision决定行动你看到/听到/记得什么你感觉怎么样学到/领悟什么下一步该做什么 O 场景&#xff1a;Car在某次制办事情不断请示领导&#xff0c;领导最终以选择题提问方式反向给出了答案。 R 感受是错过了一次可以做…...

2021.6.1

链接查询 连接查询可分为内连接和外连接。 一.内连接&#xff1a;内连接分3种&#xff1a;交叉连接、相等连接、自然连接。 1.内连接语法&#xff1a; 1.交叉连接&#xff1a; 交叉链接又称“笛卡尔链接”&#xff0c;即所有类型的内连接的基础 语法 select * from table…...

SpringBoot入门及官网教程

文章目录http://felord.cn/_doc/_springboot/2.1.5.RELEASE/_book/https://spring.io/projects/spring-boothttps://springboot.io/http://felord.cn/_doc/_springboot/2.1.5.RELEASE/_book/ https://spring.io/projects/spring-boot https://springboot.io/...

【MyBatis详解】——从Xml配置解析到SQL执行过程

目录整体架构与使用DemoMybatis核心流程1. 创建SqlSessionFactory配置解析——SQL解析&#xff08;存储MappedStatement到Configuration中&#xff09;SqlNodeMappedStatementSqlSourceBoundSql2. 创建SqlSessionSqlSessionExecutor3. 获取Mapper4. 通过Mapper接口调用CRUD方法…...

JDK8新特性里提供了3个时间类:LocalDate、LocalTime、LocalDateTime

参考资料&#xff1a;好好学Java https://mp.weixin.qq.com/s/Dd_7yUh3lq3TqE2cjsYXvw JDK8新特性里提供了3个时间类&#xff1a;LocalDate、LocalTime、LocalDateTime 在项目开发中&#xff0c;已经需要对Date类型进行格式&#xff0c;否则可读性很差&#xff0c;格式化Date…...

c++:mt19937生成随机数

随机生成&#xff1a; int rd(){mt19937 rd1(time(NULL));return rd1(); }指定随机数的生成范围&#xff1a; int rd(){mt19937 rd1(time(NULL));uniform_int_distribution<int>t(0,100000);//指定范围return t(rd1); }...

Linus ntfs

再强调一下&#xff0c;这个网站一定得记下来 https://www.tuxera.com/company/open-source/ 从这儿下下来源码&#xff0c;然后 &#xff03;./configure &#xff03;make &#xff03;make install 或者能在这个站内打到对应的自己系统的.rpm会更省心...

超详细的wireshark笔记(8)-HTTP协议

HTTP的工作方式算不上复杂&#xff0c;先由客户端向服务器发起一个请求&#xff0c;再由服务器回复一个响应。根据不同需要&#xff0c;客户端发送的请求会用到不同方法&#xff0c;有GET POST&#xff0c;PUT和HEAD等。比如在网站上登录账号时就可能用到POST方法。 由于HTTP协…...

2021年茶艺师(中级)模拟考试及茶艺师(中级)模拟考试系统

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 茶艺师&#xff08;中级&#xff09;模拟考试是安全生产模拟考试一点通总题库中随机出的一套茶艺师&#xff08;中级&#xff09;模拟考试系统&#xff0c;在公众号安全生产模拟考试一点通上点击茶艺师&#xff08;中…...

Forecast at energy(Smart meters in London)

To better follow the energy consumption, the government wants energy suppliers to install smart meters in every home in England, Wales and Scotland. There are more than 26 million homes for the energy suppliers to get to, with the goal of every home havin...

【C++基础语法入门】6.函数

函数 目录&#xff1a;1.函数的定义2.函数的调用3.值传递4.函数的常见样式5.函数的声明6.函数的分文件撰写作用&#xff1a;将一段经常使用的代码封装起来&#xff0c;减少重复代码 1.函数的定义 函数的定义一般主要有5个步骤&#xff1a; 返回值类型&#xff1b; 函数名&…...

17.ES6 模块export import

概述 在 ES6 前&#xff0c; 实现模块化使用的是 RequireJS 或者 seaJS&#xff08;分别是基于 AMD 规范的模块化库&#xff0c; 和基于 CMD 规范的模块化库&#xff09;。 ES6 引入了模块化&#xff0c;其设计思想是在编译时就能确定模块的依赖关系&#xff0c;以及输入和输出…...

浏览器原理(组成、引擎、渲染机制)

文章目录一、PC端常用浏览器/概念1.2软件项目开发二个不同体系二、浏览器2.1 内核和js引擎2.2 浏览器的组成部分2.3 浏览器如何渲染UI&#xff1f;2.4 浏览器如何解析CSS选择器&#xff1f;2.5 DOM树如何创建&#xff1f;一、PC端常用浏览器/概念 PC端浏览器 &#xff1a;谷歌…...

phpShort v3.2 – PHP短网址平台源码

介绍&#xff1a; phpShort是高级的URL缩短器平台&#xff0c;它使您可以轻松地缩短链接&#xff0c;根据受众群体的位置或平台来定位受众&#xff0c;并为缩短的链接提供分析见解。 提起这个源码&#xff0c;本站还是发布了该作者的一些其他源码&#xff0c;比如phpAnalytics…...

SpringBoot

1、SpringBoot&#xff1a;Hello,World&#xff01; SpringBoot简介 1.1、回顾什么是Spring Spring是一个开源框架&#xff0c;2003 年兴起的一个轻量级的Java 开发框架&#xff0c;作者&#xff1a;Rod Johnson 。 Spring是为了解决企业级应用开发的复杂性而创建的&#xf…...

Spring Cloud Stream 3.1.x版本,弃用@StreamListener而采用函数式编程实现RocketMQ的接入

一、背景描述 自Spring Cloud 2020版本开始&#xff0c;Spring Cloud Stream的版本升级至3.1.0以上版本&#xff0c;目前最新版本为3.1.3。 自此版本开始StreamListener上面就增加Deprecated注解&#xff0c;不赞成使用&#xff0c;有可能接下来的版本会删除掉。下面就介绍下以…...

coreldraw2018最新版信息功能与特点大全附下载链接

1.coreldraw功能软件的开发和设计完全基于人工智能和机器学习的最新发展。形式自由的草图会在启用触摸功能的设备上转换为精准的矢量曲线。 增强节点、手柄和矢量预览使用增强的预览、节点和手柄功能&#xff0c;可以更有效地编辑对象和效果&#xff0c;也不会迷失在设计的背景…...

Corel Paintshop pro 2020安装教程和中文设置教程

Corel Paintshop pro 2020是一款专业强大的相片图片编辑器&#xff0c;它可以完美替代ps&#xff0c;拥有图形设计、照片编辑、相片管理等众多功能&#xff0c;支持raw相机文件的编辑修饰工作&#xff0c;新版完善了新的工作流程和效果&#xff0c;拥有更快更好的渲染效果&…...

win7 CorelDRW9增强版补丁运行

本人上网下载的绿色版CorelDraw12&#xff0c;原来在WINDOWS2003下面运行一切正常&#xff0c;但是将系统换到WINDOWS2008R2后&#xff0c;运行时出现这个&quot;configdir not found in the registry&quot;错误&#xff0c;点确定之后&#xff0c;还会报一个“language…...

服务器配置怎么查看

服务器配置怎么查看 在我们找服务器商买服务器时&#xff0c;一般都是根据自己需求来选择需要什么配置的服务器。 选服务器时主要看CPU、内存、硬盘、带宽、这几个主要配置今天艾西就教你怎么查看服务器配置 CPU、内存怎么查看&#xff1a; 方法一&#xff1a;我们远程进入服…...

power shell 批量修改文件名

power shell 批量修改文件名 # 替换 ls | Rename-Item -NewName {$_.name -replace trip,} # 截取名称 ls | Rename-Item -NewName {$_.name.substring(0,$_.BaseName.length-8) $_.Extension}...

bat批量修改文件名

1.将文件全部存入同一文件夹&#xff0c;打开cmd&#xff0c;进入到文件夹。 2.输入命令&#xff1a;dir /b>rename.xls 3.打开rename.xls&#xff0c;将A内容复制到B&#xff0c;选中B&#xff0c;ctrlH&#xff0c;将文件名批量替换成要修改的文件名。 4.输入公式&…...

批量修改文件名方法:everything软件

批量修改文件名的最佳方法 打开everything软件&#xff0c;直接待修改文件的文件夹的路径 然后选中要修改的文件&#xff0c;按F2进入修改模式 这里我将原本的img00076这样的文件名修改为000076&#xff0c;可以在界面中逐步尝试&#xff0c;每一次修改都是实时显示修改结果 确…...

使用正则批量修改文件名

批量修改还有汉字的文件名 import os import repath "./data/test" path_list os.listdir(path) # 获取当前文件下所有文件for path_name in path_list:dir_path path "/" path_name # 拼接老路径new_pn re.sub("[\u4e00-\u9fa5]" ,&qu…...

Window批量修改文件名

需要一个图片组用于帧动画&#xff1b; 1、全选需要修改的文件 &#xff0c; 在第一个文件处右击选择重命名&#xff0c;修改后是这样的&#xff1b; 这样整体的文件名已经修改&#xff0c;然后需要去除空格和括号&#xff1b; 2、把这两个bat文件放在需要重命名的文件夹下 &a…...

cmd自定义批量修改文件名

使用情景&#xff1a; 1.批量变更文件名的后缀。比如.png改为.jpg 2.文件名编写格式变化&#xff0c;需要统一变更。比如A_123.jpg改为A.jpg 实现步骤&#xff1a; 1.在需要修改文件名称的文件夹中&#xff0c;新建一个bat文件。 ren_files.bat 2.右键编辑bat文件&#xff0…...

Windows批量修改文件名

本篇为《Windows相关》系列博客的第一篇&#xff0c;该系列博客主要记录Windows10系统的操作过程&#xff0c;方便以后查阅。 今天从师哥那里学的&#xff0c;现在记录一下&#xff0c;以后用到方便查找。 打开cmd 进入到需要修改的文件夹内 将该目录下的所有文件都输出到1.t…...

使用python批量修改文件名

使用python对文件名进行批量修改 使用split方法对原文件名进行切分&#xff0c;选择需要的部分进行保留做为新的文件名&#xff0c;也可添加字段。 函数说明 split()函数 语法&#xff1a;str.split(str"",numstring.count(str))[n] 参数说明&#xff1a; str&#…...

python批量修改文件名代码_python批量修改文件名的示例

今天中午看了一集动漫《进击的巨人》&#xff0c;看完后发现这些视频的名称有点乱&#xff0c;于是编程来批量重命名。 重命名之前的各名称格式为——飞极速【www.feijisu.com】[16][720P][CHS-JAP] AVC.mp4&#xff0c;可以看到这个中间是有集数的&#xff0c;因此可以使用正则…...

使用git批量修改文件名

使用git批量修改文件名 单个Excel文件测试批量修改是否正确&#xff1b; $ echo 批量修改文件名old1.xlsx | sed -E s/old/new/目录下所有Excel文件&#xff0c;测试批量修改是否正确&#xff1b; $ ls *.xlsx | sed -E s/old/new/使用echo命令查看&#xff1a;文件名修改前…...

利用python对批量修改文件名

利用python对批量修改文件名 当你得到一些同类型的文件时&#xff0c;文件名是混乱的。为了方便观看&#xff0c;需要进行修改文件名。就例如&#xff1a;收作业&#xff0c;收取文件。 下面讲讲我对修改文件名的方法。 思路&#xff1a; 获取文件名 > 用正则表达式进行数…...

c 语言 批量更改文件名,rename 批量修改文件名

rename与mv的区别就是mv只能对单个文件重命名&#xff0c;而rename可以批量修改文件名linux中的rename有两种版本&#xff0c;一种是C语言版的&#xff0c;一种是Perl版的&#xff0c;如何区分系统里的rename是哪个版本的&#xff0c;可以通过一下方式&#xff1a;输入man rena…...

shell批量修改文件名

一.加后缀 #&#xff01;/bin/bashfor files in ls *. domv $files echo "$filests" done2. 同上 mv $files ${files}ts3. 同上 mv $files $files.ts|sed s/\.// 4. file &#xff1d;>file.txt mv $files $files.txt5. *.04 > *04.txt mv $files $(ec…...

Win10 批量修改文件名

批量修改文件名 此方法的执行语句&#xff1a;REN “old fname” “new fname”(英文状态下的双引号) 1.在目标文件夹下创建一个 TXT文件 1.1输入内容&#xff1a; DIR . /B>文件名列表.csv &#xff08;用于获取当前文件夹内所有的文件名&#xff09; 1.2另存为&#…...

C++ Primer Plus第五版笔记(p1-50)

1 在unix中 echo 获得状态 2iostream 包含istream以及ostream:随着时间的推移&#xff0c;字符是按照顺序生成或者是消耗的 3cin标准输入 cout标准输出 Cerr标准错误 clog 一般性信息 4cin>>c1>>c2&#xff1b;连续输入 5cout是ostream的对象&#xff0c;第一个<…...

如何快速批量修改文件名

文件太多&#xff0c;文件名太乱&#xff0c;希望快速批量修改文件名&#xff0c;以下的两种方法可以帮到你&#xff0c;亲测好用。 方法一 1.选中需要批量修改的文件&#xff0c;如图1 图12.按F2键&#xff0c;输入文件名。如图2. 图23.Enter&#xff0c;效果如图3. 图3方法…...