Unix and Linux network configuration. Multiple network interfaces. Bridged NICs. High-availability network configurations.


Reviews of latest Unix and Linux software. Helpful tips for application support admins. Automating application support.


Disk partitioning, filesystems, directories, and files. Volume management, logical volumes, HA filesystems. Backups and disaster recovery.


Distributed server monitoring. Server performance and capacity planning. Monitoring applications, network status and user activity.

Commands & Shells

Cool Unix shell commands and options. Command-line tools and application. Things every Unix sysadmin needs to know.

Home » Commands & Shells

Solaris One-Liners

Submitted by on March 21, 2006 – 12:41 pm 2 Comments

Useful Solaris commands for system administrators


Solaris Logo

–> change file date stamp
touch –t 199906042020 filename

–> move partitions
ufsdump 0f – /dev/rdsk/c0t0s0s0 | (cd /home; ufsrestore xv -)

–> lay down file system with 1% minfree and inode density
newfs –m1 –i81920 /dev/rdsk/c0t0d0s0

–> check file system
fsck /dev/rdsk/c0t0d0s0

Q: starting sybase
login as sybase, run: ./install/RUN_SYBASE

Q: logging in as sybase sa
isql -U sa

–> dump a partition and pipe to gzip. Watch > 2GB limit
ufsdump 0f – /home | gzip – >/tmp/home.dump.gz

–> rewind offline a tape
mt –f /dev/rmt/0 rewoffl

–> only allow 300MB for user /tmp access
swap – /tmp tmpfs – yes SIZE=300M

–> verbose interactive restore
ufsrestore –ivf /dev/rmt/1

–> remove a printer from a class
lpadmin –p level5-line1 –r level5-line

–> truss a command
truss –-f -–o /tmp/log.txt

–> [DB] feed a script into sybase
isql –Urfe_xfer -Uuser -Ppassword -isqlscript >>blah.txt

–> make a printer class
lpadmin –p level5-line1 –c level5-line

–> remove level2-line2 printer from printer class level2-line
lpadmin -p level2-line2 -r level2-line

–> add level2-line3 to printer class
lpadmin -c level2-line -p level2-line3

–> [DB] how to change your password in isql
sp_password password, password-new

–> move a directory
tar cf – ./games | (cd /tmp; tar xvBpf – )

–> [DB] run a sybase script, and dump to file

–> move a directory to another server
tar cf – ./games | rsh brucey cd /tmp; tar xvBpf –

–> check for SUID SGID files
ncheck -F ufs -s /dev/dsk/c3t0d0s

— remove core files
find / -name core –exec rm –f {} ; -o –fstype nfs –prune

–> rebuild man pages
catman –w –M man-page-directory or /usr/lib/makewhatis

–> vi command to show special characters
: set list

–> adding an account
useradd -u 120 –g dls -d /apps/dls –s /bin/ksh -c “comment” -m dls

–> create a mysql database
mysqladmin -uroot -ppassword create ebs

–> starting mysql database
/etc/rc.d/init.d/mysql.server start

–> Invoke CPAN module install
perl –MCPAN –eshell

–> dump to zip
ufsdump 0f – /filesystem | /opt/local/gzip – > /tmp/dump.gz

–> shutdown mysql databse
/usr/local/bin/mysqladmin shutdown -ppassword
/etc/rc.d/init.d/mysql.server stop

–> test the loading of a module
PERL_DL_DEBUG=255 perl -e ‘use CGI;’

–> shows open files
fuser –cu /

–> Writing a Daemon:
1. edit /etc/services
add service and port.
2. edit /etc/inetd.conf
add in: edwardd stream tcp nowait root /bin/sh /bin/sh /home/sextone/bin/SERVER.mine
3. kill –HUP inetd.conf

–> how to mount a file system
mount /dev/dsk/c3t0d0s4 /apps/data/easysoft/DEVT

–> look at sar log
sar –f /var/adm/sa/sa24

–> write file checksums and size
cksum filename

–> show storage array info
ssaadm display /dev/rdsk/c1t5d2s0
–> show all disks on device d
luxadm display d

–> examine for a specific OS finerprint
nmap –sS -p 80 -O -v = examine OS

–> show print jobs
/usr/ucb/lpq –Plevel6

–> Scan for known ports. log it. do OS scan.
nmap –sS -F -o foo.log -v -O =

–> show status of printer
/usr/ucb/lpc status

–> make a swap file:
dd if=/dev/zero of=swapfile bs=1024 count=65535
mkswap ./swapfile
chmod 600 ./swapfile
swapon ./swapfile

–> show open files for process
lsof –p PID

–> show open files for all TCP connections
lsof –iTCP

–> show open files for internet address
lsof -iTCP@

–> as above
lsof -i @

–> examine tcp ports
lsof -iTCP@sarah:1-50000

–> show open files for user.
lsof –u username

–> show processes that has the file in use.
lsof /apps/cms/ECMS-Server

–> show open files and retry every 5 seconds
lsof –p process-id –r 5

–> mount a floppy
mount -t vfat /dev/fd0 /mnt/floppy

–> check here for debugging processes and errno.h for errors

–> scp a whole directory, preserve mods
sudo scp -prv devel webadmin@

–> take processor 2 and 3 offline.
psradm -f 2 3
–> show processor stats verbose.
psrinfo –v

–> how to skip grant tables in mysql (over ride security)
/usr/local/libexec/mysqld -Sg

–> how to feed in an SQL program

–> rm all files in directories
find . -type f -exec rm {} ;

–> dump packets to a capture file
sudo snoop –o /tmp/tcp.txt cp

–> backup one liner
tar cvf – /home/ebs | gzip – > ebs.tar.gz

–> Look at selected packets in capture file
sudo snoop -i /tmp/tcp.txt

–> unzip and pipe to tar
gzip -dc

–> watch packets from two servers.
snoop sarah brucey

–> enable ip masquerading
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s -j MASQ

-> view su log file
cat /var/adm/sulog

–> establish a default router or gateway.
echo “” > /etc/defaultrouter
echo “ sagacity” >> /etc/hosts
change /etc/nsswitch.conf so that hosts has files, dns
edit resolv.conf put in
search .

–> turn off automounter on /export/home.
vi /etc/auto_master, comment out /export/home

–> configuration file for sudoers

–> building ssh-1.2.27 on x86Solaris2.6 needed a few things:
/usr/openwin/bin in path
/usr/xpg4/bin in path
declare AR=”/usr/xpg4/bin/ar”
declare NM_PATH=”/usr/xpg4/bin/nm”

–> snoop network packets and get size and time stamp entries.
snoop -S -ta empa1

–> access perl CPAN
perl -MCPAN -e shell
install DBI

–> search for no password entries and lock all accounts.
for i in `passwd –sa | grep NP | awk ‘{print $1’`
echo “locking $i”
passwd –l $i

–> delete from a tar
tar –delete -f fs_backup_Sunday.tar home/ebs/tmp

–> Example on backing up files to tape. Must specify non rewinding, else you will over-write the files.
for file in `ls`
echo “sending $file to tape…”
echo `date`
tar cvpf /dev/rmt/0n $file

–> making/adding a partition.
1. use fdisk to make a parition.
2. mkfs -t ext2 -c /dev/hda11
3. mount -t ext2 /dev/hda11 /opt2
4. update /etc/fstab

–> rebuild the windex file
catman –w –M /usr/share/man

–> execute tar on remote host sarah and send tarball to standard output,
which becomes standard input for tar xvf – and the file gets dumped locally,
in this case on crawl. you have to cd to dir before tar or else you
will include path in tar
ssh maggie “cd $DIRNAME; tar cvf – $BASENAME” | (cd $TPATH; tar xvf – )

–> dump a remote filesystem and send it to local tape drive.
ssh -–x $fw /usr/sbin/ufsdump 0cf – $fs | dd obs=63k of=$TAPE

–> encrypt filename 1 and output to 1.crypt file
crypt < 1 > 1.crypt ; rm 1

–> decrypt filename 1.crypt and stdout to screen
crypt < 1.crypt

–> send a file to tape
tar cvpf /dev/rmt/0 filename

–> quicker way to search and replace in vi
: %s/existing/new/g

–> shows where and which shared library files an application uses.
ldd binary

–> shell script stuff:
# repeat a command 100 times
while [ $x -gt 0 ] do

–> Something very important to remember about partitions
It is important to note that Cylinder 0 contains the disklabel, which
contains the partition table. A normal filesystem can be placed
starting at Cylinder 0, since it will not touch the disklabel.
If you lay down a raw device, for a database, over Cylinder 0,
then you will completely lose all your partitions. You will then
have to restore the disklabel, and backup from tape if you happen to do this.

–> move a partition
find . |cpio -pdm /apps

–> cron structure
min hour day-of-month month weekday command

–> PatchDiag Tool. Get patches from:
patchdiag.xref is available at:
/opt/local/bin/patchdiag -x /opt/local/lib/patchdiag.xref > patchdiag.`uname -n`

–> command showing system parameters

–> Get Ambient Temperature of Server
/usr/platform/SUNW,Ultra-4/sbin/prtdiag -v

–> good ps formatting showing percent cpu first.
ps -edf -o pcpu,pid,user,arg

–> full details on ps
/usr/bin/ps –A -o user,pid,pcpu,pmem,vsz,rss,tty,s,stime,time,args

–> chown the hidden files as well.
find . -print -exec chown -R sextone:staff {} ;

–> The nsradmin command is a command-line based administrative
program for the NetWorker system. Normally nsradmin monitors
and modifies NetWorker resources over the network.

–> Spray a server
-c number of packets
-d delay in microseconds
-l pakcet size in bytes
/usr/sbin/spray -c 1 –d 20 -l 4096 maggie

–> Turn on bold.
bold=`tput smso`
offbold=`tput rmso`
echo “${bold}You must be the “root” user to run this script.${offbold}”

–> good way to send a dir to tape
tar cf /dev/rmt/0n directory

–> example of bringing up an interface
ifconfig hme0:1 inet up

–> show all connections
netstat –f inet

–> rpcinfo makes an RPC call to an RPC server and reports
what it finds.
rpcinfo -b 390109 2 | sort -u

–> rewind a tape fast
< /dev/rmt/0

–> show loaded modules

–> find world readable files and dirs
find / -type d –perm -2 –print
find . -type f –perm -2 -print

–> adding in a boot alias, eg:
boot sarahroot1 –s
nvalias sarahroot1 /sbus@1f,0/sunw,fas@e,8800000/sd@9,0:a

–> clever way to archive
tar cvf – `find . –print` >/tmp/dumpfile.tar
tar xvf – tee to a file
echo “Start Date/Time: `date`” | tee -a $LOG_FILE

–> read a snoop file
snoop -i anz-telnet.snoop

–> write a snoop log (this will count the number of connections, which is pretty neat).
snoop –osnoop.log sarah

–> set default run level. 5 for gui.

–> show all exported filesystems
showmount -e crawl

–> shows all configurable variables for tcp interface.
sudo ndd -get /dev/tcp
– ?
sudo ndd -get /dev/tcp tcp_conn_req_max_q
ndd /dev/arp ?
ndd /dev/ip ?
ndd /dev/tcp ?
ndd /dev/udp ?
ndd /dev/icmp ?

–> set sticky bit on group files, only the owner can change the mode.
–> the +l is mandatory file and record locking while a program
–> is accessing that file.
chmod g+s,+l file

–> print duplex landscape 4 qudrant printing
mpage –t –l –4

–> install a patch
installpatch .

–> check to see if a patch has been installed
showrev –p |grep package name

–> unzip, untar in a /tmp directory
zcat 104708-16.tar.gz | ( cd /tmp; sudo tar xvf – )

–> check out revision level on ssa controller
/usr/sbin/ssaadm display controller

–> unzip and untar a file without having to create an intermediate tar file
sudo gzip -dc /tmp/270599/post-EOD.tar.gz |tar xvf –

–> selectively extract from a tar archive
tar xvf /tmp/iona.tar ./iona/.sh_history

–> send a bunch of files to tape
tar cf /tmp/rules.tar ruleb* objects.C *.W

–> examine section 5 of man
man -s 5 signal

–> shows signals and definitions of structures, eg sigaction

–> location of the limits file on solaris

–> send an attachment via email from command prompt
uuencode file.tar.gz file.tar.gz | mailx –s “backup” root@crawl

–> zero a file
cat /dev/null > isam.log

–> good way to restore from cdrom a binary file
zcat < /cdrom/cdrom0/Solaris_2.6/Product/SUNWcsu/install/reloc.cpio.Z |
cpio –idm usr/lib/fs/ufs/ufsrestore

–> running su as a user then ssh
su – dls-PROD -c “/opt/local/bin/ssh drp-stagger “cd /tmp; /bin/ls” ”

–> verify a newfs format
sudo newfs –Nv /dev/md/dsk/d96

–> making lost_found. must be 8192 bytes in size.
mkdir ./lost+found;chown root ./lost+found; chgrp root ./lost+found ;chmod 700 ./lost+found’; cd ./lost+found
nofiles=0 ; while [ “$nofiles” -le 650 ] ; do ; /usr/ucb/touch $nofiles ; nofiles=`expr $nofiles + 1` ; done

–> execute lynx
lynx -cfg /usr/lib/lynx.cfg

–> sed search example
sed ‘/Sep 25/!d; /castill/!d’ /var/log/syslo

–>should only be used at the EEPROM
boot –r
–> should be used at single user mode
reboot — -r
–> should be used in multiuser mode
touch /reconfigure

–> performing a remote dump

|cpio -oc |gzip -c
|ssh brucey -l chaup dd obs=18k of=/dev/rmt/0n

– to extract –
cd /ssa/emphasys/sybase/dump
dd ibs=18k if=|gunzip -c |cpio –idc

–> boot block located here.
/usr/platform/`uname –i`/lib/fs/ufs

–> getting a server on the network
add hosts entry for IP address
clear configs: ifconfig pe0 unplumb
ifconfig pe0 netmask up
route add default 1
verify the routing table: netstat –rn
add resolv.conf entry: domain nameserver
edit /etc/nsswitch.conf change hosts to files, dns

lesson here is to unplumb interface, and let ifconfig setup the routing.
if you specify an ip address and a netmask it will manage
the routing and the broadcasting.

–> find all, files associated with PID 22240
/usr/proc/bin/pfiles 22240
find file based on inode
find –i number
“ncheck –i number

–> good redirection example
./a.out trash

–> synchronize files from one server to another. This is useful for
synchronizing database dump files, binary files, etc. This is definitely a powerful tool.

rsync -avz -e ssh –rsync-path=”/usr/local/bin/rsync” `pwd`

–> Example Awk Script

# run with awk -f/tmp/1.awk /etc/group

BEGIN { FS = “:” }
{ print $1 | “sort” }
{ nlines++ }
END { print nlines }

–> awk example.
awk ‘/#/ {print “Got a comment”}’ /etc/hosts

–> delete every 2nd field in file
awk ‘{$2= “”; print}’ datafile >

–> awk average/standard deviation program

x1 += $1
x2 += $1*$1

x1 = x1/NR
x2 = x2/NR
sigma = sqrt(x2 – x1*x1)
if (NR > 1) std_err = sigma/sqrt(NR – 1)
print “Number of points = ” NR
print “Mean = ” x1
print “Standard Deviation = ” sigma
print “Standard Error = ” std_err

Print Friendly, PDF & Email


  • Erin says:

    I was saving pictures to my phone and it suddenly said file system full and i don’t know what it means but would like an answer. Thank you.

  • Melanie says:

    I have found many java applets for this, however since I need to use this for commercial use it ends up costing an arm and a leg. Is there another way to do this besides with an applet that does not require me buy anything, or if I have to, do you know of a cost effective company offering one of these applets for commercial use? I would just like a way for clients to upload folders with files via ftp.

Leave a Reply

%d bloggers like this: