si vous souhaitez savoir si un patch existe ou a existé sur un serveur HP, vous avez deux solutions.
la solution simple:
# swlist -x show_superseded_patches=true PHKL_40381
l’inconvénient c’est que selon le niveau de superseding, on peut ne pas trouver.
et de toutes façons, on a pas toutes les infos.
exemple sur un de mes systèmes:
ERROR: Software "PHKL_38038" was not found
la solution script:
Download : supersede.sh
#!/bin/ksh
PATCHS_TO_FOUND="$(echo $* |tr " " "|")"
[ -z "$PATCHS_TO_FOUND" ] && {
echo "Erreur: merci de mettre un nom/numero patch en argument"
exit
}
cd /var/adm/sw/products
for i in PH*/pfiles/README
do
awk -v i="${i%%/*}: " 'BEGIN {
printf "%s",i
}
/^Supersedes:$/,/^$/ {
printf
}
END {
printf "\n"
}' $i
done | \
sed 's/: $/: Exist, no supersedding/' | \
egrep "$PATCHS_TO_FOUND" | \
tr " " " " | \
tr -s " " | \
while read line
do
for patch in $(echo "$PATCHS_TO_FOUND" |tr "|" " ")
do
[ -n "$(echo $line |grep $patch)" ] || continue
echo $line |awk -v patch=$patch '{
for ( i=1 ; i<=NF ; i++ ){
if ($i ~ patch) {
gsub("^","-=[",$i) ;
gsub("$","]=-",$i) ;
print ;
exit ;
}
}
}'
done
done
exit 0
avec son exemple sur le même système qu’au dessus:
# supersede.sh PHKL_38038 PHKL_41005: Supersedes: PHKL_36241 PHKL_36160 PHKL_35936 PHKL_35899 PHKL_36872 PHKL_36457 PHKL_36242 PHKL_38987 PHKL_38449 PHKL_38275 PHKL_38243 PHKL_38174 -=[PHKL_38038]=- PHKL_37452 PHKL_37185 PHKL_37184 PHKL_36054 PHKL_35900 PHKL_40942 PHKL_40441 PHKL_40240 PHKL_40130 PHKL_39747 PHKL_39401 PHKL_38949 PHKL_38651 PHKL_41362: Supersedes: PHKL_36241 PHKL_36160 PHKL_35936 PHKL_35899 PHKL_36872 PHKL_36457 PHKL_36242 PHKL_38987 PHKL_38449 PHKL_38275 PHKL_38243 PHKL_38174 -=[PHKL_38038]=- PHKL_37452 PHKL_37185 PHKL_37184 PHKL_36054 PHKL_35900 PHKL_41588 PHKL_41355 PHKL_41005 PHKL_40942 PHKL_40441 PHKL_40240 PHKL_40130 PHKL_39747 PHKL_39401 PHKL_38949 PHKL_38651
on identifie facilement si un patch existe ou même s’il est supersedé, ça fonctionne à tout les coups.
vous pouvez même vous passer d’utiliser le nom complet, une recherche sur 38038 aurait fonctionné pareil, et vous pouvez analyser plusieurs patchs en même temps.
Commentaires