Sunday, July 27, 2008

HP UX start/stop/restart sshd service

To start/stop sshd service, you must use "root" account"

System startup configuration file

/etc/rc.config.d/sshd

Stop HP UX SSH Service

/sbin/init.d/secsh stop

Start HP UX SSH Service

/sbin/init.d/secsh start


If /sbin/init.d/secsh is not found, you can try the following if found

/sbin/init.d/S91sshd start

Thursday, July 17, 2008

Unix Operating System Name Abbreviations and Processor Architecture Abbreviations

Operating System Name Abbreviations
Operating SystemName
AIXaix
Compaq Tru64 UNIX
Digital UNIX
OSF/1
tru64
FreeBSDfreebsd
HP-UXhpux
IRIXirix
Linuxlinux
MacOS Xmacosx
NetBSDnetbsd
OpenBSDopenbsd
Solarissolaris


Processor Architecture Abbreviations
Processor(s)Abbreviation
Compaq Alphaalpha
HP Precision Architecturehppa
INTEL 80x86intel
INTEL 80x86 w/64bit Extensionsx86_64
MIPS RISCmips
IBM Power PCpowerpc
SPARC
MicroSPARC
UltraSPARC
sparc




Wednesday, July 16, 2008

Software Packaging Formats

Software Packaging Formats (Reference - s/w distribution using ESP)
In Unix there are many open source packaging systems, it is always better to have a list and to compare among them.
FormatOperating Systems1Binaries Cross- PlatformPatches Up- gradesCon- flictsRe- quires Re- placesConfig FilesMap FilesUn- install
installp AIXYes NoNo NoYes YesNo NoNo Yes
pkg_add FreeBSDYes Yes2NoNoNo No NoNo NoYes
pkg_add NetBSD
OpenBSD
Yes Yes2NoNoYes Yes NoNo NoYes
dpkg Corel Linux
Debian GNU/Linux
YesYes2 NoYes YesYes YesYes NoYes
depot HP-UXYes NoYes YesYes YesNo YesYes Yes
inst IRIXYes NoYes YesYes YesYes YesYes Yes
Install.app MacOS XYes NoNo YesNo NoNo NoNo No
pkgadd SolarisYes NoYes NoYes YesNo YesYes Yes
rpm Mandrake
Red Hat
SuSE
TurboLinux
YesYes2 NoYes YesYes NoYes NoYes
setld Tru64 UNIXYes NoNo NoYes YesNo NoNo Yes
slackware Slackware LinuxYesNoNo No YesYes NoNo NoYes

Friday, July 11, 2008

Wednesday, July 9, 2008

How to install Perl modules

For example to install Mail::Mailer module, you can use below
command

perl -MCPAN -e 'install Mail::Mailer'

Also refer http://www.cpan.org/modules/INSTALL.html for another
approach

Offline Installation of Perl module
perl Makefile.PL
make
make test
make install 

How do I find out what modules are already installed on my system?

Each time a module is installed on your system, it appends information like the following to a file called perllocal.pod which can be found in /usr/local/lib/perl5/version number/architecture/ or something akin to that. The path for your specific installation is in your @INC which you can divine with perl -V.
=head2 Wed May 12 13:42:53 1999: C L
=over 4
=item *
C
=item *
C
=item *
C
=item *
C
=back

Each entry includes the Module name, date and time it was installed, where it was installed, linktype [ static or dynamic ], version and executables, if any, included with the module.

Another way to do this is http://vijayk.blogspot.com/2008/06/list-all-installed-perl-modules.html

Monday, July 7, 2008

Perforce commands FAQ

1) How to delete a Perforce client?
p4 client -d

2) How to copy named template's view to current client?
p4 client -t

3) What is the use of P4CONFIG environment variable?
You can define Perforce environment variables in this configuration file. Place this file in your client root or even top-level directory. Perforce will fetch values from this configuration file.
For Ex: setenv P4CONFIG .p4config
cd $P4ROOT
vi .p4config
P4PORT=localhost:1666
P4CLIENT=client1

4) How to retrieve a file revision from Perforce depot?
p4 print -q //depot/source/proj1/test.c#5 > test.c

5) How to add the entire directory to Perforce?
find . -type f|p4 -x- add
find . -type l|p4 -x- add -t symlink

6) How to check who all working(opened) on a given file?
p4 opened -a

7) How to list opened files that are different than the revision in the depot or missing?
p4 diff -sa

8) Listing unopened files that are missing on the client
p4 diff -sd

9) Listing unopened files that are different from the revision in the depot
p4 diff -se

10) Listing opened files that are same as the revision in the depot
p4 diff -sr

11) How to revert all files opened for edit but have unchanged content?
p4 revert -a

12) Locking an opened file against submission
p4 lock file-name
To unlock
p4 unlock file-name

13) How to list the differences between the 2 branches?
p4 diff -q //depot/main/jam/... //depot/rel1/jam/...

14) Deleting and re-adding files
% p4 delete file.txt
//depot/src/file.txt#33 - opened for delete
% p4 submit
Delete //depot/src/file.txt#34
Change 145 submitted
% p4 sync file.txt#33
% p4 add file.txt
%p4 submit
Add //depot/src/file.txt#35
Change 146 submitted

Tuesday, July 1, 2008

Automatic Variables in Makefiles

Automatic variables in Makefiles (make/gmake)
$@: The filename representing the target
$%: The filename element of an archive member specification
$<: The filename of the first prerequisite
$?: The names of all prerequisite that are newer than the target, separated by spaces
$^: The filenames of all the prerequisite's, separated by spaces. (Without duplicates)
$+: Same as $^, except that it includes duplicates
$*: The stem of target filename. A stem is typically a filename without it's suffix.

User defined variables
*) A variable name can contain any characters including spaces except # and =.
*) Case sensitive
*) To get the value of a variable, enclose the variable name in $(). Single-letter variable can omit parenthesis
*) Variables can also be expanded using curly braces as in ${CC}
*) The value of a variable consists of all the words to the right of the assignment symbol with leading space trimmed. Trailing spaces are not trimmed

Perl Hobby Scripts

A. Simple

1. Write a Perl script to find and print the longest word in a text file.

2. Implement proactive password checker, means allow a person to enter his password, check for following conditions

- Password should be at least 8 characters in length

- It should contain alphanumeric, upper & lowercase letters

- It should contain any of these special characters @, $ and #.

Solutions


#!/usr/bin/perl -w

#Write a Perl script to find and print the longest word in a text file.

#Importing packages

use strict;

use Getopt::Long;

#Global variables

my ($help, $file);

#Processing command line arguments

GetOptions("h"=>\$help,

"f=s"=>\$file,

);

if($help) {

usage();

}

#Check for -f option

if(!defined($file)){

print "ERROR: -f option is compulsory\n";

usage();

}

open(FH, "$file") || die "Error: Can't open $file: $!";

my ($len,$word,@line,$element);

my $largest=0;

foreach()

{

@line=split(/\s+/,$_);

foreach $element (@line)

{

$len=length($element);

if($len > $largest) {

$largest=$len;

$word=$element;

}

}

}

print "Largest word length is: $largest and the word is $word\n";

sub usage

{

print "USAGE: $0 -f \n";

exit(1);

}

2.

#!/usr/bin/perl -w

## Proactive password checker ##########

use strict;

use Term::ReadKey;

my $user=`whoami`; chomp($user);

print "Hello $user ..\n";

my $try=0;

my $passwd;

accept_password();

sub accept_password

{

$try++;

if($try <= 3)

{

print "Enter your password\n";

ReadMode 'noecho';

$passwd=ReadLine 0;chomp($passwd);

ReadMode 'normal';

check_passwd();

}else

{

print "You exceeded maximum attempts\n";

exit(1);

}

}

sub check_passwd

{

#Check if password length is atleast 8

if(length($passwd) <>

{

print "ERROR: Your password length is less than 8\n";

print "PASSWORD REJECTED\n";

accept_password();

}

#Check for digit

if($passwd =~ /[0-9]/) {

}else{

print "ERROR: No digit in your password\n";

print "PASSWORD REJECTED\n";

accept_password();

}

#Check for lowercase letter

if($passwd =~ /[a-z]/) {

}else{

print "ERROR: No lowercase letter in your password\n";

print "PASSWORD REJECTED\n";

accept_password();

}

#Check for Uppercase letter

if($passwd =~ /[A-Z]/) {

}else{

print "ERROR: No Uppercase letter in your password\n";

print "PASSWORD REJECTED\n";

accept_password();

}

#Check for special characters

#if(($passwd =~ /\@/)|| ($passwd =~ /#/) || ($passwd =~ /\$/)){

if( ($passwd =~ /\@/) || ($passwd =~ /\$/) || ($passwd =~ /\#/) ){

}else{

print "ERROR: No special characters \@ # \$\n";

print "PASSWORD REJECTED\n";

accept_password();

}

}

print "PASSWORD ACCEPTED\n";