1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
fdisk /dev/sdb 按提示创建出来10G分区 查看1:cat /proc/partitions 查看2:[root@mylinux ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 120G 0 disk ├─sda1 8:1 0 500M 0 part /boot ├─centos_mylinux-root 253:0 0 50G 0 lvm / ├─centos_mylinux-swap 253:1 0 2G 0 lvm [SWAP] └─centos_mylinux-home 253:2 0 67.5G 0 lvm /home sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 10G 0 part sr0 11:0 1 7.2G 0 rom 格式化: mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1 查看: [root@mylinux ~]# blkid /dev/sdb1 /dev/sdb1: LABEL="MYDATA" UUID="d73bf058-9a4a-4232-a7b6-b14dc5841c67" TYPE="ext4" tune2fs -o acl /dev/sdb1 修改默认挂载属性包含acl 查看验证:tune2fs -l /dev/sdb1 mkdir -pv /data/mydata mount -t ext4 -o noatime,noexec /dev/sdb1 /data/mydata/ 也可以编辑/etc/fstab文件 LABEL='MYDATA' /data/mydata ext4 noatime,noexec,acl 0 0 mount | grep sdb1 /dev/sdb1 on /data/mydata type ext4 (rw,noexec,noatime,data=ordered)
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
fdisk /dev/sdb本来有张图的,这里因为超出限制,无法上传,只是注意调整分区格式为82就行了。 mkswap -L SWAP /dev/sdb2 创建为交换分区 swapon /dev/sdb2 启用交换分区 查看1: [root@mylinux ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 120G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 119.5G 0 part ├─centos_mylinux-root 253:0 0 50G 0 lvm / ├─centos_mylinux-swap 253:1 0 2G 0 lvm [SWAP] └─centos_mylinux-home 253:2 0 67.5G 0 lvm /home sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 10G 0 part /data/mydata └─sdb2 8:18 0 1G 0 part [SWAP] sr0 11:0 1 7.2G 0 rom 查看2,:[root@mylinux ~]# free -m total used free shared buff/cache available Mem: 977 116 736 6 124 729 Swap: 2047 0 2047 启用前total [root@mylinux ~]# swapon /dev/sdb2 [root@mylinux ~]# free -m total used free shared buff/cache available Mem: 977 116 736 6 124 728 Swap: 3071 0 3071 启用后total [root@mylinux ~]#
3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
[root@mylinux scripts]# cat disk.sh #!/bin/bash # cat /diskinfo for i in $(fdisk -l | grep ^/dev | cut -d" " -f1);do echo "fdisk $i" df -h $i done
4、总结RAID的各个级别及其组合方式和性能的不同;
RAID-0: 读、写性能提升; 可用空间:N*min(S1,S2,...) 无容错能力 最少磁盘数:2, 2+ RAID-1: 读性能提升、写性能略有下降; 可用空间:1*min(S1,S2,...) 有冗余能力 最少磁盘数:2, 2+ RAID-5: 读、写性能提升 可用空间:(N-1)*min(S1,S2,...) 有容错能力 最少磁盘数:3, 3+ RAID-6: 读、写性能提升 可用空间:(N-2)*min(S1,S2,...) 有容错能力:2块磁盘 最少磁盘数:4, 4+ RAID-10: 读、写性能提升 可用空间:N*min(S1,S2,...)/2 有容错能力:每组镜像最多只能坏一块; 最少磁盘数:4, 4+
5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
用三个分区当作三块磁盘:fdisk /dev/sdb 并调整类型为支持raid的fd格式文件系统 Command (m for help): p Disk /dev/sdb: 64.4 GB, 64424509440 bytes 255 heads, 63 sectors/track, 7832 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x05868feb Device Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ fd Linux raid autodetect /dev/sdb2 1307 2612 10490445 fd Linux raid autodetect /dev/sdb3 2613 3918 10490445 fd Linux raid autodetect 查看当前系统的md设备状态:1:cat /proc/mdstat 2:ls /dev/| grep "md"可以看到没有任何设备 yum -y install mdadm 安装mdadm命令,我用的cent6.5 mdadm -C /dev/md0 -a yes -n 2 -x 1 -l 1 -c 128 /dev/sdb{1,2,3} 创建命令 -C: 创建模式 -n #: 使用#个块设备来创建此RAID; -l #:指明要创建的RAID的级别; -a {yes|no}:自动创建目标RAID设备的设备文件; -c CHUNK_SIZE: 指明块大小; -x #: 指明空闲盘的个数; -D:显示raid的详细信息:mdadm -D /dev/md# 管理模式: -f: 标记指定磁盘为损坏; -a: 添加磁盘 -r: 移除磁盘 观察md的状态:cat /proc/mdstat 停止md设备: mdadm -S /dev/md# 验证查看 [root@mylinux ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Wed Dec 7 14:34:50 2016 Raid Level : raid1 #raid级别 Array Size : 10482176 (10.00 GiB 10.73 GB) #阵列容量10G Used Dev Size : 10482176 (10.00 GiB 10.73 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Wed Dec 7 14:36:27 2016 State : active #各个设备的状态 Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Name : mylinux:0 (local to host mylinux) UUID : 5155d618:75d4bb57:d4c21916:a82e51d7 Events : 18 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2 2 8 19 - spare /dev/sdb3 [root@mylinux ~]#
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载 至/backup目录,而且不更新访问时间戳,且支持acl功能;
4G的RAID5算下来需要3块2G的磁盘,先准备三块2G的硬盘并调整硬盘为fd支持raid的格式 mdadm -Cv /dev/md0 -a yes -n 3 -l 5 -c 256 /dev/sdb /dev/sdc /dev/sdd 创建md0设备 [root@mylinux ~]# mdadm -D /dev/md0 | grep "Array Size" 查看大小 Array Size : 4190208 (4.00 GiB 4.29 GB) 格式化:mke2fs -t ext4 /dev/md0 mkdir /backup [root@mylinux backup]# blkid /dev/md0 #看下uuid用这种方式挂载防止md0可能会变化 /dev/md0: UUID="053a4d7e-1643-4812-b521-f60821f5673a" TYPE="ext4" vim /etc/fstab 添加如下内容: UUID=053a4d7e-1643-4812-b521-f60821f5673a /backup ext4 defaults,acl,noatime 0 0 mount -a [root@mylinux backup]# mount | grep "md0" /dev/md0 on /backup type ext4 (rw,noatime,acl)
7、写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;
[root@mylinux scripts]# cat a.sh #!/bin/bash # if [ $# -lt 1 ]; then echo "At least one path for file like /etc/issue." exit 2 fi for i in $*;do echo "$i de lines:`wc -l $i | cut -f1 -d" "`" done echo "canshu de geshu is:$#" [root@mylinux scripts]#
8、写一个脚本 (1) 传递两个以上字符串当作用户名; (2) 创建这些用户;且密码同用户名; (3) 总结说明共创建了几个用户;
[root@mylinux scripts]# cat e.sh #!/bin/bash # if [ $# -le 2 ]; then echo "at least 3 ge username!" exit 2 fi for i in $*;do if id $i &> /dev/null;then echo "User $i exists." else useradd $i echo $i | passwd --stdin $i &> /dev/null echo "Add user $i finished." fi done echo "total add users is $#" [root@mylinux scripts]#
9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
[root@mylinux scripts]# cat users.sh #!/bin/bash # declare -i sum=0 for ((i=1; i<=20; i++)) do if id visitor$i &> /dev/null;then echo "visitor$i exists." else useradd visitor$i && echo "Add user visitor$i finished." sum+=$(id -u visitor$i) fi done echo "idsum:$sum" [root@mylinux scripts]# for i in {1..20}; do userdel -r visitor$i;done 测试或者清理使用
10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和 /etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
[root@mylinux scripts]# cat 1.sh #!/bin/bash # sumline=0 sumspacle=0 for file in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab};do let sumline+=`grep "^#" $file | wc -l` let sumspace+=`grep "^$" $file | wc -l` done echo "star # line numbers: $sumline." echo "start space line numbers: $sumspace" [root@mylinux scripts]#
11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的 UID之和;
[root@mylinux scripts]# cat 2.sh #!/bin/bash # declare -i sum=0 for i in `grep "bash$" /etc/passwd | cut -d: -f1,3`;do echo "$i" let sum+=`echo $i | cut -d: -f2` done echo "The total userid :$sum" [root@mylinux scripts]#
12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
思路: /etc/group: group:password:gid:user_list #文件格式说明 awk -F: '{if($4>0) print $4}' /etc/group #如果能取到值,说明是有附加组的。 [root@mylinux scripts]# cat 4.sh #!/bin/bash # sum=0 for i in `awk -F: '{if($4>0) print $0}' /etc/group`;do echo "$i" let sum++ done echo "total has fujiazu de user: $sum" [root@mylinux scripts]#
13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小 为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
先准备两块硬盘10G的硬盘,并调整硬盘格式为支持lvm的8e格式。 fdisk /dev/sdb fdisk /dev/sdc fdisk -l #partx -a /dev/sdb1 参考命令让内核识别 Device Boot Start End Blocks Id System /dev/sdb1 1 1305 10482381 8e Linux LVM #like this pv和vg管理: [root@mylinux ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created [root@mylinux ~]# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created [root@mylinux ~]# vgcreate -s 8M myvg /dev/sdb1 /dev/sdc1 Volume group "myvg" successfully created [root@mylinux ~]# vgdisplay --- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 19.98 GiB #物理卷组成的大小为20G PE Size 8.00 MiB #PE大小为8M Total PE 2558 Alloc PE / Size 0 / 0 Free PE / Size 2558 / 19.98 GiB VG UUID bnVPsA-a112-kNN1-qwCn-g9jl-AMHG-OL0eyE lv管理: [root@mylinux ~]# lvcreate -L 5G -n mylv1 myvg Logical volume "mylv1" created [root@mylinux ~]# ls /dev/mapper/ control myvg-mylv1 vg_mylinux-lv_home vg_mylinux-lv_root vg_mylinux-lv_swap [root@mylinux ~]# mke2fs -t ext4 -L MYLV1 /dev/myvg/mylv1 mke2fs 1.41.12 (17-May-2010) Filesystem label=MYLV1 OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1310720 blocks 65536 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@mylinux ~]# mount相关 vim /etc/fstab /dev/mapper/myvg-mylv1 /users ext4 defaults,acl 0 0 mount -a [root@mylinux ~]# mount | tail -1 /dev/mapper/myvg-mylv1 on /users type ext4 (rw,acl) [root@mylinux ~]# ll /users/ total 16 drwx------. 2 root root 16384 Dec 8 15:37 lost+found [root@mylinux ~]#
14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
[root@mylinux pam.d]# useradd -d /users/magedu magedu [root@mylinux pam.d]# su - magedu [magedu@mylinux ~]$ pwd /users/magedu [magedu@mylinux ~]$ cp /etc/pam.d/* . [magedu@mylinux ~]$ ls chfn login remote smtp sudo-i chsh newrole run_init smtp.postfix su-l config-util other runuser sshd system-auth crond passwd runuser-l ssh-keycat system-auth-ac fingerprint-auth password-auth smartcard-auth su fingerprint-auth-ac password-auth-ac smartcard-auth-ac sudo [magedu@mylinux ~]$ ll total 112 -rw-r--r--. 1 magedu magedu 192 Dec 8 20:14 chfn -rw-r--r--. 1 magedu magedu 192 Dec 8 20:14 chsh -rw-r--r--. 1 magedu magedu 232 Dec 8 20:14 config-util -rw-r--r--. 1 magedu magedu 293 Dec 8 20:14 crond -rw-r--r--. 1 magedu magedu 659 Dec 8 20:14 fingerprint-auth -rw-r--r--. 1 magedu magedu 659 Dec 8 20:14 fingerprint-auth-ac -rw-r--r--. 1 magedu magedu 728 Dec 8 20:14 login -rw-r--r--. 1 magedu magedu 172 Dec 8 20:14 newrole -rw-r--r--. 1 magedu magedu 154 Dec 8 20:14 other -rw-r--r--. 1 magedu magedu 146 Dec 8 20:14 passwd -rw-r--r--. 1 magedu magedu 896 Dec 8 20:14 password-auth -rw-r--r--. 1 magedu magedu 896 Dec 8 20:14 password-auth-ac -rw-r--r--. 1 magedu magedu 613 Dec 8 20:14 remote -rw-r--r--. 1 magedu magedu 167 Dec 8 20:14 run_init -rw-r--r--. 1 magedu magedu 143 Dec 8 20:14 runuser -rw-r--r--. 1 magedu magedu 105 Dec 8 20:14 runuser-l -rw-r--r--. 1 magedu magedu 711 Dec 8 20:14 smartcard-auth -rw-r--r--. 1 magedu magedu 711 Dec 8 20:14 smartcard-auth-ac -rw-r--r--. 1 magedu magedu 76 Dec 8 20:14 smtp -rw-r--r--. 1 magedu magedu 76 Dec 8 20:14 smtp.postfix -rw-r--r--. 1 magedu magedu 616 Dec 8 20:14 sshd -rw-r--r--. 1 magedu magedu 341 Dec 8 20:14 ssh-keycat -rw-r--r--. 1 magedu magedu 487 Dec 8 20:14 su -rw-r--r--. 1 magedu magedu 202 Dec 8 20:14 sudo -rw-r--r--. 1 magedu magedu 187 Dec 8 20:14 sudo-i -rw-r--r--. 1 magedu magedu 137 Dec 8 20:14 su-l -rw-r--r--. 1 magedu magedu 896 Dec 8 20:14 system-auth -rw-r--r--. 1 magedu magedu 896 Dec 8 20:14 system-auth-ac [magedu@mylinux ~]$
15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
扩展逻辑卷: #支持在线修改 # lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME # resize2fs /dev/VG_NAME/LV_NAME #仅适用于ext系统的文件系统 [root@mylinux ~]# lvextend -L 9G /dev/myvg/mylv1 Extending logical volume mylv1 to 9.00 GiB Logical volume mylv1 successfully resized [root@mylinux ~]# df -lh Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_mylinux-lv_root 50G 1.8G 45G 4% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/mapper/vg_mylinux-lv_home 67G 180M 63G 1% /home /dev/mapper/myvg-mylv1 5.0G 138M 4.6G 3% /users #发现并没有改变大小 [root@mylinux ~]# umount /dev/myvg/mylv1 #于是卸载了从新挂载 [root@mylinux ~]# mount /dev/myvg/mylv1 /users/ [root@mylinux ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_mylinux-lv_root 50G 1.9G 45G 4% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/mapper/vg_mylinux-lv_home 67G 180M 63G 1% /home /dev/mapper/myvg-mylv1 5.0G 138M 4.6G 3% /users #结果任然没变 [root@mylinux ~]# 物理边界空间加大了,但文件系统空间并没有加大。 [root@mylinux ~]# resize2fs /dev/myvg/mylv1 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/myvg/mylv1 is mounted on /users; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/myvg/mylv1 to 2359296 (4k) blocks. The filesystem on /dev/myvg/mylv1 is now 2359296 blocks long. [root@mylinux ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_mylinux-lv_root 50G 2.1G 45G 5% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/mapper/vg_mylinux-lv_home 67G 180M 63G 1% /home /dev/mapper/myvg-mylv1 8.9G 140M 8.3G 2% /users #已然到9G [root@mylinux ~]# #扩展逻辑卷基本上没太大的风险,如果是公司的关键性数据而且又咩有备 的话,建议你要谨慎,问题不大不见得没有问题。
16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
缩减逻辑卷: #不能上来就修改,先缩减逻辑空间大小,而后缩减物理空间大小。缩减后的 大小一定要容纳下现有的所有文件才可以。不允许联机操作, 出错的可能性非常滴大,因此不建议各位去缩减它。 # umount /dev/VG_NAME/LV_NAME # e2fsck -f /dev/VG_NAME/LV_NAME #做文件系统的强制检测和修复 # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] # lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME # mount [root@mylinux ~]# umount /dev/myvg/mylv1 [root@mylinux ~]# e2fsck -f /dev/myvg/mylv1 e2fsck 1.41.12 (17-May-2010) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information MYLV1: 13/589824 files (0.0% non-contiguous), 72673/2359296 blocks [root@mylinux ~]# resize2fs /dev/myvg/mylv1 7G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/myvg/mylv1 to 1835008 (4k) blocks. The filesystem on /dev/myvg/mylv1 is now 1835008 blocks long. [root@mylinux ~]# [root@mylinux ~]# lvreduce -L 7G /dev/myvg/mylv1 WARNING: Reducing active logical volume to 7.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce mylv1? [y/n]: y #注意,操作有风险! Reducing logical volume mylv1 to 7.00 GiB Logical volume mylv1 successfully resized [root@mylinux ~]# [root@mylinux ~]# mount /dev/myvg/mylv1 /users/ [root@mylinux ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_mylinux-lv_root 50G 2.6G 45G 6% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/mapper/vg_mylinux-lv_home 67G 180M 63G 1% /home /dev/mapper/myvg-mylv1 6.9G 140M 6.5G 3% /users #缩减到了7G [root@mylinux ~]# cat /users/ fstab issue lost+found/ #此前的文件ok [root@mylinux ~]# cat /users/issue CentOS release 6.5 (Final) Kernel \r on an \m [root@mylinux ~]#
17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
快照:snapshot lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name [root@mylinux users]# lvcreate -s -L 512M -n mylv-snap -p r /dev/myvg/mylv1 Logical volume "mylv-snap" created [root@mylinux users]# mount /dev/myvg/mylv-snap /mnt/ mount: block device /dev/mapper/myvg-mylv--snap is write-protected, mounting read-only [root@mylinux users]# cd /mnt/ [root@mylinux mnt]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m [root@mylinux mnt]# [root@mylinux mnt]# cp -a /mnt/{issue,fstab} /tmp/ #备份数据,保留原有属组信息 [root@mylinux mnt]# cd [root@mylinux ~]# umount /mnt/ [root@mylinux ~]# lvremove /dev/myvg/mylv-snap #用完了留着没用了 Do you really want to remove active logical volume mylv-snap? [y/n]: y Logical volume "mylv-snap" successfully removed [root@mylinux ~]# 删除所有,注意这个是有顺序的。当然所有数据也就没了,操作如下: [root@mylinux ~]# umount /users/ [root@mylinux ~]# lvremove /dev/myvg/mylv1 Do you really want to remove active logical volume mylv1? [y/n]: y Logical volume "mylv1" successfully removed [root@mylinux ~]# vgremove myvg Volume group "myvg" successfully removed [root@mylinux ~]# vgs VG #PV #LV #SN Attr VSize VFree vg_mylinux 1 3 0 wz--n- 119.51g 0 [root@mylinux ~]# pvremove /dev/sdb1 Labels on physical volume "/dev/sdb1" successfully wiped [root@mylinux ~]# pvremove /dev/sdc1 Labels on physical volume "/dev/sdc1" successfully wiped [root@mylinux ~]#
原创文章,作者:N24_小呆,如若转载,请注明出处:http://www.178linux.com/63038
评论列表(1条)
非常的棒,经验就来自于不断的实验的,不断的总结。