If test array element multiplication


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting If test array element multiplication
# 1  
Old 07-16-2018
If test array element multiplication

Ya, I know, who in this day and age is mirroring rootvg...?
But yes, my shop does and I need to script checking for it.


I also know I could just inverse the the logic and call the LV mirrored
if the LPs and PPs were not equal. But I want to do the math in the if test
and also know I could use single element variables but array loading and usage is a learning experience for me.



Here is my script, but doing the math inside the if test is eluding me.


Code:
for LV in hd1 hd2 hd3 hd4 hd5
do
set -A LP_PP `lsvg -l rootvg |grep "$LV " |awk '{ print $3" "$4 }'`
if [[ ${LP_PP[0]} == ${LP_PP[1]} ]]       # [0] *2 = [1]
 then
  MRD=mirrored
 else
  MRD="NOT mirrored"
fi
print "$LV is $MRD"
done

# 2  
Old 07-16-2018
Try:

Code:
if ((LP_PP[0]*2==LP_PP[1]))
then
   ...

# 3  
Old 07-17-2018
Do you also check for the boot device being on both/all disks in rootvg and the dump device? I had a suggestion that the dump device should not be mirrored, so we created two separate devices, on for each PV. Fortunately, we never needed them, but you never know......

You should probably also check that the LV copies are synchronised. I've no longer got an AIX server so I can't test things, but something simple like lsvg -l | grep -i stale might suffice.



I hope that this helps,
Robin
# 4  
Old 07-17-2018
Chubler_XL interesting, I was sure that was one method I had tried, your tip does get it done, thank you


rbatte1 yes, creating / assigning the second dump device on the 2nd disk, making sure it is bosbooted and setting the bootlist are all in scope for the script. I will also script the proper sizing of both dump devices. The script will also back ground the syncvg cmd. Since some of my rootvg's are rather large it will take some time for them to sync and I will not hang my script processing waiting on that. The script will also have a current status option, thanks.
This User Gave Thanks to gtsonoma For This Post:
# 5  
Old 07-17-2018
Good to know that these are already in hand/planned. If rootvg is large, what do you do with a mksysb image? You can trim this down, of course, but it's messy and needs maintenance.

Personally I'd always keep rootvg clear apart from the OS, your backup software and enough to recover the filesystems, even if that leaves lots of unused space. Are you short of disk space for other volume groups to put your application data in?



Robin
# 6  
Old 07-17-2018
Other methods are possible but not easier:
Code:
if [[ $(( ${LP_PP[0]} * 2 )) == ${LP_PP[1]} ]]

Within $(( )) one often does not need a further ${ },
and when you know you have numbers you can compare them with -eq
Code:
if [[ $(( LP_PP[0] * 2 )) -eq ${LP_PP[1]} ]]

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Array Element

This question is for someone that's more familiar with Array Element. I need to know if the maximum array element that can be assigned is 1024 and if its so, Is there a workaround solution when the counter exceeded 1024? param_array="$param_nam" counter=$counter+1 #to avoid space... (3 Replies)
Discussion started by: cumeh1624
3 Replies

2. Shell Programming and Scripting

Multiplication of array elements

Hi, I can't find out how to create correct code to get multiplication of each elements of array. Let's say I enter array into command line (2 3 4 5 6 8) and i need output 2*3*4*5*6*8=5760. I tried this one, but answer is 0. for i in $@; do mult=$((mult*i))done echo "mult: " $mult ... (4 Replies)
Discussion started by: rimasbimas
4 Replies

3. Shell Programming and Scripting

ksh insert element in array

Hi all, I need help with the following scenario in ksh. If the number of elements contained by arrayA is 11 I need to insert a zero as the element arrayA then print all arrayA elements separated by comma. Appreciate your help. (9 Replies)
Discussion started by: ejianu
9 Replies

4. Shell Programming and Scripting

Multiplying array element

I am trying to take all the elements of an array and multiply them by 2, and then copy them to a new array. Here is what I have i=0 for true in DMGLIST do let DMGSIZES2="${DMGSIZES}"*2 let i++ done unset i echo ${DMGSIZES2} It does the calculation correctly for the first element,... (7 Replies)
Discussion started by: nextyoyoma
7 Replies

5. UNIX for Advanced & Expert Users

Perl XML::DOM: How to test if element exists?

Hi, I'm trying to write a script for some xml file handling, but I'm not getting too far with it. I've got the following xml content <?xml version="1.0" encoding="UTF-8"?> <Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <Operation name="OPER1"> <Action name="ACTION1">... (2 Replies)
Discussion started by: Juha
2 Replies

6. Shell Programming and Scripting

previous element in the array perl

Hi, How to get previous/next element in the array perl Example @queue = (1, 2 ,3 , 4); I want to get value of 1 and 2, or, 2 and 3, or 3 and 4...etc and compare to value which one is greater to do that I need to get previous and next element of array ? (1 Reply)
Discussion started by: guidely
1 Replies

7. Shell Programming and Scripting

remove an element from array

I need to remove an element from the below array variable TABLENAME. #!/bin/ksh set -A TABLENAME "mirf roxar keke mirs" echo "the array is ${TABLENAME}" If i need to remove say keke and have the final TABLENAME as below, how this could be achieved. Pls throw some light. echo "Modified... (3 Replies)
Discussion started by: michaelrozar17
3 Replies

8. Shell Programming and Scripting

Shift array element

I want to delete and 0th element of array in shell scrpit and also shift all others to one level up. (2 Replies)
Discussion started by: darshakraut
2 Replies

9. Shell Programming and Scripting

Adding array element in KSH

All, I would like to add the first 10 elements of an array. Here is how I am doing it now (only included first few add ops): #!/usr/bin/ksh ###Grab the array values out of a file### TOTAL=`awk '/time/' /tmp/file.out | awk '{print $4}'` set -A times $TOTAL SUM=$((${times} + times... (3 Replies)
Discussion started by: Shoeless_Mike
3 Replies

10. Shell Programming and Scripting

accessing my first element of array

Hello everyonel, I have an array set like so num=4 read name arr=name I go through while loop to assign different values to different array element from 1 to 4. when I try to access the FIRST element of the array I get the last one first. Like if I say ${arr} it will show the last element... (4 Replies)
Discussion started by: afadaghi
4 Replies
Login or Register to Ask a Question