Naming convention script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Naming convention script
# 1  
Old 03-09-2010
Naming convention script

OK, so a quick background:

I am a sys admin for a 1:1 deployment in academia with Macbooks, totaling around 6,000. Macbooks get shifted around from building to building and go to and from the repair center if hardware repair is needed. Often, some machines will get moved from one building to another and not be renamed. We have a standard naming convention that goes like this:

AAA_Asset#

Where AAA is the building abbreviation and the asset# is the actual asset tag of the machine, separated by an underscore.

Now, my network admin has done his job and chopped up every building into specific IPv4 VLANs. So, I know what subnets belong to what buildings. This is good.

So, if AAA_Asset# moved from it's current building to a building where BBB_asset# is the standard naming convention I would like to write a script that renames the machine to the proper naming convention.

I can determine what building it is by the second number of the IP address. So, 10.20.30.40 would tell me that the machine is in the 20 subnet and that belongs to building X.

I'd like to set up a shell script that parses the computer name and the second digit of the IP address and puts them into arguments and then depending on the IP address it will rename the first three initials of the computer name to the proper name reflecting what building it is in.

I know I can get the computer name and the IP by using the networksetup binary, but I am not quite sure how to pass all that info into a set of arguments that determines the proper convention and then applies it.
# 2  
Old 03-09-2010
Hi, quick and dirty to get you started, output is:

sh money 10.192.0.0
IP is 10.192.0.0
the second octet is 192


code:


#!/bin/bash


IP=$1;
OCT2=$(echo $1 |awk -F . '{print $2}')

echo "IP is $IP"

echo "the second octet is $OCT2"


You can then build logic (such as a case statement) and take action based upon what is reported for the second number as you put it, or just use a few few if statements if there is not that many different choices.
# 3  
Old 03-10-2010
Thank you I will start writing the script out tomorrow or as soon as time permits and come back here for help. Thanks again.
# 4  
Old 03-10-2010
Anytime.
# 5  
Old 03-10-2010
OK I think I go a working concept of what I may want to use

Code:
#!/bin/bash

# get the current IP address

IP=`networksetup -getinfo Ethernet | grep -v "IPv6" | awk '/IP address:/ { print $3 }'`

case $IP in

    10.20.* ) #subnet 20

                echo "Unit is in subnet 20, should be building A"

                echo "A" 1>&2 
               ;;

     10.30.* ) #subnet 30

                echo "Unit is in subnet 30, should be building B"

                 echo "B" 1>&2
  
                ;;
esac


So I can out put my desired results to a variable, be it A, B, C and so forth and then later call them and rename the computer accordingly?

Sorry, I am a novice to moderate scripter and still learning.

Thanks
# 6  
Old 03-11-2010
I don't have apple machine, so I have to guess, that below command provides the IP address.
Code:
IP=`networksetup -getinfo Ethernet | grep -v "IPv6" | awk '/IP address:/ { print $3 }'`

Finially you export the build abbreviation to variable $building with above script.

So what's the command to show hostname?

For example, you get hostname with another variable,

Code:
hostname=`hostname`

then you can get new hostname by below command:

Code:
newhost="${building}_${hostname##*_}"

then you can set new hostname with variable $newhost
# 7  
Old 03-11-2010
to get the computer name you use the same command, networksetup.

networksetup -getcomputername will get the name, the hostname command also works. In fact there are like 5 to 7 different ways to get the computer name from the command line.

I am just not sure how to take those variables and then plug them into arguments that match naming conventions.

Thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Change the naming convention of the output file

Hi Currently we have nmon running on our Red hat Linux server. The ouput file is now coming with the naming convention as "servername_160321_0010.nmon". The output file naming convention has to be changed as "nmon_servername_daily_2016.03.21_00.00.00" How can we do it ? Any suggestions... (10 Replies)
Discussion started by: newtoaixos
10 Replies

2. Shell Programming and Scripting

file naming in a script

#!/bin/bash while read inputline do what="$inputline" echo $what; if ; then exit fi $reextend $what $print ls -a done this is my code i am trying to change all of the file types of a certain directory to another file type but im not all the way there can someone help please (3 Replies)
Discussion started by: domdom110
3 Replies

3. Red Hat

File System Naming Convention

Hi, I am installing a new RHEL 5 application server containing JBOSS along with other specific 3rd party applications. I know that this usually gets installed in /opt but I was thinking of installing these on a new separtate lv / file system instead. i.e. /<my_new_FS_name> rather than... (6 Replies)
Discussion started by: Duffs22
6 Replies

4. UNIX for Dummies Questions & Answers

Check file name against convention

I need this script to check if the first 3 letters of the file name are capital. find . -type f -name *001.dpx -exec find {} ! -name ???_???_???_v??.??????.dpx \; >> ./Bad_FileNames.txt Currently it finds the first frame of the sequence and tests that against the naming convention. It works... (6 Replies)
Discussion started by: scribling
6 Replies

5. Fedora

Basic question regarding rpm naming convention.

Hi Guys, Where would i find the list of distribution codes. For example. samba-32bit-3.4.2 -1.1.3.1.x8664.rpm In above rpm file it is indicated that its release is 1.1.3.1 . The rpm is meant to be run for opensuse. Where would i get the linking of release number and distribution. ... (2 Replies)
Discussion started by: pinga123
2 Replies

6. Shell Programming and Scripting

Concatenate files to one file with naming convention

Hi , i have below files in wrk folder. file names are 1102090001.CLT 1102090003.CLT 1102100019.CLT 1102100020.CLT the above files are concatenate to one file but that concatenate file name must be same naming convention. (date +%y%m%d)and 0001 count. example : concatenate file... (9 Replies)
Discussion started by: krbala1985
9 Replies

7. Shell Programming and Scripting

naming columns

i have a file staff.txt with contents tom|25|New York sims|40|London neyo|18|Moscow i want to label the column at the top, my output should be Names|age|city of birth tom|25|New York sims|40|London neyo|18|Moscow (4 Replies)
Discussion started by: blackzinga80
4 Replies

8. Hardware

Motherboards naming convention

For the selection of motherboards, is there any naming convention in the type numbers? There is usually a brand name and sometimes a version name, but more essential details like form factor, SATA speed and maximum amount of RAM is never given. Is there a reason for that? Is there any background... (2 Replies)
Discussion started by: figaro
2 Replies

9. Shell Programming and Scripting

Shell Script for file naming

Hi All, I am looking for a Unix shell script for file naming such that the file names itself as KARAN0001. The 4 digit sequence number must start at 0001 and end at 9999. After 9999 is reached, the number must reset to 0001. Can anyone please help me with that. Thanks & Regards ... (2 Replies)
Discussion started by: karansachdeva
2 Replies

10. UNIX Desktop Questions & Answers

Naming convention for Libraries..

Hi All, I need to know standard naming convention for Unix libraries (including all flavours of unix)..As I have gone through some sites and found out The UNIX convention for naming of libraries is lib<name>.so.<major>.<minor>.<revision> so is it statndard . also does it change... (0 Replies)
Discussion started by: rkshukla14
0 Replies
Login or Register to Ask a Question