Hello Graig,
Would this not qualify for your SDK?
There are more installations in the field who want to do stuff based on
ip/subnet information.
Another option I thought of for the SDK was some sort of tuning wizard.
The wizard can set some best practice parameters based on the number of
users the server should be able to handle.
Today you can run from 4 to 500 Sun Rays on an entry level server.
IT staff with a Windows systems background will not be able to set
specific Solaris file and memory settings and other settings for optimal
performance in all situations.
Maybe a simple script which will validate and advise will be helpful to
them.
Kind regards,
Ivar
Bob Doolittle schreef:
Craig Bender wrote:
Bob D is 100% correct, utwho (or anything that invokes or could tie
up authd) can be dangerous. Can't stress this enough for custom
kiosk creation, though I understand that yours isn't in the kiosk
script.
I'm a big believer in keeping things simple. There's really no
reason to use perl here.
While the following isn't "supported" because we don't guarantee that
the files in /tmp/SUNWut/config won't change, it works very nicely
and is a lot less "lines of code"
#!/bin/sh
MYDISP=`echo $DISPLAY | awk -F: '{print $2}' | awk -F. '{print $1}'`
MYTERM=`grep TERMINAL /tmp/SUNWut/config/dispinfo/$MYDISP | awk -F.
'{print $2}'`
/opt/SUNWut/bin/utwho -c |grep $MYTERM | awk '{print $4}'
That could be simplified as well for less invocations of awk/grep.
With respect, Craig, there's never an excuse for more than one
invocation of sed/awk/grep on the same input string. It's inefficient
and unnecessary. To get IP address, I would simplify your script as
follows:
MYDISP=`echo $DISPLAY | awk -F: '{ split($2,a,"."); print a[1] }'`
MYTERM=`awk -F. '/^TERMINAL_ID=/ {print $2}'
/tmp/SUNWut/config/dispinfo/$MYDISP`
/opt/SUNWut/bin/utwho -c | awk "/${MYTERM}\$/ { print \$4 }"
Also note the additional pattern constraint anchors on the 2nd and 3rd
lines. That might help future-proof this approach somewhat.
Sorry - I just couldn't resist :-)
-Bob
CJ Keist wrote:
Murray, Thank you!
Thanks for all the replies. I did get my script working by
verifying the user name field from the utwho output first. If I
couldn't find the prefix of my kiosk account then adjust my array
index accordingly.
But this script is what I think I'm looking for, thanks for this
sample Code! I don't think I need to worry about overloading the
utauthd, as this script wouldn't be called at a kiosk session start
up but only when a user sits down and selects what desktop
environment they want to work in.
On 8/2/10 8:38 PM, Murray Fraser wrote:
#!/usr/bin/perl
my $line;
my $key;
my $value;
my $ipaddr;
my $token;
my $mytoken = $ENV{SUN_SUNRAY_TOKEN};
open (UTNETPIPE, "echo 'status'|/etc/opt/SUNWut/basedir/lib/utnetpipe
0.0.0.0 7010 |");
while(<UTNETPIPE>) {
chomp;
$line = $_;
if ($line eq "end"&& $token eq $mytoken) {
printf "My token: $token\n";
printf "My IP: $ipaddr\n";
break;
}
($key, $value) = split('=', $line, 2);
if ($key eq "terminalIPA") { $ipaddr = $value };
if ($key eq "tokenName") { $token = $value };
}
On Tue, Aug 3, 2010 at 11:40 AM, Murray Fraser<[email protected]>
wrote:
utwho is a script as well, have a read of /opt/SUNWut/bin/utwho
essentially, if you open a tcp socket to port 7010, and send
'status',
you will get all the information you need, and a lot more.
You can use perl to put it all together (each record is between a
'begin' and 'end' line). I think you want the 'terminalIPA' line for
the ip address, and 'connected=true' for connected.
On Tue, Aug 3, 2010 at 1:21 AM, CJ Keist<[email protected]>
wrote:
I'm currently trying to figure out the correct IP address for the
DTU using
the following perl script:
#!/usr/bin/perl
my $line;
my @array;
my $ip;
my $junk;
my $user = $ENV{USER};
open(WHO, "/opt/SUNWut/bin/utwho -c|");
open(LOG, ">>/tmp/log.txt");
while (<WHO>) {
$line = $_;
@array = split (' +\s', $line, 5);
print LOG "User: $user $array[1]\n";
if ($user eq $array[1]) {
($ip, $junk) = split(' ', $array[2], 2);
print LOG "IP: $ip\n";
if ($ip =~ "192.168") {
system("/opt/SUNWut/bin/utswitch -h 192.168.100.12");
}
else {
system("/opt/SUNWut/bin/utswitch -h
sunfire5.engr.colostate.edu");
}
break;
}
}
close(WHO);
close(LOG);
The problem I'm running into is the case with the following two
utwho -c out
lines:
2.0 pseudo.00144f946d3e engr85 192.168.102.208
P8-FS.00144f946d3e
10.0 pseudo.00144fd18d32 engr48 129.82.229.249
P8-FS.00144fd18d32
The space in the beginning of the first utwho output is throwing
my whole
split return in the dumps. Just wonder if there is a better way
in getting
the IP of the DTU you are on when running in kiosk mode? Is the an
environment variable set for the IP of the DTU?
--
C. J. Keist Email: [email protected]
UNIX/Network Manager Phone: 970-491-0630
Engineering Network Services Fax: 970-491-5569
College of Engineering, CSU
Ft. Collins, CO 80523-1301
All I want is a chance to prove 'Money can't buy happiness'
_______________________________________________
SunRay-Users mailing list
[email protected]
http://www.filibeto.org/mailman/listinfo/sunray-users
_______________________________________________
SunRay-Users mailing list
[email protected]
http://www.filibeto.org/mailman/listinfo/sunray-users
_______________________________________________
SunRay-Users mailing list
[email protected]
http://www.filibeto.org/mailman/listinfo/sunray-users
_______________________________________________
SunRay-Users mailing list
[email protected]
http://www.filibeto.org/mailman/listinfo/sunray-users
_______________________________________________
SunRay-Users mailing list
[email protected]
http://www.filibeto.org/mailman/listinfo/sunray-users