Solaris One-Liners
Useful Solaris commands for system administrators
Source: http://www.kevlo.com/~ebs/unix_commands.txt
–> 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
$ISQL -i$SCRIPTFILE -U$USER -D$DATABASE -P$PASS_ENC >> $SCRIPTLOGFILE
–> 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
/usr/local/bin/safe_mysqld
–> 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 www.foo.com//24 =
–> 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@10.20.2.9
–> as above
lsof -i @10.20.2.122
–> 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
/usr/include
/usr/include/sys
/usr/include/sys/errno.h
–> scp a whole directory, preserve mods
sudo scp -prv devel webadmin@203.19.123.140:/home/httpd/cgi-bin
–> 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
mysql
–> 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 10.100.100.100/8 -j MASQ
-> view su log file
cat /var/adm/sulog
–> establish a default router or gateway.
echo “sagacity.com” > /etc/defaultrouter
echo “10.100.100.100 sagacity.com sagacity” >> /etc/hosts
change /etc/nsswitch.conf so that hosts has files, dns
edit resolv.conf put in
search .
nameserver 203.7.132.98
–> turn off automounter on /export/home.
vi /etc/auto_master, comment out /export/home
–> configuration file for sudoers
/opt/local/etc/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’`
do
echo “locking $i”
passwd –l $i
done
–> 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`
do
echo “sending $file to tape…”
echo `date`
tar cvpf /dev/rmt/0n $file
done
–> 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
x=100
while [ $x -gt 0 ]
do
command
x=$(($x-1))
done
–> 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:
http://sunsolve.sun.com/private-cgi/patchpage.pl
patchdiag.xref is available at: http://sunsolve.sun.com/sunsolve/patchdiag/
/opt/local/bin/patchdiag -x /opt/local/lib/patchdiag.xref > patchdiag.`uname -n`
–> command showing system parameters
/usr/sbin/sysdef
–> 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.
/usr/sbin/nsr/nsradmin
–> 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 10.2.25.52 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
/usr/sbin/modinfo
–> 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.
/etc/inittab
–> show all exported filesystems
showmount -e crawl
–> shows all configurable variables for tcp interface.
sudo ndd -get /dev/tcp
– ?
eg:
sudo ndd -get /dev/tcp tcp_conn_req_max_q
128
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
/usr/include/sys/signal.h
–> location of the limits file on solaris
/usr/include/limits.h
–> 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
find MFASYS
|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 10.20.2.27 netmask 255.0.0.0 up
route add default 10.20.0.1 1
verify the routing table: netstat –rn
add resolv.conf entry: domain rabobank.com.au nameserver 192.192.192.252
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` myhost.com:/home/ebs/public_html
–> 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 > datafile.new
–> awk average/standard deviation program
x1 += $1
x2 += $1*$1
END {
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
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.
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.