设为首页 收藏本站
查看: 2513|回复: 6

[经验分享] Linux磁盘一键自动分区脚本

[复制链接]
累计签到:77 天
连续签到:1 天
发表于 2013-3-27 08:40:40 | 显示全部楼层 |阅读模式

一、功能说明

1 根据自定义的配置文件,对指定硬盘做分区,一键安装,不需要交互
2 支持 Swap,Primary,Extend,Logical 分区格式
3 可以自动计算大小
4 支持LVM分区,并自动创建
5 自动分区顺序是:Swap,Primary,Extend,Logical

遗留的问题 :
1 目前暂时没有考虑对大于2T磁盘的分区(那个需要使用GPT分区格式)
2 另外在分区时候 可能实际分区大小跟 配置文件指定的有微小出入


二、分区配置文件格式说明:
举例:
nova_volumes sdb msdos 200 primary 1 0

nova_volumes sdb msdos 400 primary 2 0

- sdb msdos 300 extended 3 0
nova_volumes sdb msdos 100 logical 4 3
nova_volumes sdb msdos 100 logical 5 3


第一列 : LVM 卷名 ,如不需要用 “-”替代
第二列  :   所用的物理磁盘名 , sda/sdb/sdc 等
第三列 : 磁盘分区表格式,支持 (msdos,小于2T用; gpt 大于2T用)
第四列  :  分区大小,以M作为单位
第五列  :  分区类型(主分区/扩展分区/逻辑分区  并且一个物理磁盘下只允许有一个扩展分区)
第六列  :  配置ID,整形数字,不能为空,更不能重复
第七列  :  配置父ID号,整形数字。ID为0时,表示没有父ID号;如果不为0,则也不允许重复.

第5,第6列的配置,做个关系型数据开发的都应明白,是用做配置相互的父子关系
不过在此脚本中,不支持多层父子关系

上例的配置中的解释:
第一行: 配置 /dev/sdb第一个 分区,类型是 主分区 200M,所属的LVM卷名是 : nova_volumes
第二行: 配置 /dev/sdb 第二个 分区,类型是 主分区 400M,所属的LVM卷名是 : nova_volumes

第三行: 配置 /dev/sdb 第三个 分区,类型是 扩展分区 300M
第四行 :   配置 /dev/sdb 第四个 分区,类型是 逻辑分区 100M,它属于 第三行的扩展分区300M的一部分,并且它所属的LVM卷名是 : nova_volumes
第五行 :   配置 /dev/sdb 第四个 分区,类型是 逻辑分区 100M,它属于 第三行的扩展分区300M的一部分,并且它所属的LVM卷名是 : nova_volumes


三、实现代码


  • [Shell] 纯文本查看 复制代码
    #!/bin/bash 
    cfglist="disk_custsize_partition.list"; 
    cfglist_vaild="disk_custsize_partition_vaild.list"; 
    cfglist_vaild_for_disk_tmp="disk_custsize_partition_vaild_for_disk_tmp.list"; 
    cfglist_vaild_for_disk_logical_tmp="disk_custsize_partition_vaild_for_disk_logical_tmp.list"; 
      
    fdisk_cmd_part="parted"; 
    fdisk_cmd_fdk="fdisk"; 
      
    partition_array=("primary" "extended" "logical"); 
    partition_main_max=4; 
      
    dev_array=(); 
    length=${#dev_array[@]}; 
      
    for i in `ls /dev/sd* |grep -vE "[0-9]"` 
    do 
     dev_basename=`basename $i`; 
     dev_dirname=`dirname $i`; 
     #echo $dev_basename" "$dev_dirname; 
     dev_array[$length]=$dev_basename; 
     _length_=$(( length++ )); 
     #echo $length":" 
    done 
    #echo "OOOK,array()"; 
    #echo ${dev_array[@]}; 
      
    if [[ -f $cfglist ]] 
    then 
       > $cfglist_vaild; 
       cat $cfglist|grep -v "#"|while read line 
       do 
          cfg_array=($line); 
          sub_disk=${cfg_array[1]}; 
          if [[ -e "/dev/$sub_disk" ]] 
          then 
             #echo "/dev/"$sub_disk; 
             echo $line >> $cfglist_vaild; 
          fi 
       done 
    fi 
      
    fdisk_test=$( which $fdisk_cmd_fdk ); 
    parted_test=$( which $fdisk_cmd_part ); 
      
    if [[ -n $fdisk_test ]] && [[ -n $parted_test ]] 
    then 
       #echo " fdisk parted OK"; 
       for i in ${dev_array[@]} 
       do 
           echo "initial partition : "$i; 
           hd_sysdir="/dev"; 
           hd_dev="$i"; 
           hd_allinbyte=`$fdisk_cmd_fdk -l $hd_sysdir/$hd_dev |grep -E "^Disk $hd_sysdir/$hd_dev"|awk '{print $5}'`; 
           hd_allinMbyte=$(( $hd_allinbyte/1000/1000)); 
            
           hd_allinMbyte_Used_Str=$($fdisk_cmd_part $hd_sysdir/$hd_dev print|grep -P '^[[:space:]][1-9]+'|awk '{print $3}'|tail -n 1); 
           if [[ -n $hd_allinMbyte_Used_Str ]] ; 
           then  
              hd_allinMbyte_Used_Array=( $( echo $hd_allinMbyte_Used_Str |sed "s/\([0-9]\+\)\(B\|MB\|GB\|TB\|PB\)/\1 \2/" ) ); 
              #echo "hd_allinMbyte_Used :"${hd_allinMbyte_Used_Array[0]}" :"${hd_allinMbyte_Used_Array[1]}; 
              hd_allinMbyte_Used_Array[1]=$( echo ${hd_allinMbyte_Used_Array[1]}|tr '[a-z]' '[A-Z]' ); 
               
              case "${hd_allinMbyte_Used_Array[1]}" in 
              MB|mb) 
              hd_allinMbyte_Used=${hd_allinMbyte_Used_Array[0]}; 
              ;; 
              GB|gb) 
              hd_allinMbyte_Used=$(( ${hd_allinMbyte_Used_Array[0]}*1000 )); 
              ;; 
              TB|tb) 
              hd_allinMbyte_Used=$(( ${hd_allinMbyte_Used_Array[0]}*1000*1000 )); 
              ;; 
              PB|pb) 
              hd_allinMbyte_Used=$(( ${hd_allinMbyte_Used_Array[0]}*1000*1000*1000 )); 
              ;; 
              *) 
              hd_allinMbyte_Used=$(( ${hd_allinMbyte_Used_Array[0]}/1000 )); 
              ;; 
              esac 
               
           else 
              hd_allinMbyte_Used=0; 
              #echo "hd_allinMbyte_Used_Array : 0 MB"}; 
           fi 
           echo "hd_allinMbyte_Used_Array:"${hd_allinMbyte_Used_Array[0]}; 
           hd_allinMbyte_Used=$( printf "%.f" $hd_allinMbyte_Used ); 
           hd_allinMbyte_Vaild=$(( $hd_allinMbyte - $hd_allinMbyte_Used )); 
            
           echo "$hd_allinbyte : $hd_allinMbyte $hd_allinMbyte_Used ($hd_allinMbyte_Vaild)"; 
           #continue; 
            
           #disk label 
           hd_lable=`$fdisk_cmd_part -s $hd_sysdir/$hd_dev print|grep -E "^Partition Table:"|awk '{print $NF}'`; 
           if [[ -z $hd_lable ]]; 
           then 
              hd_allinGigabytes=$(( $hd_allinbyte/1000/1000/1000 )); 
                if [[ $hd_allinGigabytes -gt 2048 ]]; 
                      then 
                         hd_lable_type="gpt"; 
                      else 
                         hd_lable_type="msdos"; 
                fi 
              mklabel_cmd="$fdisk_cmd_part -s $hd_sysdir/$hd_dev mklabel $hd_lable_type"; 
                      echo ">>> mklabel_cmd :"$mklabel_cmd; 
                      eval "$mklabel_cmd"; 
           fi     
           #continue; 
      
           for k in ${partition_array[@]}; 
           do 
              echo "partition type:"$k; 
              if [[ ! ($k = "logical") ]]; 
              then 
                 #primary partition process 
                 partition_main_used=`$fdisk_cmd_part $hd_sysdir/$hd_dev print|grep -P '^[[:space:]][1-9]+'|awk 'BEGIN{t=0};{if($5~"primary|extended"){t++}};END{print t}'`; 
                 if [[ $partition_main_used -ge $partition_main_max ]] 
                 then 
                    echo "The number of Partition: primary/extend is reach the max:$partition_main_max"; 
                    continue; 
                 fi 
                  
                 #partition start 
                 > $cfglist_vaild_for_disk_tmp; 
                 case "$k" in 
                 primary) 
                    #echo "primary cfglist_vaild "; 
                    cat $cfglist_vaild |grep -E "[[:space:]]$hd_dev[[:space:]]"|awk '{if($5~"'$k'"){print $0}}' > $cfglist_vaild_for_disk_tmp; 
                 ;; 
                 extended) 
                    #echo "extended cfglist_vaild "; 
                    cfg_seq_num=`cat $cfglist_vaild |grep -E "[[:space:]]$hd_dev[[:space:]]"|awk '$5 =="'$k'" {print $6}'|head -n 1`; 
                        cat $cfglist_vaild |grep -E "[[:space:]]$hd_dev[[:space:]]"|awk '$5 =="'$k'" || $7 =="'$cfg_seq_num'" {print $0}' > $cfglist_vaild_for_disk_tmp; 
                 ;; 
                 esac 
                  
                       while read line; 
                       do 
                           #echo $line;continue; 
                           sub_dev=($line); 
                           echo ">>> Subdev: " ${sub_dev[@]}; 
                           hd_build_scount_req=${sub_dev[3]}; 
                           hd_partition_type_req=${sub_dev[4]}; 
                           hd_partition_seq=${sub_dev[5]}; 
                           hd_partition_seq_parent=${sub_dev[6]}; 
                 
                           if [[ ($hd_partition_type_req = "primary" || $hd_partition_type_req = "extended") && ($hd_allinMbyte_Vaild -ge $hd_build_scount_req) ]]; 
                           then  
                              echo ">>> disk count : $hd_allinMbyte  $hd_allinMbyte_Used $hd_allinMbyte_Vaild $hd_build_scount_req"; 
                              if [[ $hd_allinMbyte_Used -eq 0 ]]; 
                              then 
                                 hd_build_start=1; 
                              else 
                                 hd_build_start=$hd_allinMbyte_Used; 
                              fi 
                         
                                    hd_build_end=$(( hd_build_start + hd_build_scount_req )); 
                                     
                                    hd_build_partition_type=""; 
                                    case  "$k" in 
                                    primary) 
                                    hd_build_partition_type="ext4"; 
                                    ;; 
                                    extended) 
                                    hd_build_partition_type=""; 
                                    ;; 
                                    esac                                 
                               
                              #start partition create 
                                      parted_cmd="$parted_test -s $hd_sysdir/$hd_dev mkpart $hd_partition_type_req $hd_build_partition_type $hd_build_start $hd_build_end"; 
                                      echo "parted cmd: $parted_cmd"; 
                                      eval "$parted_cmd"; 
                                      parted_cmd_res=$?; 
                                       
                                      #wile loop,variables reset 
                              #hd_allinMbyte_Used=$hd_build_end; 
                              #echo "DDDD hd_build_end >> "$hd_build_end; 
                              #hd_allinMbyte_Vaild=$(( hd_allinMbyte - hd_allinMbyte_Used )); 
                               
                              if [[ $k = "extended" ]]; 
                              then 
                              #exntended/logical partition process 
                              hd_ext_all=$hd_build_scount_req; 
                              hd_ext_all_start=$(( hd_build_start + 1 )); 
                              hd_ext_all_end=$hd_build_end; 
                              hd_ext_allinMbyte_Vaild=$hd_ext_all; 
                               
                              echo "exntended/logical partition process!"$hd_ext_all" : "$hd_ext_all_start" : "$hd_ext_all_end; 
                              > $cfglist_vaild_for_disk_logical_tmp 
                              cat $cfglist_vaild |grep -E "[[:space:]]$hd_dev[[:space:]]"|awk '{if($5=="logical" && $7=="'$hd_partition_seq'"){print $0}}' > $cfglist_vaild_for_disk_logical_tmp; 
                              hd_build_logicalline_seq=0; 
                              while read logicalline; 
                              do 
                                 #echo $logicalline; 
                                 cfg_ext_array=($logicalline); 
                                 hd_build_ext_req=${cfg_ext_array[3]}; 
                                 #echo ">>> $hd_ext_allinMbyte_Vaild -ge $hd_build_ext_req"; 
                                  
                                 if [[ $hd_ext_allinMbyte_Vaild -ge $hd_build_ext_req ]]; 
                                 then 
                                    if [[ hd_build_logicalline_seq -eq 0 ]]; 
                                    then 
                                       hd_build_ext_start=$hd_ext_all_start; 
                                    fi 
                                     
                                    hd_build_ext_end=$(( hd_build_ext_start + hd_build_ext_req -1 )); 
                                     
                                    #start partition (extend) create 
                                    parted_ext_cmd="$parted_test -s $hd_sysdir/$hd_dev mkpart logical ext4 $hd_build_ext_start $hd_build_ext_end"; 
                                    echo "partedext cmd: $parted_ext_cmd"; 
                                    eval "$parted_ext_cmd"; 
                                    sleep 1; 
                                    if [[ $? -eq 0 ]]; 
                                    then 
                                       hd_ext_allinMbyte_Vaild=$(( hd_ext_allinMbyte_Vaild - hd_build_ext_req )); 
                                       hd_build_ext_start=$(( hd_build_ext_end+1 )); 
                                       hd_build_ext_end=0; 
                                        
                                       #lvm create 
                                       partition_create_seq=`$fdisk_cmd_fdk -l $hd_sysdir/$hd_dev|grep -E "^$hd_sysdir/$hd_dev" |cut -d " " -f 1|sed -e "s/^.*$hd_dev//"|tail -n 1`; 
                                       vg_obg_id="${cfg_ext_array[0]}"; 
                                       if [[ $vg_obg_id != '-' ]]; 
                                       then 
                                                       eval "vg_obg_id_length=$(echo '${#'$vg_obg_id'[@]}')"; 
                                                       echo "LV-Vg Create: $vg_obg_id"; 
                                                       eval "(pvdisplay -s $hd_sysdir/$hd_dev 2>&1) > /dev/null"; 
                                                             if [[ $? -ne 0 ]]; 
                                                             then 
                                                                vg_cmd="pvcreate -f $hd_sysdir/$hd_dev"$partition_create_seq;     
                                                                echo "Vgcreate cmd: $vg_cmd"; 
                                                                eval "$vg_cmd"; 
                                                                #put pgid in the vg arrays 
                                                                eval "${vg_obg_id}[$vg_obg_id_length]='$hd_sysdir/$hd_dev$partition_create_seq'"; 
                                                            echo "$vg_obg_id_length: '"$hd_sysdir"/"$hd_dev$partition_create_seq"'"; 
                                                                vg_obg_id_length=$(( vg_obg_id_length+1  )); 
                                                 
                                                             fi 
                                                           fi 
                                    fi 
                                 fi 
                                  
                                 hd_build_logicalline_seq=$(( hd_build_logicalline_seq + 1 )); 
                                  
                              done < $cfglist_vaild_for_disk_logical_tmp; 
                              > $cfglist_vaild_for_disk_logical_tmp; 
                               
                              fi 
                                      #end if [[ $k = "extended" ]] 
                                       
                                      #wile loop,variables reset 
                              hd_allinMbyte_Used=$hd_build_end; 
                              #echo "DDDD hd_build_end >> "$hd_build_end; 
                              hd_allinMbyte_Vaild=$(( hd_allinMbyte - hd_allinMbyte_Used )); 
                               
                                      #continue; 
                                      #Lvm: pvcreate 
                                      #echo "LVM: parted_cmd_res:"${sub_dev[0]}; 
                                      if [[ $parted_cmd_res -eq 0 ]]; 
                                      then 
                                        partition_create_seq=`$fdisk_cmd_fdk -l $hd_sysdir/$hd_dev|grep -E "^$hd_sysdir/$hd_dev" |cut -d " " -f 1|sed -e "s/^.*$hd_dev//"|tail -n 1`; 
                                        if [[ ${sub_dev[0]} != '-' ]]; 
                                        then 
                                           vg_obg_id="${sub_dev[0]}"; 
                                           eval "vg_obg_id_length=$(echo '${#'$vg_obg_id'[@]}')"; 
                                           echo "LV-Vg Create: $vg_obg_id"; 
                                           eval "(pvdisplay -s $hd_sysdir/$hd_dev 2>&1) > /dev/null"; 
                                                if [[ $? -ne 0 ]]; 
                                                then 
                                                   vg_cmd="pvcreate -f $hd_sysdir/$hd_dev"$partition_create_seq;     
                                                   echo "Vgcreate cmd: $vg_cmd"; 
                                                   eval "$vg_cmd"; 
                                                   #put pgid in the vg arrays 
                                                   eval "${vg_obg_id}[$vg_obg_id_length]='$hd_sysdir/$hd_dev$partition_create_seq'"; 
                                               echo "$vg_obg_id_length: '"$hd_sysdir"/"$hd_dev$partition_create_seq"'"; 
                                                   vg_obg_id_length=$(( vg_obg_id_length+1  )); 
                                     
                                                fi 
                                    fi 
                                fi 
                              #end if [[ $? -eq 0 ]] 
                               
                             fi 
                             #end if [[ $hd_allinMbyte_Vaild -ge $hd_build_scount_req ]] 
                              
                       done < $cfglist_vaild_for_disk_tmp; 
               
              fi 
              #end if [[ ! ($k = "primary" ]] 
               
           done 
           continue; 
            
            done; 
    else 
       echo " system doesn't install fdisk or parted!"; 
       exit 1; 
    fi 
      
    #echo "partition customize end";exit 
    #lvm start 
    unset vg_obg_id vg_obg_id_length; 
    for i in `cat $cfglist_vaild |cut -d " " -f 1|grep -v "-"|sort -u`; 
    do 
    vg_obg_id=$i; 
    echo "__"$i"__"; 
    eval "vg_obg_id_length=$(echo '${#'$vg_obg_id'[@]}')"; 
    for ((j=0;j<$vg_obg_id_length;j++)) 
    do 
       eval 'vg_obg_disk_name=${'$vg_obg_id'[$j]}'; 
       echo $j":"$vg_obg_disk_name; 
       eval "(vgdisplay -s $vg_obg_id 2>&1) > /dev/null" 
       if [[ $? -eq 0 ]]; 
       then 
          eval "(vgextend $vg_obg_id $vg_obg_disk_name 2>&1) >/dev/null"; 
       else 
          eval "(vgcreate $vg_obg_id $vg_obg_disk_name 2>&1) >/dev/null"; 
       fi 
    done; 
      
    done; 
    exit 0; 





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-4428-1-1.html 上篇帖子: Oracle数据库管理常用的监控脚本------极大的简化运维工作 下篇帖子: python写的爬虫抓取到的网页是乱码解决 Linux

尚未签到

发表于 2013-3-27 08:57:23 | 显示全部楼层
怀揣两块,胸怀500万!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 17:29:17 | 显示全部楼层
天塌下来你顶着,我垫着!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-21 07:00:30 | 显示全部楼层
不在放荡中变坏,就在沉默中变态!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-25 14:20:08 | 显示全部楼层
不在放荡中变坏,就在沉默中变态!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-1 00:31:17 | 显示全部楼层
所有的男人生来平等,结婚的除外。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-5 22:20:14 | 显示全部楼层
死亡教会人一切,如同考试之后公布的结果——虽然恍然大悟,但为时晚矣~!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表