上一页 1 2 3 4 5 6 7 8 ··· 17 下一页
摘要: vmware-NAT网络模式下-设置静态IP后无法连接Internet的问题 1.设置VMware手动DNS 编辑→虚拟网络编辑器→NAT设置→DNS设置 centos8 stream设置网络配置 临时配置:立即生效,重启后配置丢失 ifconfig eth0 192.168.0.128 netma 阅读全文
posted @ 2023-07-29 18:04 苏格拉底的落泪 阅读(432) 评论(0) 推荐(0)
摘要: 参考资料 1. 调整ceph的pg数(pg_num, pgp_num) 2. Ceph中PG和PGP的区别 阅读全文
posted @ 2023-07-28 13:35 苏格拉底的落泪 阅读(243) 评论(0) 推荐(0)
摘要: 异常 def execpt_test(a, b): result = a / b return result def divide_numbers(a, b): try: execpt_test(a, b) except ZeroDivisionError: print("除数不能为零!") pri 阅读全文
posted @ 2023-07-28 10:02 苏格拉底的落泪 阅读(19) 评论(0) 推荐(0)
摘要: 迭代器 1. next函数原型: next(iterable[, default]) 参数说明: iterable -- 可迭代对象 default -- 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。 it = iter([1 阅读全文
posted @ 2023-07-27 09:42 苏格拉底的落泪 阅读(31) 评论(0) 推荐(0)
摘要: 输出函数:print print() 方法用于打印输出,最常见的一个函数。 print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。 语法: print(*objects, sep=' ', end='\n', file=sys.stdout, f 阅读全文
posted @ 2023-07-24 11:35 苏格拉底的落泪 阅读(322) 评论(0) 推荐(0)
摘要: for循环 "for" 是一个迭代循环语句,用于遍历可迭代对象(例如列表、元组、字符串等)中的元素,并执行相应的操作。它的基本语法如下: for 变量 in 可迭代对象: # 执行操作 在每次循环中,变量会依次被赋值为可迭代对象中的元素,然后执行相应的操作。这个循环会一直进行,直到所有的元素都被遍历 阅读全文
posted @ 2023-07-24 09:16 苏格拉底的落泪 阅读(246) 评论(0) 推荐(0)
摘要: 通过nfsd搭建nfs server NFS(Network File System)是Linux系统之间(类Unix系统之间)使用最为广泛的文件共享协议,不同于ftp或http,需要将文件下载后使用,NFS方式的共享是可以直接使用而不需要下载的。 mout过程: 原理: NFS本身的服务并没有提供 阅读全文
posted @ 2023-07-20 16:46 苏格拉底的落泪 阅读(594) 评论(0) 推荐(0)
摘要: option 在 CMake 中,option() 命令的默认值取决于你如何定义它。 option() 命令的语法是: option(<variable> "description" [initial value]) 如果你指定了初始值(ON 或 OFF),那么默认值就是你指定的值 如果你没有指定初 阅读全文
posted @ 2023-07-19 20:37 苏格拉底的落泪 阅读(293) 评论(0) 推荐(0)
摘要: 刚刚 参考资料 1. 修改ceph的IP地址 阅读全文
posted @ 2023-07-18 15:52 苏格拉底的落泪 阅读(41) 评论(0) 推荐(0)
摘要: 逻辑运算符 print (1 and 5 or 0) #先计算1 and 5 为5再计算5 or 0 为5 print (1 or 5 and 0 or 6 and 0) """ 先计算5 and 0为0,6 and 0为0 整个语句就变为1 or 0 or 0结果为1 """ print(not 阅读全文
posted @ 2023-07-11 14:54 苏格拉底的落泪 阅读(12) 评论(0) 推荐(0)
摘要: 条件变量Condition 函数作用说明: 函数 作用 acquire 线程锁,注意线程条件变量 Condition 中的所有相关函数使用必须在acquire/release内部操作; release 释放锁,注意线程条件变量 Condition 中的所有相关函数使用必须在acquire/relea 阅读全文
posted @ 2023-07-07 10:30 苏格拉底的落泪 阅读(65) 评论(0) 推荐(0)
摘要: optparse ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest] 阅读全文
posted @ 2023-07-06 11:47 苏格拉底的落泪 阅读(190) 评论(0) 推荐(0)
摘要: asyncore用法 使用asyncore模块创建域套接字的示例: import asyncore import socket class EchoServer(asyncore.dispatcher): def __init__(self, address): asyncore.dispatche 阅读全文
posted @ 2023-07-06 11:22 苏格拉底的落泪 阅读(114) 评论(0) 推荐(0)
摘要: dd 命令参数如下: 块:使用块可以提高数据传输的效率。一次读取和写入多个字节(而不是一个字节)可以减少系统调用的次数,从而加快整体速度。如果在使用dd命令时不指定块大小(bs),dd会使用默认的块大小。默认情况下,dd通常会使用512字节作为块大小。这意味着在没有特别指定的情况下,dd每次将读取和 阅读全文
posted @ 2023-07-05 10:08 苏格拉底的落泪 阅读(199) 评论(0) 推荐(0)
摘要: syscall函数 系统调用号 函数名 入口点 源码 0 read sys_read fs/read_write.c 1 write sys_write fs/read_write.c 2 open sys_open fs/open.c 3 close sys_close fs/open.c 4 s 阅读全文
posted @ 2023-06-28 22:42 苏格拉底的落泪 阅读(389) 评论(0) 推荐(0)
摘要: tgt服务端流程分析 2. backing store tgt支持多种后端存储,比如rdwr,aio,sg,rbd,sheepdog等,默认的是rdwr,可以指定flag(O_SYNC|O_DIRECT)。了解清楚tgt的后端存储的处理模式,就可以添加新的后端存储用于支持自定义的功能。 其中主要的接 阅读全文
posted @ 2023-06-28 14:47 苏格拉底的落泪 阅读(179) 评论(0) 推荐(0)
摘要: 配置使用iscsi 图解: 请确保服务器A上已经关闭了防火墙或者允许了3260端口。下图描述了使用iSCSI的大致过程,后文内容虽然因为介绍各种用法而显得比较杂,但根据这张图的流程,阅读时很容易搞清楚相关内容。 gtadm是一个高度模式化的命令,他们的模式很相近。有三个模式:target、logic 阅读全文
posted @ 2023-06-28 14:37 苏格拉底的落泪 阅读(75) 评论(0) 推荐(0)
摘要: 函数fmemopen、函数open_memstream 1. open_memstream函数原型: #include <stdio.h> FILE *open_memstream(char **ptr, size_t *sizeloc); 2. fmemopen函数原型: #include <st 阅读全文
posted @ 2023-06-27 14:17 苏格拉底的落泪 阅读(444) 评论(0) 推荐(0)
摘要: tgtadm命令 tgtadm -L iscsi -o show -m target tgt-admin --show 输出: Target 1: iqn.hxl.com.test System information: Driver: iscsi State: ready I_T nexus in 阅读全文
posted @ 2023-06-26 16:38 苏格拉底的落泪 阅读(201) 评论(0) 推荐(0)
摘要: 配置使用iscsi 1.为了能在tgt中使用librbd访问ceph的块设备,需要tgt有相应的模块,你可以通过以下命令来确认。 tgtadm --lld iscsi --mode system --op show|grep rbd rbd (bsoflags sync:direct) 如果有类似于 阅读全文
posted @ 2023-06-26 15:32 苏格拉底的落泪 阅读(602) 评论(1) 推荐(0)
摘要: 命令rbd 创造镜像: rbd create iscsi-size 4096 -p iscsi 查看创建的image: rbd -p iscsi ls #查看镜像详细信息: rbd info iscsi/iscsi-image 将镜像重命名: 将iscsi-image01重新命名为iscsi-ima 阅读全文
posted @ 2023-06-26 15:03 苏格拉底的落泪 阅读(82) 评论(0) 推荐(0)
摘要: 参考资料 1. CTDB使用radosobject作为lockfile 阅读全文
posted @ 2023-06-19 15:57 苏格拉底的落泪 阅读(29) 评论(0) 推荐(0)
摘要: xz -z, --compress # 强制压缩 -d, --decompress, --uncompress # force decompression -t, --test # 测试压缩文件的完整性 -l, --list # 列出有关.xz文件的信息 -k, --keep # 保留(不要删除)输 阅读全文
posted @ 2023-06-16 11:39 苏格拉底的落泪 阅读(302) 评论(0) 推荐(0)
摘要: 关键字global Python 中的全局变量默认是可以在所有的函数内访问的,但是,如果在函数中定义了与全局变量同名的变量时,就会发生局部变量隐藏了全局变量的情形。如果局部变量隐藏了全局变量,那么当我们再次访问全局变量时,程序会报错,会说找不到该变量,因为,该全局变量被局部变量隐藏了。当局部变量与全 阅读全文
posted @ 2023-06-13 21:30 苏格拉底的落泪 阅读(210) 评论(0) 推荐(0)
摘要: linux命令crontab cron是一个在后台运行调度的守护进程,而crontab是一个设置cron的工具。cron调度的是/etc/crontab文件。 crontab安装: yum install crontabs crontab关闭以及启动等命令: service crond status 阅读全文
posted @ 2023-06-11 11:06 苏格拉底的落泪 阅读(143) 评论(0) 推荐(0)
摘要: lambda lambda是匿名函数,也就是没有名字的函数。lambda的语法非常简单: 下面是一个lambda表达式的简单例子,我们可以把lambda表达式赋值给一个变量,然后通过这个变量来使用它: >>> my_sum = lambda x, y: x+y >>> my_sum(1, 2) 3 阅读全文
posted @ 2023-06-08 21:45 苏格拉底的落泪 阅读(128) 评论(0) 推荐(0)
摘要: 多文件编程 在Python中,可以将代码拆分成多个文件进行编程,这样有助于组织和维护大型程序。以下是一些常用的方法: 模块导入:将代码划分成几个逻辑上相似的文件,然后使用import语句导入需要使用的模块。 包:将相关的模块放到同一个文件夹内,并加上一个名为__init__.py的空文件,这个文件会 阅读全文
posted @ 2023-06-08 20:20 苏格拉底的落泪 阅读(1819) 评论(0) 推荐(1)
摘要: 同步队列模块queue queue 模块实现了多生产者、多消费者队列。这特别适用于消息必须安全地在多线程间交换的线程编程。模块中的 Queue 类实现了所有所需的锁定语义。 函数 作用 Queue.qsize() 返回队列的大致大小。注意,qsize() > 0 不保证后续的 get() 不被阻塞, 阅读全文
posted @ 2023-06-07 19:45 苏格拉底的落泪 阅读(184) 评论(0) 推荐(0)
摘要: collections模块之namedtuple 因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造一个带字段名的元组。具名元组的实例和普通元组消耗的内存一样多,因为字段名都 阅读全文
posted @ 2023-06-07 15:47 苏格拉底的落泪 阅读(256) 评论(0) 推荐(0)
摘要: 参考资料 1. 强引用和弱引用 阅读全文
posted @ 2023-06-07 10:04 苏格拉底的落泪 阅读(44) 评论(0) 推荐(0)
摘要: threading模块之Semaphore import threading import time import random # The optional argument gives the initial value for the internal counter; # it defaul 阅读全文
posted @ 2023-06-06 19:49 苏格拉底的落泪 阅读(203) 评论(0) 推荐(0)
摘要: 循环语句 yield from 是Python 3中的一个语法,用于在生成器中委托另一个生成器来产生值。当使用 yield from iterable 时,iterable 应该是一个可迭代对象(如列表、元组、字典、字符串等),其每个元素都是一个生成器。使用 yield from 可以将这些嵌套的生 阅读全文
posted @ 2023-06-06 19:08 苏格拉底的落泪 阅读(36) 评论(0) 推荐(0)
摘要: 函数 方法: def func_name(param1, param2){ # 执行语句... return val } # 调用函数 func_name(param1 = p1, param2 = p2) func_name(param2 = p2, param1 = p1) 参数: 参数 描述 阅读全文
posted @ 2023-06-06 19:02 苏格拉底的落泪 阅读(72) 评论(0) 推荐(0)
摘要: threading模块之event python的 Event 对象用于线程间通信,即程序中的某一个线程需要通过判断另一个线程的状态来确定自己下一步的操作,这时就需要使用 event 对象。Event 对象包含一个可由线程设置的信号标志,它允许线程等待某些事件的发生。在初始情况下,Event 对象中 阅读全文
posted @ 2023-06-06 16:16 苏格拉底的落泪 阅读(869) 评论(0) 推荐(0)
摘要: with语法 python从2.5版本开始引入了 with 语法。此语法非常实用,在有两个相关的操作需要在一部分代码块前后分别执行的时候,可以使用 with 语法自动完成。同事,使用 with 语法可以在特定的地方分配和释放资源,因此, with 语法也叫做“上下文管理器”。在threading模块 阅读全文
posted @ 2023-06-06 13:43 苏格拉底的落泪 阅读(64) 评论(0) 推荐(0)
摘要: 参数 / 与 参数 * 意思如下: / 符号之前的所有参数,都必须以位置方式传参,不可以关键字参数传参 * 符号之后的所有参数,都必须以关键字方式传参,不得以位置方式传参 如果你希望强迫调用者使用某些参数,且必须以关键字参数的形式传参,那么你只需要在所需位置的前一个位置放置一个*。 def f1(a 阅读全文
posted @ 2023-06-06 11:27 苏格拉底的落泪 阅读(70) 评论(0) 推荐(0)
摘要: yield 生成器:生成器是一种特殊类型的函数,其可以使用yield语句来实现迭代器,从而逐个地返回一个序列中的值。相比于常规的函数,生成器函数在需要时才会生成下一个结果,避免了一次性产生所有结果的不便,并且可以节约内存空间。生成器可以通过循环或者列表解析式调用,也可以使用内置函数next()来得到 阅读全文
posted @ 2023-06-06 11:11 苏格拉底的落泪 阅读(77) 评论(0) 推荐(0)
摘要: 函数print name = "John" age = 30 print("My name is", name, "and I am", age, "years old.") 输出: My name is John and I am 30 years old. >>> name = "Eric" > 阅读全文
posted @ 2023-06-03 22:53 苏格拉底的落泪 阅读(153) 评论(0) 推荐(0)
摘要: threading模块之Thread 使用线程最简单的一个方法是用一个目标函数实例化一个Thread然后调用 start() 方法启动它。Python的threading模块提供了 Thread() 方法在不同的线程中运行函数或处理过程等。 class threading.Thread(group= 阅读全文
posted @ 2023-06-03 16:20 苏格拉底的落泪 阅读(388) 评论(0) 推荐(0)
摘要: 类变量 在类里面定义,且不位于构造或者成员函数里面,同时没有" self. " 的前缀;或者在类外定义,用 类名.类变量名 来新增加类变量。两种使用方法: (1)类名.类变量名(如下的 Test.a) (2)类的实例对象.类变量名(如下的 T.a) class Test: a = 1 ### 类变量 阅读全文
posted @ 2023-06-03 11:12 苏格拉底的落泪 阅读(147) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 ··· 17 下一页