1、磁盘lvm管理,完成下面要求,并写出详细过程:

  1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

准备两个10G的磁盘sdb,sdc或分区
[root@linux-node2- ~]# fdisk -l|grep sd
Disk /dev/sda: 53.7 GB, bytes, sectors
/dev/sda1 * Linux
/dev/sda2 8e Linux LVM
Disk /dev/sdb: 10.7 GB, bytes, sectors
Disk /dev/sdc: 10.7 GB, bytes, sectors 使用sdb和sdc两个磁盘创建PV
[root@linux-node2- ~]# pvcreate /dev/sd{b,c}
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created. [root@linux-node2- ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- .80g
/dev/sdb lvm2 --- .00g .00g
/dev/sdc lvm2 --- .00g .00g 创建名为testvg的VG,要求PE大小 为16MB
[root@linux-node2- ~]# vgcreate -s 16M testvg /dev/sd{b,c}
Volume group "testvg" successfully created
[root@linux-node2- ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos wz--n- .80g
testvg wz--n- <.97g <.97g 在卷组中创建大小为5G的逻 辑卷testlv
[root@linux-node2- ~]# lvcreate -n testlv -L 5G testvg
Logical volume "testlv" created.
[root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg -wi-a----- .00g 挂载至/users目录
[root@linux-node2- ~]# mkdir /users
[root@linux-node2- ~]# mkfs.xfs /dev/mapper/testvg-testlv
[root@linux-node2- ~]# mount /dev/mapper/testvg-testlv /users 永久挂载
[root@linux-node2- ~]# blkid
/dev/mapper/testvg-testlv: UUID="c20abbbc-6714-4bb3-b6b3-039e49ebb1ad" TYPE="xfs" [root@linux-node2- ~]# vim /etc/fstab
添加
UUID=c20abbbc--4bb3-b6b3-039e49ebb1ad /users xfs defaults [root@linux-node2- ~]# mount -a
[root@linux-node2- ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 48G .4G 39G % /
devtmpfs 899M 899M % /dev
tmpfs 911M 911M % /dev/shm
tmpfs 911M 9.6M 902M % /run
tmpfs 911M 911M % /sys/fs/cgroup
/dev/sda1 197M 120M 77M % /boot
tmpfs 183M 183M % /run/user/
/dev/mapper/testvg-testlv .0G 33M .0G % /users

 [root@linux-node2-202 ~]# vgdisplay testvg|egrep -io "(pe|vg).*size.*"
  VG Size <19.97 GiB
  PE Size 16.00 MiB
  PE / Size 320 / 5.00 GiB
  PE / Size 958 / <14.97 GiB

  2) 扩展testlv至7G,要求archlinux用户的文件不能丢失

创建archlinux用户
[root@linux-node2- ~]# useradd archlinux -d /users/archlinux
[root@linux-node2- ~]# su - archlinux
[archlinux@linux-node2- ~]$ pwd
/users/archlinux
[archlinux@linux-node2- ~]$ cp -R /var/log .
[archlinux@linux-node2- ~]$ tree
.
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── --22_195442_get_loaders.log
│   ├── --22_195512_sync.log
│   ├── --22_195653_sync.log
│   ├── --22_195950_import.log
│   ├── --22_200256_import.log
│   ├── --22_200523_import.log
│   └── --22_200652_sync.log
├── dmesg
├── dmesg.old
├── firewalld
├── grubby_prune_debug
├── httpd
├── lastlog
├── rhsm
├── tuned
│   └── tuned.log
├── vmware-vgauthsvc.log.
├── vmware-vmsvc.log
└── wtmp directories, files
[archlinux@linux-node2- ~]$ du -sh log
2.2M log 扩展testlv至7G,要求archlinux用户的文件不能丢失 [root@linux-node2- ~]# vgdisplay testvg|grep Size
VG Size <19.97 GiB
PE Size 16.00 MiB
Alloc PE / Size / 5.00 GiB
Free PE / Size / <14.97 GiB
[root@linux-node2- ~]# lvdisplay /dev/testvg/testlv|grep Size
LV Size 5.00 GiB
可以看到当前的LV大小为5G,VG可分配的大小为15G 需要再扩容2G
[root@linux-node2- ~]# lvextend -L +2G /dev/mapper/testvg-testlv
Size of logical volume testvg/testlv changed from 5.00 GiB ( extents) to 7.00 GiB ( extents).
Logical volume testvg/testlv successfully resized.
[root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg -wi-ao---- .00g [root@linux-node2- ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos wz--n- .80g
testvg wz--n- <.97g <.97g [root@linux-node2- ~]# tree /users/archlinux/
/users/archlinux/
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── --22_195442_get_loaders.log
│   ├── --22_195512_sync.log
│   ├── --22_195653_sync.log
│   ├── --22_195950_import.log
│   ├── --22_200256_import.log
│   ├── --22_200523_import.log
│   └── --22_200652_sync.log
├── dmesg
├── dmesg.old
├── firewalld
├── grubby_prune_debug
├── httpd
├── lastlog
├── rhsm
├── tuned
│   └── tuned.log
├── vmware-vgauthsvc.log.
├── vmware-vmsvc.log
└── wtmp directories, files [root@linux-node2- ~]# du -sh /users/archlinux/
2.3M /users/archlinux/

3) 收缩testlv至3G,要求archlinux用户的文件不能丢失

缩减逻辑卷需要先取消挂载,再进行操作
[root@linux-node2- ~]# umount /users
[root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg -wi-a----- .00g #Xfs系统不支持缩减 检查文件完整性
[root@linux-node2- ~]# e2fsck -f -y /dev/mapper/testvg-testlv
e2fsck 1.42. (-Dec-)
Pass : Checking inodes, blocks, and sizes
Pass : Checking directory structure
Pass : Checking directory connectivity
Pass : Checking reference counts
Pass : Checking group summary information
/dev/mapper/testvg-testlv: / files (0.0% non-contiguous), / blocks 收缩testlv至3G,要求archlinux用户的文件不能丢失 先设置文件系统大小
[root@linux-node2- ~]# resize2fs /dev/mapper/testvg-testlv 3G
resize2fs 1.42. (-Dec-)
Resizing the filesystem on /dev/mapper/testvg-testlv to (4k) blocks.
The filesystem on /dev/mapper/testvg-testlv is now blocks long. 缩减逻辑卷
[root@linux-node2- ~]# lvreduce -L 3G /dev/mapper/testvg-testlv
WARNING: Reducing active logical volume to 3.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testvg/testlv? [y/n]: y
Size of logical volume testvg/testlv changed from 7.00 GiB ( extents) to 3.00 GiB ( extents).
Logical volume testvg/testlv successfully resized.
[root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg -wi-a----- .00g [root@linux-node2- ~]# lvdisplay /dev/testvg/testlv|grep Size
LV Size 3.00 GiB [root@linux-node2- ~]# tree /users/archlinux/
/users/archlinux/
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── --22_195442_get_loaders.log
│   ├── --22_195512_sync.log
│   ├── --22_195653_sync.log
│   ├── --22_195950_import.log
│   ├── --22_200256_import.log
│   ├── --22_200523_import.log
│   └── --22_200652_sync.log
├── dmesg
├── dmesg.old
├── firewalld
├── grubby_prune_debug
├── httpd
├── lastlog
├── rhsm
├── tuned
│   └── tuned.log
├── vmware-vgauthsvc.log.
├── vmware-vmsvc.log
└── wtmp directories, files [root@linux-node2- ~]# du -sh /users/archlinux/
2.3M /users/archlinux/

  4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能

[root@linux-node2- ~]# lvcreate -n testlv_snap -s -p r -L 5G  /dev/mapper/testvg-testlv
lvcreate 创建 名称为testlv_snap 快照 属性-只读 容量5G 目标/dev/mapper/testvg-testlv
Reducing COW size 5.00 GiB down to maximum usable size <3.02 GiB.
Logical volume "testlv_snap" created. [root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg owi-aos--- .00g
testlv_snap testvg sri-a-s--- <.02g testlv 0.01 [root@linux-node2- ~]# lvdisplay /dev/test*|grep snap
LV snapshot status source of
testlv_snap [active]
LV Path /dev/testvg/testlv_snap
LV Name testlv_snap
LV snapshot status active destination for testlv
Allocated to snapshot 0.01% [root@linux-node2- ~]# blkid |grep testvg
/dev/mapper/testvg-testlv: UUID="fe421f83-f353-4ad3-a571-47e808c5dd5d" TYPE="ext4"
/dev/mapper/testvg-testlv_snap: UUID="fe421f83-f353-4ad3-a571-47e808c5dd5d" TYPE="ext4"
可以看到两个uuid相同 验证快照的功能
挂载快照
[root@linux-node2- ~]# mount /dev/mapper/testvg-testlv_snap /mnt/snap
mount: /dev/mapper/testvg-testlv_snap is write-protected, mounting read-only [root@linux-node2- ~]# tree /mnt/snap
/mnt/snap
├── archlinux
│   └── log
│   ├── anaconda
│   ├── audit
│   ├── cobbler
│   │   ├── anamon
│   │   ├── cobbler.log
│   │   ├── install.log
│   │   ├── kicklog
│   │   ├── syslog
│   │   └── tasks
│   │   ├── --22_195442_get_loaders.log
│   │   ├── --22_195512_sync.log
│   │   ├── --22_195653_sync.log
│   │   ├── --22_195950_import.log
│   │   ├── --22_200256_import.log
│   │   ├── --22_200523_import.log
│   │   └── --22_200652_sync.log
│   ├── dmesg
│   ├── dmesg.old
│   ├── firewalld
│   ├── grubby_prune_debug
│   ├── httpd
│   ├── lastlog
│   ├── rhsm
│   ├── tuned
│   │   └── tuned.log
│   ├── vmware-vgauthsvc.log.
│   ├── vmware-vmsvc.log
│   └── wtmp
└── lost+found directories, files [root@linux-node2- ~]# du -sh /mnt/snap
2.3M /mnt/snap 删除源目录中的文件
[root@linux-node2- ~]# rm -rf /users/archlinux/log/httpd/
[root@linux-node2- ~]# rm -f /users/archlinux/log/*
[root@linux-node2-202 ~]# tree /users/archlinux/
/users/archlinux/
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── 2019-07-22_195442_get_loaders.log
│   ├── 2019-07-22_195512_sync.log
│   ├── 2019-07-22_195653_sync.log
│   ├── 2019-07-22_195950_import.log
│   ├── 2019-07-22_200256_import.log
│   ├── 2019-07-22_200523_import.log
│   └── 2019-07-22_200652_sync.log
├── rhsm
└── tuned
└── tuned.log 10 directories, 10 files [root@linux-node2-202 ~]# du -sh /users/archlinux/
2.0M /users/archlinux/ 还原快照
取消源和快照的挂载
[root@linux-node2-202 ~]# umount /users
[root@linux-node2-202 ~]# umount /mnt/snap
还原快照
[root@linux-node2-202 ~]# lvconvert --merge /dev/mapper/testvg-testlv_snap
Merging of volume testvg/testlv_snap started.
testvg/testlv: Merged: 100.00%
验证数据
[root@linux-node2-202 ~]# du -sh /users/archlinux/
2.3M /users/archlinux/ [root@linux-node2-202 ~]# du -sh /users/archlinux/
2.3M /users/archlinux/
[root@linux-node2-202 ~]# tree /users/archlinux/
/users/archlinux/
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── 2019-07-22_195442_get_loaders.log
│   ├── 2019-07-22_195512_sync.log
│   ├── 2019-07-22_195653_sync.log
│   ├── 2019-07-22_195950_import.log
│   ├── 2019-07-22_200256_import.log
│   ├── 2019-07-22_200523_import.log
│   └── 2019-07-22_200652_sync.log
├── dmesg
├── dmesg.old
├── firewalld
├── grubby_prune_debug
├── httpd
├── lastlog
├── rhsm
├── tuned
│   └── tuned.log
├── vmware-vgauthsvc.log.0
├── vmware-vmsvc.log
└── wtmp 11 directories, 18 files 创建快照(XFS)系统
lvcreate -n lv_mysql_snap -s -L 1G -p r /dev/mapper/testvg-testlv
mount /dev/mapper/testvg-testlv /mnt/snap/ #直接挂载不上去
mount -o nouuid /dev/mapper/testvg-testlv_snap /mnt/snap/ #加上nouuid选项 还原快照(XFS)
取消所有相关挂载
lvconvert --merge /dev/mapper/testvg-testlv_snap

2、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

创建3个1G的分区
[root@linux-node2- ~]# fdisk -l /dev/sdb Disk /dev/sdb: 10.7 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0xdf25804a Device Boot Start End Blocks Id System
/dev/sdb1 Linux
/dev/sdb2 Linux
/dev/sdb3 Linux 创建raid sdb3 作为空闲盘
[root@linux-node2- ~]# mdadm -C -a yes /dev/md0 -l -n /dev/sdb{,} -x -c /dev/sdb3 [root@linux-node2- ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jul ::
Raid Level : raid1
Array Size : (1022.00 MiB 1071.64 MB)
Used Dev Size : (1022.00 MiB 1071.64 MB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent Update Time : Tue Jul ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices : Consistency Policy : resync Name : linux-node2-: (local to host linux-node2-)
UUID : 15c85ba6:1df98782:c64f8908:3eee284d
Events : Number Major Minor RaidDevice State
active sync /dev/sdb1
active sync /dev/sdb2 - spare /dev/sdb3 模拟sdb1故障
[root@linux-node2- ~]# mdadm /dev/md0 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@linux-node2- ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jul ::
Raid Level : raid1
Array Size : (1022.00 MiB 1071.64 MB)
Used Dev Size : (1022.00 MiB 1071.64 MB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent Update Time : Tue Jul ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices : Consistency Policy : resync Name : linux-node2-: (local to host linux-node2-)
UUID : 15c85ba6:1df98782:c64f8908:3eee284d
Events : Number Major Minor RaidDevice State
active sync /dev/sdb3
active sync /dev/sdb2 - faulty /dev/sdb1 将sdb1从raid1中删除
[root@linux-node2- ~]# mdadm /dev/md0 -r /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0
[root@linux-node2- ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jul ::
Raid Level : raid1
Array Size : (1022.00 MiB 1071.64 MB)
Used Dev Size : (1022.00 MiB 1071.64 MB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent Update Time : Tue Jul ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices : Consistency Policy : resync Name : linux-node2-: (local to host linux-node2-)
UUID : 15c85ba6:1df98782:c64f8908:3eee284d
Events : Number Major Minor RaidDevice State
active sync /dev/sdb3
active sync /dev/sdb2 将sdb1添加回raid1
[root@linux-node2- ~]# mdadm /dev/md0 -a /dev/sdb1
mdadm: added /dev/sdb1
[root@linux-node2- ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jul ::
Raid Level : raid1
Array Size : (1022.00 MiB 1071.64 MB)
Used Dev Size : (1022.00 MiB 1071.64 MB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent Update Time : Tue Jul ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices : Consistency Policy : resync Name : linux-node2-: (local to host linux-node2-)
UUID : 15c85ba6:1df98782:c64f8908:3eee284d
Events : Number Major Minor RaidDevice State
active sync /dev/sdb3
active sync /dev/sdb2 - spare /dev/sdb1

3、简述TCP链接建立和断开过程

https://www.cnblogs.com/bj-mr-li/p/11106397.html

https://www.cnblogs.com/bj-mr-li/p/11106390.html

TCP建立连接的过程叫三次握手
三次握手
第一次,客户端发起SYN=,seq=x,给服务端,并将状态为SYN-SEND
第二次,服务端收到第一次请求,回应SYN=,ACK=,seq=x,状态为SYN-RECV
第三次,客户端收到服务端的回包,回应ACK=,seq=x+ seq=y+,状态为ESTAB
客户端收到回包后连接建立,开始发送数据 TCP断开连接的过程叫四次挥手,比三次握手多了一个确认过程
第一次,客户端发送FIN=,seq=x给服务端,状态由ESTAB修改为FIN-WAIT1
第二次,服务端收到后,回应ACK=, seq=y,ack=x+,状态为CLOSE-WAIT,通知进程关闭连接,客户端状态为FIN-WAIT2
第三次,服务端收完所有数据后,发送FIN=,ACK=,seq=z,ack=x+,状态为LAST-ACK
第四次,客户端收到后,等待2MSL(2倍传送时间)后,发送ACK=,seq=x+,ack=z+,连接关闭

4、简述TCP和UDP的区别

:TCP基于连接,UDP基于无连接。
:TCP对系统资源要求高,UDP少。
:TCP是基于字节流的,UDP是数据报文模式。
:TCP复杂,UDP简单。
:TCP有验证过程,是可靠的连接,UDP无验证过程,是不可靠的连接

第五周作业,LVM和TCP的更多相关文章

  1. 2018-2019-1 20189221《Linux内核原理与分析》第五周作业

    2018-2019-1 20189221<Linux内核原理与分析>第五周作业 实验四 实验过程 当用户态进程调用一个系统调用时,cpu切换到内核态并开始执行一个内核函数. 在Linux中 ...

  2. 2017-2018-1 JaWorld 第四、五周作业

    2017-2018-1 JaWorld 第四.五周作业 两周工作内容 小组讨论并确定最终的app雏形 合作完成需求说明书 工作分工 成员 分工 比例 陈是奇 1.引言 8% 马平川 2.1-2.5 产 ...

  3. 2017-2018-1 JAVA实验站 第四、五周作业

    2017-2018-1 JAVA实验站 第四.五周作业 JAVA实验站小组成员 学号 名字 职务 20162318 张泰毓 组长 20162303 石亚鑫 组员 20162304 张浩林 组员 201 ...

  4. 2017-2018-1 20179205《Linux内核原理与设计》第五周作业

    <Linux内核原理与设计>第五周作业 视频学习及操作分析 一.用户态.内核态和中断 内核态在CPU执行中对应高执行级别,执行级别为0级,具有特权指令,可以访问任意物理地址:用户态执行级别 ...

  5. 第五周作业:markdown语法小总结

    第五周作业 markdown语法总结 早就想写这么一个文章了,关于markdown的语法,因为最近使用的比较多,所以特地总结一下 一,标题 首先要介绍的就是标题, 标题一共有六级 # h1 ## h2 ...

  6. 2019-2020-1 20199329《Linux内核原理与分析》第五周作业

    <Linux内核原理与分析>第五周作业 一.上周问题总结: 虚拟机将c文件汇编成汇编文件时忘记添加include<stdio.h> gdb跟踪汇编过程不熟练 二.本周学习内容: ...

  7. 2019春第五周作业Compile Summarize

    这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 在这里 我在这个课程的目标是 能够精通关于数组内部运作原理 这个作业在哪个具体方面帮助我实现目标 如何输出一行的连续字符 参考文献与网址 ...

  8. 第四周预习作业and第五周作业

    第四周预习作业 统计一行文本的单词个数 本题目要求编写程序统计一行字符中单词的个数.所谓"单词"是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个. 输入格式: 输入 ...

  9. 20162327WJH第五周作业

    学号 20162327 <程序设计与数据结构>第5周学习总结 教材学习内容总结 1.java是一种面向对象的语言.面向对象是一种编程方法.更是一种思维方式. 2.面向对象编程的终极目标是消 ...

  10. 第五周作业总结(内含用Junit测试ArrayStack和LinkedStack课堂练习报告)

    ---恢复内容开始--- 学号 20162310<程序设计与数据结构>第五周学习总结 教材学习内容总结 集合分为线性集合(集合中的元素排成一行)和非线性集合(按不同于一行的方式来组织元素, ...

随机推荐

  1. python 读excel表操作

    import xlrd # 打开文件 data = xlrd.open_workbook('测试表.xlsx') # 查看工作表 data.sheet_names() print("shee ...

  2. Java注解demo

    # 为了熟悉了解注解,写的一个小demo# demo的主要功能是扫描一个class中的包含我们自定义注解的方法,然后把他们的返回值放到一个map中 public class QQ { public s ...

  3. mysql在某一字段后面添加新字段

    mysql在某一字段后面添加新字段 ALTER TABLE `test` ADD `anyField` TEXT NOT NULL AFTER `id`

  4. 【BZOJ3196】【Luogu P3380】 【模板】二逼平衡树(树套树)

    做数据结构一定要平\((fo)\)心\((de)\)静\((yi)\)气\((pi)\)...不然会四处出锅的\(QAQ\) 写法:线段树套平衡树,\(O(Nlog^3N)\).五个操作如果是对于整个 ...

  5. python生成二维码图片

    依赖Pillow库. import qrcode # 简单用法 img = qrcode.make('Hello World!') img.save('qr_code.png') # 高级用法 qr ...

  6. 【leetcode】1234. Replace the Substring for Balanced String

    题目如下: You are given a string containing only 4 kinds of characters 'Q', 'W', 'E' and 'R'. A string i ...

  7. GO 语言队列实现

    队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出的t(First In First Out)的线性表,简称FIFO.允许插入的一端为队尾,允许删除的一 ...

  8. Spring MVC 的 multipartResolver 不能同iWebOffice2006 共同使用

    转:http://jamesby.iteye.com/blog/57381 项目使用iWebOffice2006,本来可以正常使用,但是系统有文件上传需求,故定义了一个multipartResolve ...

  9. luoguP1041 传染病控制 x

    P1041 传染病控制 题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染 ...

  10. Pod初始化容器之Init Container

    Init 容器的介绍 Pod能够具有多个容器,应用运行在容器里面,但是它也可能有一个或多个先于应用容器启动的 Init容器Init 容器与普通的容器非常像,除了如下两点:  c Init 容器总是运行 ...