自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kaoa000的专栏——非淡泊无以明志,非宁静无以致远

坚持,还是坚持,最难的就是坚持,能坚持两年就算胜利

  • 博客(483)
  • 收藏
  • 关注

原创 Linux入门攻坚——23、DNS和BIND基础入门2

如上面的ops.mytest.com子域中有一台主机要访问其父域中的一台主机,如www.mytest.com,因为ops.mytest.com子域名称服务器并不知道这个域名的地址,它只能去问根,因为它只知道根的位置,而不会去问其父域mytest.com的名称服务器,这显然有些啰嗦且不合理,于是在子域中可以定义转发服务器,即指定一个区域,在自己不负责解析的时候,转发给这个指定的区域。3、配置从服务器成为正向解析的从服务器,从服务器只需要定义区域,而不需要提供解析库文件,解析库文件从其他服务器中传递过来;

2024-05-21 14:26:50 583

原创 Linux入门攻坚——23、DNS和BIND基础入门1

上面图示是一个理论上的过程,但是如果这样,客户机会很麻烦,实际中,客户机不会频繁的去访问各个域管理机,而是会直接问询设置中的域服务器,我们的主机IP地址设置中都会设置主DNS服务器地址,备DNS服务器地址等,客户机是访问这个DNS服务器的,由他来完成上面的过程。一般域名是指的一个范围,而常说的访问某个域名,如www.abc.com,说的是主机的域名,即主机名加上域名,域名最右边是点号,代表根,必须要有的,平时使用没有是因为软件帮我们自动添加。},recursion yes表示允许递归查找。

2024-05-11 17:31:46 868 1

原创 Linux入门攻坚——22、通信安全基础知识及openssl、CA证书

随机数生成器:熵池,用于存储随机数,随机数是由随机事件产生的,如敲击键盘、磁盘I/o等,两个伪设备,用于生成随机数。1、进入CA根目录,生成CA的私钥,按照上面的配置CA根目录是/etc/pki/CA,CA自己的私钥为/etc/pki/CA/private/cakey.pem。这个httpd.csr,就是一个待签发的证书,所谓签发,就相当于CA用自己的印戳在这个文件上盖上印,实际就是CA用自己的密钥在这个文件上数字签名。不同的服务,不同的证书,不同的密钥,使用者先向RA申请生成密钥。

2024-05-08 07:37:37 688

原创 Linux入门攻坚——21、gawk入门

按行读取文件,将读取的内容以-F指定的分隔符(默认为空白字符)进行分隔,形成多个部分,将不同的部分赋值给awk的内置位置变量,如$1,$2,$3...,而$0表示整行。sub(r,s,[t]):以r表示的模式来查找t所表示的字符中的匹配的内容,并将其第一次出现替换为s所表示的内容;gsub(r,s,[t]):以r表示的模式来查找t所表示的字符中的匹配的内容,并将其所有出现替换为s所表示的内容;split(s,a[,r]):以r为分隔符切割字符s,并将切割后的结果保存至a所表示的数组中;

2024-04-29 15:37:32 601

原创 Linux入门攻坚——20、systemd、(sysvinit、upstart重温)

再一次讲到Linux系统启动流程:对于init,即系统内核加载完毕后(加载kernel和切换根文件系统)运行的第一个用户空间进程,是管理用户空间的首进程,其他用户进程都是直接或间接由此进程创建的。init 进程以守护进程的方式存在,负责组织与运行系统的相关初始化工作,让系统进入定义好的运行模式。

2024-04-25 13:35:29 604

原创 Linux入门攻坚——19、sed入门、bash脚本编程续

{var%word*}:word可以是指定的任意字符,功能:自右而左,查找var变量所存储的字符串中,第一次出现的word,删除字符串最后一个字符向左至第一次出现word字符之间的所有字符;${var#*word}:word可以是指定的任意字符,功能:自左而右,查找var变量所存储的字符串中,第一次出现的word,删除字符串开头至第一次出现word字符之间的所有字符;${var//pattern/substi}:查找var所表示的字符串中,所有能被pattern所匹配到的字符串,以substi替换之;

2024-04-19 10:01:54 636

原创 Linux入门攻坚——18、SELinux、Bash脚本编程续

SELinux开启时会为系统中开启的每一个程序和每一个文件加载一个标签,特定标签的程序只能读取或者操作特定标签的文件,如果标签不配套,该访问就会被禁止,这种在文件上的标签被称为 安全上下文,在程序上的标签为sebool值。linux中的权限控制,一个进程能够访问的资源是运行这个进程的用户的权限所决定的,如果想限定这个进程,不管是哪个用户,都只能访问有限的几个资源,则linux自身完成不了,这就需要selinux。CONDITION:循环控制条件,进入循环之前,先做一次判断,每一次循环之后会再次做判断;

2024-04-09 13:37:57 1261

原创 Linux入门攻坚——17、Linux内核编译及系统安装

从http服务器上看,已经读取了repo文件,解析出问题了,这里的http内容是将光盘ISO解压后的内容,这个问题可能是源的问题,是不是repodata下的文件需要重新生成?此问题不知道解决方法,留待以后吧。鸡与蛋的问题:anaconda的运行是基于内核的,即需要在内核支持下运行,但是安装CentOS之前,是没有内核的。已经是自己制作的引导光盘了。按ESC键,命令行输入:linux ks=cdrom:///myks1.cfg,就可以按光盘上的ks文件执行安装,但是在repo时,同样出现了错误。

2024-03-12 07:46:13 983

原创 Linux入门攻坚——16、Linux系统启动流程

通过上面的信息,root(hd0,0)就是指定/boot所在的分区,即/dev/sda1,kernel加载的内核文件 /vmlinuz-2.6.32-754.el6.x86_64,实际上是(hd0,0)/vmlinuz-2.6.32-754.el6.x86_64,这里的根是指的boot分区,后面的参数root=/dev/mapper/vg_study610-lv_root,才是指定文件系统的根分区,其使用的是lvm,看上图,mount信息中根“/”的挂载设备就是这里的参数值。

2024-02-29 15:20:01 757

原创 Linux入门攻坚——15、进程和作业管理

父子关系:进程都由其父进程创建,父进程调用fork(),创建子进程,子进程与父进程一开始拥有相同的空间,当子进程需要修改数据时,发生写时拷贝(CoW),clone()父进程,然后指向克隆后的起始空间,执行自己的修改操作。最底层是硬件,硬件之上是操作系统,也叫内核(即kernel),操作系统提供的是系统调用,在内核之上,是各种库,提供库函数,在此之上是各种应用程序,应用程序可能是基于库函数实现的,也可能直接使用系统调用。cronie-anacron:cronie的补充程序,用于监控cronie任务执行状况;

2024-02-23 14:48:33 940

原创 Pyhton专项进阶——http协议、cookie、session和认证-3

通过抓包,可以发现,所谓的session就是在cookie中保存了一个key为session,value是加密字符串的东西,而在服务器端,保存了对应的用户信息,就是SecureCookieSession对象,其中保存了user:root这个信息,通过session的值,就能找到这个对象及其相关信息。:显示登录页面,输入用户和密码,后端验证,如果验证通过,则登录成功,响应报文中将用户、密码写入cookie,访问其他页面时,通过cookie获取用户信息,能够获取,则直接访问页面,不能获取,则跳转至登录页面。

2024-02-06 16:59:22 959

原创 Linux入门攻坚——14、实战软件安装-搭建Python3.8环境-2

随后执行: ./configure --prefix=/usr/local/python3.8 --with-openssl=/usr/local/openssl1.1 LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include",也可以安装成功。第一次没有加LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include",不成功,随后加上再次执行,成功。3)重新编译安装python3.8。

2024-01-25 14:01:47 500

原创 Linux入门攻坚——13、实战软件安装-搭建Python3.8环境-1

安装的最高层目录是/usr/local,OPENSSLDIR是/usr/local/ssl,即配置文件目录,库文件目录是libdir,即是/usr/local/lib64,引擎目录是/usr/local/lib64/engines-1.1。此时的安装位置为/usr/local/openssl1.1,配置文件在/usr/local/openssl1.1/ssl下,库文件路径是/usr/local/openssl1.1/lib。

2024-01-19 13:55:59 1176

原创 Linux入门攻坚——12、Linux网络属性配置相关知识2

3. udev 会根据/etc/udev/udev.conf文件中的udev_rules指定的目录,逐个检查该目录下的文件,这个目录下的文件都是针对某类或某个设备应该施行什么措施的规则文件。udev,辅助工具程序/lib/udev/rename_device,根据 /usr/lib/udev/rules.d/60-net.rules的指示,查找/etc/sysconfig/network-scripts/下的ifcfg-文件,如果HWADDR相同,将其中的DEVICE值作为网卡的名字。

2024-01-09 16:06:49 1053

原创 Linux入门攻坚——11、Linux网络属性配置相关知识1

每个网络中的主机数:2^24-2;MAC:Media Access Control,共48bit,前24bit需要机构分配,后24bit自己自由使用。反解:IP --> FQDN, dig -x IP;TARGET:主机路由:IP;BOOTPRORO:激活此设备时使用的地址配置协议,常用的dhcp,static,none,bootp。网络数:2^21个;每个网络中的主机数:2^8-2;每个网络中的主机数:2^16-2;例子:目标:192.168.1.3 网关:172.16.0.1。

2024-01-05 16:42:00 1290

原创 Linux入门攻坚——10、Linux程序包管理-2

安装的httpd在/usr/local/apache2下,相关的命令在此路径的bin下,要想直接运行,如直接执行apachectl,是找不到此文件的,查看环境变量$PATH,其值为—— /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin,要想直接运行,需要将相关路径导出到$PATH变量中。yum服务器,一般有:FTP://或HTTP://,或者本地(光盘)文件,使用file://

2023-12-27 10:06:35 886

原创 Linux入门攻坚——9、Linux程序包管理-1

安装程序包时,一般二进制文件放在/bin、/sbin、/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin下,库文件放在/lib、/lib64、/usr/lib、/usr/lib64、/usr/local/lib、/usr/local/lib64等路径下,配置文件放在/etc或者/usr/etc或者/usr/local/etc下,帮助文件放在/usr/share/man或者/usr/local/share/man等路径下。如果不存在旧版程序包,则“安装”。

2023-12-21 10:21:17 1033

原创 Linux入门攻坚——8、磁盘管理——btrfs文件系统及压缩解压缩和归档

挂载的设备可以是btr卷中的任意一个物理卷名,如这里的/dev/dec,也可以使用/dev/sdd,结果一样,mount显示的挂载设备是序列号最小的物理卷。多物理卷支持:btrfs可由多个底层物理卷组成:支持RAID,以联机添加、移除,修改。UUID相同,说明都是同一个btree卷,但是子卷是不同的。修改/mybtr/logs/grub2.cfg,保存,此时在快照中的文件内容不变。归档后文件大小可能变大,归档不是压缩,可以在归档的同时再压缩。压缩后,源文件删除,解压缩后,压缩文件删除,节省空间。

2023-12-15 14:39:24 1751 2

原创 Linux入门攻坚——7、磁盘管理——文件系统挂载管理及RAID、LVM

创建的lv,有三个路径:/dev/dm-0,实际文件,两个链接路径:/dev/mapper/myvg-mylv和/dev/myvg/mylv。支持的RAID级别:LINEAR,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10。创建一个快照卷,保存某一时刻对应卷的快照,即元数据,并同时监控对应卷的数据,如果数据要改变,则在改变前拷贝其到快照卷。RAID0:条带卷,strip;RAID6:读写性能提升,可用空间(N-2)*min()、有容错能力,2块磁盘,最少磁盘4。

2023-12-04 15:05:59 1193

原创 Linux入门攻坚——6、磁盘管理——分区及文件系统管理

分区完成后,就要对分区安装文件系统,所谓安装文件系统,从我个人的理解,就是对上面分区范围内的扇区中的部分扇区数据进行填充或修改,使之符合一定的数据结构,从底层扇区来讲,并没有什么改变,扇区依然保存的是0101序列,只不过,安装文件系统后,对特定的扇区内容进行了规定,扇区的特定位置保存的是什么数据,所以,文件系统是内核的一个进程,这个进程要使用这个进程能够理解的磁盘扇区数据结构,来进行磁盘的使用。还有一个问题,BIOS 只能找到 MBR 中的启动引导程序,而找不到在分区的引导扇区中的启动引导程序。

2023-11-20 13:49:09 244

原创 Linux入门攻坚——5、find,locate,特殊权限,磁盘管理初识

类比:这可以与在windows上的操作进行比较,用户空间管理工具,类似windows中的format带上文件系统格式参数,如fat32、ntfs等,内核模块就是format去调用的windows内核功能,然后对分区进行格式化。注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令,有些命令不能接受过多参数,此时命令执行可能失败;-j:相当于 -t ext3;Linux文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap。

2023-10-26 14:52:32 163

原创 Pyhton专项进阶——http协议、cookie、session和认证-2

在login.html中设置一个链接:href=“tt1/”,这是一个相对地址,从当前页面跳转,就是相对当前页面,当前的url是http://127.0.0.1:8090/login/,它就是相对这个地址,所以其地址就是http://127.0.0.1:8090/login/tt1/,而请求首部的referer就是http://127.0.0.1:8090/login/,意思是从这个地址跳转过来的。cookie罐:客户端的状态。虽然他们指的都是同一个站点,但是在首部中是不同的域,cookie的携带也不同。

2023-10-23 16:25:32 152

原创 Linux入门攻坚——4、shell编程初步、grep及正则表达式

因为并没有当前目录,我的当前目录是~/myscripts/,所以要给定明确的路径,如:./firsht.sh或绝对路径:~/myscripts/first.sh。也可以不为文件赋执行权限,而是手动启动,即执行:bash first.sh,即不使用shebang,而是我们手动指定了解释器。编程语言:强类型---定义变量时必须指定类型、弱类型---shell是弱类型,类型隐式转换,变量无需事先定义可直接调用。上一篇学过文件权限时,提到过,创建的文件权限默认是没有执行权限x的,所以这里提示没有权限执行。

2023-10-20 08:22:01 448

原创 Linux入门攻坚——3、基础命令学习-文件管理、别名、glob、重定向、管道、用户及组管理、权限管理

U : 解锁指定用户;>,>>,>|,2>,2>>,&>,&>>,2>&1,2>>&1,< :输出覆盖重定向,输出追加重定向,输出强制覆盖重定向,错误覆盖输出重定向,错误追加输出重定向,标准输出和错误输出覆盖重定向,标准输出和错误输出追加重定向,错误覆盖输出到标准输出中,错误追加输出到标准输出中,标准输入重定向。useradd [options] LOGIN : 添加用户,选项:-u,指定UID,-g,指定GID(基本组),-c,注释,-d,家目录,-s,默认shell,-G,附加组,-D,修改默认值。

2023-10-16 15:38:25 300

原创 Pyhton专项进阶——http协议、cookie、session和认证-1

这就是浏览器做的工作,按照HTTP协议的规定,有效的请求或响应报文中必须包含特定的首部,然后各个浏览器在根据自己的需要,添加一些首部,于是就有了我们现在看到的请求报文。3、这里的请求资源,即请求URL,就不是一个静态文件,而是一个函数,函数生成对应的响应报文,响应报文的响应实体,也不是login.html,(虽然在这里二者完全一致),而是经过模板渲染后的内容,就是以login.html为模板,进行渲染,即按模板语言格式对变量等替换为值的过程后的结果,作为响应实体,返回给客户端。但资源不一定非得是静态文件。

2023-10-11 16:39:51 131

原创 Linux入门攻坚——2、基础命令学习

帮助文件 : /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc。-rw-r--r-- :最左侧的第一位:文件类型,有 -,d,l,b,c,p,s;二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin。MM:月, DD:日, hh:小时, mm:分钟,YY:两位年, CCYY:四位年, .ss:秒。

2023-10-08 16:08:27 125

原创 Linux入门攻坚——1、入门基础知识初识

硬件之上,是操作系统,linux中一般叫内核,内核对硬件进行抽象,对上层提供使用接口,这个接口叫做系统调用(system call),这个调用还是太底层,即使用还是不太方便,便有了对系统调用的再次封装,形成库,应用程序可以基于库文件进行编程,也可以直接基于系统调用编程。绝对路径:从根目录起始的路径,Linux是从/,即根开始的路径,windows是从c:\或d:\等开始的路径,所以Linux的根只有一个,而windows有很多。物理终端:直接接入本机的显示器和键盘设备,也叫:console,控制台。

2023-09-28 10:30:44 119

原创 Python入门自学进阶-Web框架——42、Web框架了解-bottle、flask

我们可以将这个wsgi_app换成我们自定义的类,在__call__方法中添加我们自己的代码,最后在调用原来的wsgi_app,这样就在请求处理前,先经过了我们自己的处理,像Django的中间件就是这种机制实现的。TEMPLATE_PATH = ['./', './views/'],即默认模板查找顺序是先在项目根目录,然后是views目录,我们可以添加自己定义的目录。放置在session中,使用flash(value),取用,get_flashed_message(),取完就删除了。

2023-09-22 14:39:44 610

原创 Python入门自学进阶-Web框架——41、初步了解Celery 分布式队列、识堡垒机、自动发布、配置管理系统

调用原生的ssh,很可能需要进行交互,而我们的需求是中间不能有交互,所以使用sshpass软件来进行ssh登录,这样,用户、密码都可以在参数中带入,无需交互,ssh的 -o "StrictHostKeyChecking no" 参数,跳过rsa等认证交互。用户登录堡垒机,就使用Django的用户管理,即Web用户验证,登录成功后,找到此用户关联的可登陆主机、登录用户和密码,然后以此用户、密码远程登录主机,将登录连接返回给用户,使其可以使用主机。jumpserver,一个基于paramiko的类似系统。

2023-09-19 17:12:57 452

原创 Python入门自学进阶-Web框架——40、redis、rabbitmq、git——3

就是说,一开始,每台电脑上都有一个一样的版本库,然后每个人不需要联网,就可以做自己的版本控制,添加、修改、删除文件等操作,操作保存在自己本地的版本库中,经过一段时间后,再指定一个统一的地方,大家都把本地的版本库合并到这个统一的地方,实际上就是集中式版本系统的中央服务器,合并中有可能出现各种问题,如冲突等,解决完这些冲突,就形成一个大家都认可的版本,每个人再将这个版本的库下载到本地,再次基础上再次进行开发,循环往复,做到版本控制。添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的。

2023-08-30 15:31:24 769

原创 Python入门自学进阶-Web框架——39、redis、rabbitmq、git——2

六种模式分别为Hello world、Work queues(工作队列)、Publish/Subscribe(发布订阅)、Routing(路由)、Topics(主题)、RPC(远程调用),除了RPC模式外,其余的模式都是从简单的使用到更为灵活的使用,基本的代码框架都是差不多的,只是在不同的模式下达到的效果不同,它们各有各的特点,在实际使用中应该根据需求来选择具体的模式,而不是简单粗暴的选择最“高端”的模式。如果不先启动订阅者,则发布者发布的消息订阅者是无法事后接收到的。

2023-08-08 16:19:29 567

原创 Python入门自学进阶-Web框架——38、redis、rabbitmq、git

上面的生产者存在一个问题,就是在我们的消费者还没开始消费完队列里的消息,如果这时rabbitmq服务挂了,那么消息队列里的消息将会全部丢失,解决方法是在声明队列时,声明队列为可持久化存储队列,并且在生产者在将消息插入到消息队列时,设置消息持久化存储,具体如下。是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。

2023-08-04 17:29:05 1049

原创 Python入门自学进阶-Web框架——37、异步IO与scrapy

在请求google时,停顿很长时间后出错(国内google不可访问了),并且后面的请求也没有执行,这就是同步请求,请求,有结果后,再下一个,亦步亦趋。当线程池中的所有任务都执行完成后,该线程池中的所有线程都会死亡。这就是多线程,一个请求发出后,如果结果没有马上返回,就切换到其他线程,即执行其他请求,因为IO请求时间很长,所以,四个请求都进行了线程切换,都发送了请求。异步操作在完成await操作后,会发出完成通知,并释放占用的线程,之后系统调用线程池中空余的线程来进行await之后的操作,减少了线程负担。

2023-07-12 16:57:55 232

原创 Python入门自学进阶-Web框架——36、Web微信类实现初步

Web微信类的登录原理

2023-06-21 16:59:35 178

原创 Python入门自学进阶-Web框架——35、网络爬虫使用

网络爬虫

2023-04-01 19:14:05 490 1

原创 Python入门自学进阶-Web框架——34、富文本编辑器KindEditor、爬虫初步

KindEditor富文本编辑器使用,爬虫初步

2023-03-10 10:11:49 1310

原创 Python入门自学进阶-Web框架——33、瀑布流布局与组合查询

瀑布流布局、组合查询

2023-03-03 15:47:41 442

原创 Python入门自学进阶-Web框架——32、上课、作业流程开发

学生作业管理,班级、上课、作业的显示和管理

2023-02-22 16:16:41 417

原创 Python入门自学进阶-Web框架——31、开发客户报名流程

报名业务流程实现

2023-02-16 15:05:19 518

原创 Python入门自学进阶-Web框架——30、DjangoAdmin项目应用-自定义用户认证续

自定义登录认证,登录即退出

2023-01-17 15:53:05 385

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除