在image.data文件中根据stanza中的COPIES来自动修改PP数的脚本(原创)

发表于:2007-06-08来源:作者:点击数: 标签:
今天在LU论坛里为别人解决了一个脚本的问题,记录如下。 写脚本的目的: 1、希望定时做ROOTVG的备份,但它做了 MI RROR,所以想先把里面lv的信息改掉,才开始做mksysb。 2、image.data里要根据每个stanza的COPIES决定是否需要除以1、除以2,甚至除以3来改PP

    今天在LU论坛里为别人解决了一个脚本的问题,记录如下。

    写脚本的目的:
1、希望定时做ROOTVG的备份,但它做了MIRROR,所以想先把里面lv的信息改掉,才开始做mksysb。
2、image.data里要根据每个stanza的COPIES决定是否需要除以1、除以2,甚至除以3来改PP数。

#/usr/bin/ksh
# author: beginner@yeah.net http://blog.chinaunix.net/index.php?blogId=739
export IFS='\'
#or use export IFS='&'
while read line;do
    if [ "$(echo $line |awk -F"= " '{print }')" = "[ ]*COPIES" ]
       then
       copys=$(echo $line |awk -F"= " '{print }')
    fi
    echo $line |awk 'BEGIN{OFS=FS="= "}{if(=="[ ]*PP") print ,/copys; else print }' copys=$copys
done<image.data

    脚本很简单,唯一要说明的是export IFS='\'这行。本来我想用export IFS='\n'来的,但AIX好象和其它的UNIX不太一样,在这里把“\n”看作是字符“n”(或两个字符“\”、“n”),而不是换行符,这样将导致脚本输出的文件中字符“n”都不见了。不过解决不了的问题可以绕过去,用export IFS='\'或export IFS='&'就好了,因为我知道image.data这个文件里出现“\”和“&”的可能性不大。

    BLOG好象贴的脚本有丢字符的问题,所以我做了个附件在这里。
    http://blog.chinaunix.net/resserver.php?blogId=739&resource=image.txt

原文转自:http://www.ltesting.net