对进行常规的有效备份(仅为)--所有视图中修改的签出元素--对我们来说都是一件很棒的事情,因为大量定义的动态/快照视图不能包含在日常备份策略中。
下面的ksh代码接近于动态视图所需的内容,但它简单地假设视图的config-spec文件中的第一行总是首先选择签出元素( *element * CHECKEDOUT* )。一般情况下,它不会有好的效果。
对于视图中的每个版本文件,只有在与为该视图选择的VOB中的上一个相应版本元素不同的情况下,我们才能将其添加到备份列表中。(只有在视图中已经开发)。
该解决方案还必须对快照视图有效。
for CHECKEDOUT_FILE_IN_THE_VIEW in $( /usr/atria/bin/cleartool lsco -cview -avobs -short )
do
VERSIONED_FILE_NAME=$( /usr/atria/bin/cleartool describe -short ${CHECKEDOUT_FILE_IN_THE_VIEW} \
| sed -e's/CHECKEDOUT/LATEST/' )
if [ -f ${VERSIONED_FILE_NAME} ]; then
if [ -f ${CHECKEDOUT_FILE_IN_THE_VIEW} ]; then
diff -b ${CHECKEDOUT_FILE_IN_THE_VIEW} ${VERSIONED_FILE_NAME} > /dev/null
if [ $? -ne 0 ]; then
##-- The checked-out file in the view is different from the corresponding
##-- versioned element in the VOB. So it has to be added to the backup list.
echo "${VERSIONED_FILE_NAME}" >> ${F_LOG}
fi
fi
fi
done有什么想法吗?蒂娅。哈维尔C.
发布于 2010-09-06 17:18:23
坦率地说,对于动态视图,更简单的备份策略是压缩和备份与上述动态视图相关联的视图存储(在“cleartool endivew -server aDynViewTag”之后):
如果您需要一个通用的dynamic and snaphot views解决方案,那么您可以参考:
“How to find all checkedout files with ClearCase cleartool?”(您正在使用的“cleartool lsco”),但是您不需要计算最新版本就可以产生基于系统的差异。
你可以简单地:
cleartool diff -pred ${CHECKEDOUT_FILE_IN_THE_VIEW}如果签出版本与其上一个版本之间存在任何修改,它将返回某些内容(对于快照或动态视图中的版本)。
见。
https://stackoverflow.com/questions/3652854
复制相似问题