donderdag 16 juni 2011

Level 2 network info (physical status)

#dladm show-dev
bge0 link: up speed: 1000 Mbps duplex: full
bge1 link: up speed: 100 Mbps duplex: half
nxge0 link: up speed: 1000 Mbps duplex: full
nxge1 link: unknown speed: 1000 Mbps duplex: full
nxge2 link: unknown speed: 1000 Mbps duplex: full
nxge3 link: down speed: 1000 Mbps duplex: full
nxge4 link: up speed: 1000 Mbps duplex: full
nxge5 link: unknown speed: 1000 Mbps duplex: full
nxge6 link: up speed: 1000 Mbps duplex: full
nxge7 link: up speed: 100 Mbps duplex: full
clprivnet0 link: unknown speed: 0 Mbps duplex: unknown

dinsdag 14 juni 2011

How to check status of cluster and network

when there were issues on the network, it could be that your devices went bezerk and the networkdevices are loosing their IP. plumbing could fail and the only thing you can do is to reboot via "init 6".
Best to check via the console the bootsequence in order to trace duplicate IP's
once the machine is rebooted you can perform next commands:
ifconfig -a
cluster status
scstat
Here you will see the current status whether or not it is all returned to OK.

woensdag 29 december 2010

Create ISO from DVD Vob Files

How to make a dvd iso from a /directory/ with VIDEO_TS and AUDIO_TS directories:

mkisofs -dvd-video -udf -o dvd.iso /directory/
All filesnames must be in capital letters. If you are using FAT32, you need to add shortname=mixed to the filesystem.

dinsdag 21 december 2010

Less known Solaris features: Getting rid of Zombies

Once in a while you will see some strange processes with <defunct> instead of a process name. This happens when a child process terminates, but the parent process isn´t interested in the outcome because it didn´t waited for the childs response. Almost all resources of the child process are freed up at the moment with the exception of the entry in the process table. The parent process need it to get the exit code from it´s child, thus you can´t simply delete it on the termination of the child. The remaining process table entry will be delete, when the parent proccess reaps the child process by gathering the exit code. But when the parent forgets to reap the child, it´s undead, it´s defunct. Or to stay in the terminology: You´ve produced a Zombie process.

Let´s create such a process. It´s really easy, we just have to create a long running process forking away a child but we don´t use the wait() system call to gather it´s response at the exit.

bash-3.2$ nohup perl -e "if (fork()>0) {while (1) {sleep 100*100;};};"&
Okay, let´s check for our processes. In the output of ps -ecl the zombie processes are marked with a Z:

bash-3.2$ ps -ecl |grep "Z"
F S UID PID PPID CLS PRI ADDR SZ WCHAN TTY TIME CMD
0 Z 100 27841 27840 - 0 - 0 - ? 0:00 <defunct>
bash-3.2$
A kill -9 to this process is without effect. Obviously, a zombie will go away when you terminate the parent process, but that isn´t alway an option. How can you get rid of this Zombies? Okay, with Solaris you can reap such processes manually. The preap forces the parent to reap the child by calling wait() system call on the child.

bash-3.2$ preap 27841
27841: exited with status 0
And when you look in the process table again you will see, that the zombie founds it´s peace...

bash-3.2$ ps -ecl |grep "Z"
F S UID PID PPID CLS PRI ADDR SZ WCHAN TTY TIME CMD
Obviously, you should ask yourself, why an application leaves such zombie processes, when the task of reaping them away manually gets a frequent task. Often it´s because of bad programming style.

zondag 17 oktober 2010

Command to set Solaris PW expiration date...

These values can be set or modified from the command line by root, using the passwd command as follows;

# passwd -n 0 -w 14 -x 60 username
Where -n is the minimum number of days allowed between password changes, -w is the number of days befor the password expires and the user is warned, and -x is the maximum munber of days that the password will be valid for.

These values can ONLY be queried or changed by root.

When a user changes their password, only the encrypted password and current date are stored in /etc/shadow. The "number-of-days" values are not changed.
The expiration date, is calculated, not stored.

To remove the password expiration, symply type:

# passwd -x -1 username

disable login via serial port

/usr/sbin/pmadm -lPMTAG PMTYPE SVCTAG FLGS ID <PMSPECIFIC>
zsmon ttymon ttya u root /dev/term/a I - /usr/bin/login - 9600 ldterm,ttcompat ttya login: - tvi925 y #
zsmon ttymon ttyb u root /dev/term/b I - /usr/bin/login - 9600 ldterm,ttcompat ttyb login: - tvi925 y #

  1. /usr/sbin/pmadm -d -p zsmon -s ttya
  2. /usr/sbin/pmadm -d -p zsmon -s ttyb

zaterdag 16 oktober 2010

bsmconv, bsmunconv – enable or disable Solaris Auditing

Synopsis
/etc/security/bsmconv [rootdir].../etc/security/bsmunconv [rootdir]...Description
The bsmconv and bsmunconv scripts are used to enable or disable the BSM features on a Solaris system. The optional argument rootdir is a list of one or more root directories of diskless clients that have already been configured. See smdiskless(1M).

To enable or disable BSM on a diskless client, a server, or a stand-alone system, logon as super-user to the system being converted and use the bsmconv or bsmunconv commands without any options.

To enable or disable BSM on a diskless client from that client's server, logon to the server as super-user and use bsmconv, specifying the root directory of each diskless client you wish to affect. For example, the command:



myhost# bsmconv /export/root/client1 /export/root/client2
enables BSM on the two machines named client1 and client2. While the command:



myhost# bsmconv
enables BSM only on the machine called myhost. It is no longer necessary to enable BSM on both the server and its diskless clients.

After running bsmconv the system can be configured by editing the files in /etc/security. Each diskless client has its own copy of configuration files in its root directory. You might want to edit these files before rebooting each client.

Following the completion of either script, the affected system(s) should be rebooted to allow the auditing subsystem to come up properly initialized.