LVM管理和ssm存储管理器使用&磁盘配额  (二)

内容如下:

ü  LVM快照

ü  ssm存储管理器的使用

ü  磁盘配额

第1章 LVM快照

lvm快照:为了保持系统的一致性,我们先做一个快照冻结当前系统状态,这样快照里面的内容可暂时保持不变,系统本身继续运行,通过备份快照来实现不中断服务的备份。

当创建一个snapshot的时候,仅拷贝原始卷里数据的元数据(meta-data)。创建的时候,并不会有数据的物理拷贝,因此snapshot的创建几乎是实时的,当原始卷上有写操作执行时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里,因此这个原理的实现叫做写时复制COW(copy-on-write)。

在写操作写入块之前,原始数据被移动到 snapshot空间里,这样就保证了所有的数据在snapshot创建时保持一致。而对于snapshot的读操作,如果是没有修改过的块,那么会将读操作直接重定向到原始卷上,如果是已经修改过的块,那么就读取拷贝到snapshot中的块

1.1 首先准备一个LV并挂载

1.2准备测试文件

1.3 针对lv1创建一个300M快照

确保VG有空间

命令:lvcreate -s -n 快照名 -L 快照大小 创建快照的设备

1、  LVM快照其实也是一个逻辑卷,快照只能对逻辑卷LV进行备份,并且只能对同一个卷组的逻辑卷进行备份,

2、  在挂载快照时,尽量使用ro的方式进行,这样可以保证不破坏快照卷中的数据

3、  快照创建完成后是可以直接挂载的,不需要进行文件系统格式化

4、  lvm快照是不会增长和变化的,所以它没有永久存在的必要

[root@xuegod72 data]# lvcreate -s -n datalv_sp -L 300M /dev/datavg/data_lv

Logical volume "datalv_sp" created.

[root@xuegod72 data]# lvs

LV        VG     Attr       LSize   Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

data_lv   datavg owi-aos--- 600.00m

datalv_sp datavg swi-a-s--- 300.00m      data_lv 0.00

[root@xuegod72 data]# lvdisplay /dev/datavg/datalv_sp

--- Logical volume ---

LV Path                /dev/datavg/datalv_sp

LV Name                datalv_sp

VG Name                datavg

LV UUID                uRcoSc-FMYR-BRso-A5pf-0FCf-Tdig-QbU5ds

LV Write Access        read/write

LV Creation host, time xuegod72, 2016-12-20 20:46:13 +0800

LV snapshot status     active destination for data_lv

LV Status              available

# open                 0

LV Size                600.00 MiB

Current LE             150

COW-table size         300.00 MiB

COW-table LE           75

Allocated to snapshot  0.01%

Snapshot chunk size    4.00 KiB

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     8192

Block device           253:3

1.4 使用快照

对源LV做了快照后,我们再对这个源LV的文件系统进行一些数据读写操作

[root@xuegod72 ~]# cp /etc/hosts /datalv/

[root@xuegod72 datalv]# dd if=/dev/zero of=a.txt bs=1M count=20

恢复快照:

1、直接还原

[root@xuegod72 ~]umount /datalv

==============================================

umount不成功,判断的两种方法:

[root@panda ~]# lsof /lv1

[root@panda ~]# fuser -ks /lv1

===============================================

在用lvconvert做快照还原时,一定要把源LV和快照LV都卸载再进行

[root@xuegod72 ~]# lvconvert --merge /dev/datavg/data_lv_sp 后面跟的是快照LV

Merging of volume data_lv_sp started.

data_lv: Merged: 100.0%

[root@xuegod72 ~]# lvs

LV      VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

data_lv datavg -wi-a----- 600.00m

[root@xuegod72 ~]# mount /dev/datavg/data_lv /data

[root@xuegod72 ~]# ls /data

hosts  passwd

2、挂载挂照后,进行需求还原

[root@xuegod72 ~]# mount –o nouuid,norecovery,ro /dev/datavg/data_lv_snap /data_snap

1.5 快照损坏

超出大小

[root@xuegod72 data]# dd if=/dev/zero of=aa.txt bs=10M count=1

记录了1+0 的读入

记录了1+0 的写出

10485760字节(10 MB)已复制,0.0391211 秒,268 MB/秒

[root@xuegod72 data]# lvs

LV      VG     Attr       LSize   Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

data_lv datavg owi-aos--- 600.00m

datasp  datavg swi-I-s--- 100.00m      data_lv 100.00

[root@xuegod72 data]# lvdisplay /dev/datavg/datasp

--- Logical volume ---

LV Path                /dev/datavg/datasp

LV Name                datasp

VG Name                datavg

LV UUID                XKV0RX-AbJH-0AF1-wLtt-lwJl-7RdI-uAsTfM

LV Write Access        read/write

LV Creation host, time xuegod72, 2016-12-20 21:11:30 +0800

LV snapshot status     INACTIVE destination for data_lv

LV Status              available

# open                 0

LV Size                600.00 MiB

Current LE             150

COW-table size         100.00 MiB

COW-table LE           25

Snapshot chunk size    4.00 KiB

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     8192

Block device           253:3

[root@xuegod72 ~]# lvconvert --merge /dev/datavg/datasp

Unable to merge invalidated snapshot LV "datasp".

Unable to merge LV "datasp" into its origin.

[root@xuegod72 ~]# mount /dev/datavg/datasp /data

mount: /dev/mapper/datavg-datasp:不能读超级块

LV快照的大小最好和源LV保持一致

2借助ssm管理LVM

2.3 操作

安装SSM

[root@xuegod72 Packages]# yum -y install system-storage-manager

检查关于可用硬驱和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。

命令:

ssm list 列出信息

2.3.1 查看磁盘信息

设备信息

存储池信息

卷的信息

快照信息

2.3.2 对VG扩容

[root@xuegod72 ~]# ssm add -p datavg /dev/sdb5

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 22600: /usr/bin/python

Volume group "datavg" successfully extended

2.3.3 对LV进行扩容

使用SSM扩容LV(针对创建了快照的lv无效)

通过resize进行扩容

[root@xuegod72 ~]# lvcreate -n applv -L 500M /dev/datavg

Logical volume "applv" created.

[root@xuegod72 ~]# lvs

LV         VG     Attr       LSize   Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

applv      datavg -wi-a----- 500.00m

data_lv    datavg owi-a-s--- 600.00m

data_lv_sp datavg swi-a-s--- 100.00m      data_lv 0.00

[root@xuegod72 ~]# ssm resize -s +500M /dev/datavg/applv

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 22907: /usr/bin/python

Size of logical volume datavg/applv changed from 500.00 MiB (125 extents) to 1000.00 MiB (250 extents).

Logical volume applv successfully resized.

[root@xuegod72 ~]# lvs

LV         VG     Attr       LSize    Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

applv      datavg -wi-a----- 1000.00m

data_lv    datavg owi-a-s---  600.00m

data_lv_sp datavg swi-a-s---  100.00m      data_lv 0.00

比较文件系统容量的变化

[root@xuegod72 ~]# mkfs.xfs /dev/datavg/applv

meta-data=/dev/datavg/applv      isize=256    agcount=4, agsize=64000 blks

=                       sectsz=512   attr=2, projid32bit=1

=                       crc=0        finobt=0

data     =                       bsize=4096   blocks=256000, imaxpct=25

=                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=853, version=2

=                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@xuegod72 ~]# mount /dev/datavg/applv /data

[root@xuegod72 ~]# df –Th /data

文件系统                 类型      容量  已用  可用 已用% 挂载点

/dev/mapper/datavg-applv xfs       997M   33M  965M    4% /data

[root@xuegod72 ~]# lvs

LV         VG     Attr       LSize    Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

applv      datavg -wi-ao---- 1000.00m

data_lv    datavg owi-a-s---  600.00m

data_lv_sp datavg swi-a-s---  100.00m      data_lv 0.00

[root@xuegod72 ~]# ssm resize -s +200M /dev/datavg/applv

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23017: /usr/bin/python

Size of logical volume datavg/applv changed from 1000.00 MiB (250 extents) to 1.17 GiB (300 extents).

Logical volume applv successfully resized.

meta-data=/dev/mapper/datavg-applv isize=256    agcount=4, agsize=64000 blks

=                       sectsz=512   attr=2, projid32bit=1

=                       crc=0        finobt=0

data     =                       bsize=4096   blocks=256000, imaxpct=25

=                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal               bsize=4096   blocks=853, version=2

=                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

data blocks changed from 256000 to 307200

[root@xuegod72 ~]# df –Th /data

文件系统                 类型      容量  已用  可用 已用% 挂载点

/dev/mapper/datavg-applv xfs       1.2G   33M  1.2G    3% /data

总结:使用ssm存储管理器扩容,不需要再针对文件系统进行扩容

2.3.4 创建一个卷

要求:创建一个名为mail 的存储池,并在其上创建一个名为mail-lv,大小为1G的lvm卷,格式化为xfs文件系统,并将其挂载/mail-lv目录下

硬盘准备:

1)      创建目录

[root@xuegod72 ~]# mkdir /mail-lv

用的命令如下:

ssm  create  –s  lv大小  –n  lv名称  --fstype  lv文件系统类型 -p 卷组名  设备 挂载点

自动创建vg , lv ,格式化文件系统, 自动挂载

[root@xuegod72 ~]# ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[6-7] /mail-lv

Not enough space (1024000.0 KB) in the pool 'mail' to create volume! Adjust (N/y/q) ? Y

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23153: /usr/bin/python

Volume group "mail" successfully created

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23153: /usr/bin/python

Logical volume "mail-lv" created.

meta-data=/dev/mail/mail-lv      isize=256    agcount=4, agsize=63488 blks

=                       sectsz=512   attr=2, projid32bit=1

=                       crc=0        finobt=0

data     =                       bsize=4096   blocks=253952, imaxpct=25

=                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=853, version=2

=                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

2)查看挂载状况

[root@xuegod72 ~]# df -Th

文件系统                  类型      容量  已用  可用 已用% 挂载点

/dev/sda3                 xfs       197G  2.9G  194G    2% /

devtmpfs                  devtmpfs  467M     0  467M    0% /dev

tmpfs                     tmpfs     481M   84K  481M    1% /dev/shm

tmpfs                     tmpfs     481M  7.1M  474M    2% /run

tmpfs                     tmpfs     481M     0  481M    0% /sys/fs/cgroup

/dev/sr0                  iso9660   3.8G  3.8G     0  100% /media

/dev/sda1                 xfs       297M  128M  169M   44% /boot

tmpfs                     tmpfs      97M   16K   97M    1% /run/user/42

tmpfs                     tmpfs      97M     0   97M    0% /run/user/0

/dev/mapper/datavg-applv  xfs       1.2G   33M  1.2G    3% /data

/dev/mapper/mail-mail--lv xfs       989M   33M  957M    4% /mail-lv

[root@xuegod72 ~]# ssm list

--------------------------------------------------------------

Device         Free       Used      Total  Pool    Mount point

--------------------------------------------------------------

/dev/fd0                          4.00 KB

/dev/sda                        200.00 GB          PARTITIONED

/dev/sda1                       300.00 MB          /boot

/dev/sda2                         2.93 GB          SWAP

/dev/sda3                       196.78 GB          /

/dev/sdb                         20.00 GB

/dev/sdb1   0.00 KB  496.00 MB  500.00 MB  datavg

/dev/sdb2   0.00 KB  496.00 MB  500.00 MB  datavg

/dev/sdb3   0.00 KB  496.00 MB  500.00 MB  datavg

/dev/sdb4                         1.00 KB

/dev/sdb5  84.00 MB  412.00 MB  500.00 MB  datavg

/dev/sdb6   0.00 KB  496.00 MB  500.00 MB  mail

/dev/sdb7   0.00 KB  496.00 MB  500.00 MB  mail

--------------------------------------------------------------

-----------------------------------------------------

Pool    Type  Devices      Free       Used      Total

-----------------------------------------------------

datavg  lvm   4        84.00 MB    1.86 GB    1.94 GB

mail    lvm   2         0.00 KB  992.00 MB  992.00 MB

-----------------------------------------------------

----------------------------------------------------------------------------------------

Volume               Pool    Volume size  FS     FS size       Free  Type    Mount point

----------------------------------------------------------------------------------------

/dev/datavg/data_lv  datavg    600.00 MB  xfs  596.67 MB  586.54 MB  linear

/dev/datavg/applv    datavg      1.17 GB  xfs  996.67 MB  996.54 MB  linear  /data

/dev/mail/mail-lv    mail      992.00 MB  xfs  988.67 MB  988.54 MB  linear  /mail-lv

/dev/sda1                      300.00 MB  xfs  296.67 MB  183.90 MB  part    /boot

/dev/sda3                      196.78 GB  xfs  196.68 GB  193.82 GB  part    /

----------------------------------------------------------------------------------------

---------------------------------------------------------------------

Snapshot                Origin   Pool    Volume size     Size  Type

---------------------------------------------------------------------

/dev/datavg/data_lv_sp  data_lv  datavg    100.00 MB  0.00 KB  linear

2.3.5 创建快照

ssm  snapshot快照  -s 大小  -n 名称   创建快照的设备

2.3.6 删除快照

[root@xuegod72 ~]# ssm remove /dev/mail/mail-lv-sp

Device '/dev/mail/mail-lv-sp' is mounted on '/mail-sp' Unmount (N/y/q) ? Y

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23860: /usr/bin/python

Do you really want to remove active logical volume mail-lv-sp? [y/n]: y

Logical volume "mail-lv-sp" successfully removed

第3章 磁盘配额

q  磁盘配额:

利用磁盘配额这种技术,系统管理员可以限制某个用户在某个硬盘分区可使用的大小,和可以创建文件数量的多少;目前Linux系统和Windows系统都支持这种技术

q  磁盘配额使用条件:

磁盘配额实施的对象是硬盘分区

磁盘配额只对一般身份用户有效,对root权限用户无效;

q  磁盘配额的限制类型

磁盘的容量:限制用户使用Blocks大小,限制磁盘空间的大小 默认单位是KB

文件的数量:限制用户能够拥有而文件个数,根据i节点的数量实现对文件数量的限制

q  磁盘配额的相关名词解释:

最低限制(软限制,soft):最低限制容量(可以被超过,但会出现警告,超过的部分会保存到宽限时间到期)

最高限制(硬限制,hard): 绝对禁止用户超过硬限制,当超过时系统会给出警告信息,并且禁止继续写入数据

宽限时间:当用户使用的空间超过了最低限制但还没到达最高限制时,在这个宽限时间到期前必须将超额的数据降低到最低限制以下(默认为7天),当宽限时间到期,系统将自动清除超出的数据

注意:硬限制的配额值应大于相应的软限制值,否则软限制将失效.

3.1 RHEL7磁盘配额

n  确认配额命令已经安装

[root@xuegod72 ~]# dmesg|grep quota

[    1.943815] VFS: Disk quotas dquot_6.5.2

[root@xuegod72 ~]# rpm -q quota

quota-4.01-11.el7.x86_64

[root@xuegod72 ~]# mount|grep quota

/dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

/dev/mapper/datavg-applv on /data type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

l  首先创建新的测试分区/data

n  查看配额是否启动

n  启用配额

[root@xuegod72 ~]# umount /data

[root@xuegod72 ~]# mount -o uquota,gquota /dev/datavg/data_lv /data

[root@xuegod72 ~]# mount|grep datavg|grep quota

/dev/mapper/datavg-data_lv on /data type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

n  设置开机自动启动配额

n  设置目录权限,并创建配额用户

3.2 实验

3.2.1 查看配额状态

命令:xfs_quota

xfs_quota命令用于管理XFS文件系统的quota硬盘配额,格式为:“quota [参数] 配额 文件系统名称”

参数:

-x           使用配额模式,只有此模式才能设置配额

-c           启用命令模式

report      显示配额信息

limit              设置配额

bsoft 软限制 (硬盘)

bhard 硬配额

-u 用户

-g 组

3.2.2 查看用户和组的配额信息

3.2.3 设置配额

限制磁盘软限制为10m、磁盘硬限制为50m、文件软限制为3个且文件硬限制为6个

[root@xuegod72 ~]# xfs_quota -x -c 'limit bsoft=10M bhard=50M isoft=3 ihard=6 -u zhangsna' /data

[root@xuegod72 ~]# xfs_quota -x -c report /data

User quota on /data (/dev/mapper/datavg-data_lv)

Blocks

User ID          Used       Soft       Hard    Warn/Grace

---------- --------------------------------------------------

root            10248          0          0     00 [--------]

zhangsna            0      10240      51200     00 [--------]

Group quota on /data (/dev/mapper/datavg-data_lv)

Blocks

Group ID         Used       Soft       Hard    Warn/Grace

---------- --------------------------------------------------

root            10248          0          0     00 [--------]

3.2.4 验证

3.2.5 修改磁盘配额

[root@xuegod72 ~]# edquota -u zhangsna

Disk quotas for user zhangsna (uid 1001):

Filesystem                   blocks       soft       hard     inodes     soft     hard

/dev/mapper/datavg-data_lv      20480      10240      51200          6        3        6

[zhangsna@xuegod72 data]$ ls

aa.txt  bb.txt  cc  dd  e  f

[zhangsna@xuegod72 data]$ touch ee

[zhangsna@xuegod72 data]$ touch ff

[zhangsna@xuegod72 data]$ ls|wc -l

8

[zhangsna@xuegod72 data]$ touch gg

touch: 无法创建"gg": 超出磁盘限额

查看所有用户的配额信息:

[root@panda ~]# repquota -a

*** Report for user quotas on device /dev/mapper/vg2-applv

Block grace time: 7days; Inode grace time: 7days

Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

----------------------------------------------------------------------

root      --       0       0       0              3     0     0

user1     +-   15360   10240   51200  4days       1     3     7

user2     -+       0       0       0              6     3     6  6days

查看用户自己的配额限制信息:

[user2@panda lv1]$ quota

Disk quotas for user user2 (uid 1002):

Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

/dev/mapper/vg2-applv

0       0       0               6*      3       6   6days

用root用户查看单个普通用户的配额信息:

[root@panda ~]# quota user1

Disk quotas for user user1 (uid 1001):

Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

/dev/mapper/vg2-applv

15360*  10240   51200   4days       1       3       7

[root@panda ~]# quota user2

Disk quotas for user user2 (uid 1002):

Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

/dev/mapper/vg2-applv

0       0       0               6*      3       6   6days

1-18-2 LVM管理和ssm存储管理器使用&磁盘配额 (二)的更多相关文章

  1. 1-18-1 LVM管理和ssm存储管理器使用&磁盘配额(一)

    LVM管理和ssm存储管理器使用&磁盘配额(一) LVM逻辑卷的管理 问题:对于生产环境下的服务器来说,如果存储数据的分区磁盘空间不够了怎么办? 因为如果要把一个分区的内容都拷贝到另一个分区上 ...

  2. 1-16-2 LVM管理和ssm存储管理器使用&磁盘配额

    ssm存储管理器使用&磁盘配额 ssm存储管理器使用 系统存储管理器的使用 系统存储管理器(又称ssm,即system-storage-manager),是RHEL7/CentOS7新增的功能 ...

  3. 1-16-1 LVM管理和ssm存储管理器使用&磁盘配额

    大纲: 1-1- LVM逻辑卷的管理 1-2- SSM管理工具的使用 1-3- 磁盘配额技巧 ====================================== 问题描述: 当我们需要在一个 ...

  4. 第十五章 LVM管理和ssm存储管理器使用 随堂笔记

    第十五章 LVM管理和ssm存储管理器使用 本节所讲内容: 15.1 LVM的工作原理 15.2 创建LVM的基本步骤 15.3 实战-使用SSM工具为公司的邮件服务器创建可动态扩容的存储池 LVM的 ...

  5. 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用

    目录 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用 16.1 LVM的工作原理 16.1.1 LVM常用术语 16.1.2 LVM优点 16.2 创建LVM的基本步骤 16.2 ...

  6. LVM与磁盘配额

    LVM与磁盘配额 目录 一.LVM概述 1.1.LVM 概述 1.2.LVM机制的基本概念 二.LVM 管理命令 2.1.主要命令 2.2.LVM命令详解 三.设置磁盘配额 3.1.磁盘配额的概述 3 ...

  7. 微软Azure 存储管理器的简单介绍

    Windows Azure存储用户经常希望能够在“管理器”中查看他们的数据,管理器指的是一款可用于显示存储帐户数据的工具.我们之前提供了我们所知的存储管理器列表.在本文中,我们将对此列表进行更新,使其 ...

  8. Windows Azure 存储管理器 (2014)

     Windows Azure存储用户经常希望能够在"管理器"中查看他们的数据,管理器指的是一款可用于显示存储帐户数据的工具.我们之前提供了我们所知的存储管理器列表.在本文中,我 ...

  9. 二、存储管理器--SDRAM

    2.1 硬件结构 2.1.1 硬件框图 CPU 通过存储管理器来读取 SDRAM 网卡 等外部设备,CPU不管外部设备是怎么样的,只是读存储管理器中的地址 CPU从0x30000000地址读取数据. ...

随机推荐

  1. python3 基础二——基本的数据类型三

    一.字符串str 1.创建字符串,为变量分配一个值 word='字符串' sentence="字符串\n" #python中单引号和双引号使用完全相同 paragraph=&quo ...

  2. c# json数据解析——将字符串json格式数据转换成对象或实体类

    网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过例子由易到难总结一下处理过程,希望能帮到和我一样开始不会的朋 ...

  3. Property or method "openPageOffice" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by

    Property or method "openPageOffice" is not defined on the instance but referenced during r ...

  4. recyclerview + cardview

    https://www.jianshu.com/p/3a1ea6f78ad5http://qwzs112.iteye.com/blog/2235410https://github.com/mukesh ...

  5. Activiti工作流学习(一)——Activiti服务类

    Activity有9个service1.DynamicBpmnService动态Bpmn服务Service providing access to the repository of process ...

  6. 032_备份 MySQL 的 shell 脚本(mysqldump 版本)

    #!/bin/bash#定义变量 user(数据库用户名),passwd(数据库密码),date(备份的时间标签)#dbname(需要备份的数据库名称,根据实际需求需要修改该变量的值,默认备份 mys ...

  7. springboot项目:以run as-->spring boot app方式启动,配置热部署(亲测可用!!!)

    1.在pom.xml中添加热部署依赖 <!-- 热部署 --> <!-- devtools可以实现页面热部署(即页面修改后会立即生效, 这个可以直接在application.prop ...

  8. 使用std::function改善模板的低效性

    泛型编程中,模板会根据传入类型的不同,生成多种实例,相对低效. 模板编程: #include <iostream> using namespace std; //未使用函数包装器 temp ...

  9. luogu 2331

    给出 $n * 1$ 的矩阵,选出 $k$ 个互不重叠的子矩阵,使得其最大$sum[i]$ 为列的前缀和设 $f[i][j]$ 表示前 $i$ 个数选出 $j$ 个互不重叠的子矩阵的最大价值若第 $i ...

  10. Public model for matrix

    以下是可以加减乘除(就是乘逆矩阵啦)以及求若干次幂.行列式和逆的矩阵模板. 欢迎大家指正其中可能存在的错误(只验证了求逆的正确性). 顺便提一下这种复杂度低于定义式求逆的方法,来自于我的高等代数书,思 ...