Thursday, April 10, 2014

Wednesday, December 18, 2013

Shell Scripting - referrence

-nt : Newer than
-ot : Older than
-gt : Greater than
-lt : Less than
-ge : Greater than or equal to
-le : less than or equal to 
-eq : equal to 
-ne : not equal to 

check if the name "abc" is file or not
test -f abc; echo $? - if o/p is 0 then its a file else its a directory

also, 
[-f abc]; echo $?

to check socket files eg mysql.sock
test -S /var/lib/mysql/mysql.sock; echo $? - if o/p is 0 then its socket file else not

To check null (zero size) files
test -s log1.log; echo $? - if o/p is 0 then its not a zero byte file.

man test - for all details 

NTP Server restart

/etc/init.d/ntp start
/etc/init.d/ntp stop
/etc/init.d/ntp restart 

Different ways of identifying whoe is logged on linux server

$ w
23:04:27 up 29 days,  7:51,  3 users,  load average: 0.04, 0.06, 0.02
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
ramesh   pts/0    dev-db-server        22:57    8.00s  0.05s  0.01s sshd: ramesh [priv]
jason    pts/1    dev-db-server        23:01    2:53   0.01s  0.01s -bash
john     pts/2    dev-db-server        23:04    0.00s  0.00s  0.00s w

$ w -h
ramesh   pts/0    dev-db-server        22:57   17:43   2.52s  0.01s sshd: ramesh [priv]
jason    pts/1    dev-db-server        23:01   20:28   0.01s  0.01s -bash
john     pts/2    dev-db-server        23:04    0.00s  0.03s  0.00s w -h

$ w -u 23:22:06 up 29 days,  8:08,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
ramesh   pts/0    dev-db-server        22:57   17:47   2.52s  2.49s top
jason    pts/1    dev-db-server        23:01   20:32   0.01s  0.01s -bash
john     pts/2    dev-db-server        23:04    0.00s  0.03s  0.00s w -u

$ w -s
23:22:10 up 29 days,  8:08,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM               IDLE WHAT
ramesh   pts/0    dev-db-server        17:51  sshd: ramesh [priv]
jason    pts/1    dev-db-server        20:36  -bash
john     pts/2    dev-db-server         1.00s w -s

2. Get the user name and process of logged in user using who and users command

who command is used to get the list of the usernames who are currently logged in. Output of the who command contains the following columns: user name, tty number, date and time, machine address.
$ who
ramesh pts/0        2009-03-28 22:57 (dev-db-server)
jason  pts/1        2009-03-28 23:01 (dev-db-server)
john   pts/2        2009-03-28 23:04 (dev-db-server)
To get a list of all usernames that are currently logged in, use the following:
$ who | cut -d’ ‘ -f1 | sort | uniq
john
jason
ramesh

Users Command

users command is used to print the user name who are all currently logged in the current host. It is one of the command don’t have any option other than help and version. If the user using, ‘n’ number of terminals, the user name will shown in ‘n’ number of time in the output.
$ users
john jason ramesh

3. Get the username you are currently logged in using whoami

whoami command is used to print the loggedin user name.
$ whoami
john
whoami command gives the same output as id -un as shown below:
$ id -un
john
who am i command will display the logged-in user name and current tty details. The output of this command contains the following columns: logged-in user name, tty name, current time with date and ip-address from where this users initiated the connection.
$ who am i
john     pts/2        2009-03-28 23:04 (dev-db-server)

$ who mom likes
john     pts/2        2009-03-28 23:04 (dev-db-server)

Warning: Don’t try “who mom hates” command.
Also, if you do su to some other user, this command will give the information about the logged in user name details.

4. Get the user login history at any time

last command will give login history for a specific username. If we don’t give any argument for this command, it will list login history for all users. By default this information will read from /var/log/wtmp file. The output of this command contains the following columns:
  • User name
  • Tty device number
  • Login date and time
  • Logout time
  • Total working time
$ last jason
jason   pts/0        dev-db-server   Fri Mar 27 22:57   still logged in
jason   pts/0        dev-db-server   Fri Mar 27 22:09 - 22:54  (00:45)
jason   pts/0        dev-db-server   Wed Mar 25 19:58 - 22:26  (02:28)
jason   pts/1        dev-db-server   Mon Mar 16 20:10 - 21:44  (01:33)
jason   pts/0        192.168.201.11  Fri Mar 13 08:35 - 16:46  (08:11)
jason   pts/1        192.168.201.12  Thu Mar 12 09:03 - 09:19  (00:15)
jason   pts/0        dev-db-server   Wed Mar 11 20:11 - 20:50  (00:39

Monday, February 11, 2013

Clone Permission


List all the files with ownership and full path :

find $PWD -type d  -ls

List all the directories with ownership and full path :

find $PWD -type f  -ls

List all the permissions with full path recursively :

find ${PWD} -exec stat -c' %a %n' {} \;

 ==================================================================
Script to Change Files

Usage : this script and file name
Script.sh filename

#! /bin/bash
i=0
t=`cat $1 | wc -l`
while [ $i -lt $t ]
        do
                i=$[$i + 1]
                read line
                user=`echo $line | awk '{print $5}'`
                group=`echo $line | awk '{print $6}'`
                file=`echo $line | awk '{print $NF}'`
                #echo $user
                #echo $group
                #echo $file
                chown $user:$group $file
                if [ $? -eq 0 ] ; then
                        echo File  $line is updated >> /tmp/updatedFiles.txt
                        else
                        echo File $line is failed >> /tmp/updatedFilesFailed.txt
                fi
        done < $1
#END

==================================================================

Script to ChangeDir

Usage : this script and file name
Script.sh filename

#! /bin/bash
i=0
t=`cat $1 | wc -l`
while [ $i -lt $t ]
        do
                i=$[$i + 1]
                read line
                user=`echo $line | awk '{print $5}'`
                group=`echo $line | awk '{print $6}'`
                file=`echo $line | awk '{print $NF}'`
#               echo $user
#               echo $group
#               echo $file
                chown $user:$group $file
                if [ $? -eq 0 ] ; then
                        echo Directory  $line is updated >> /tmp/updatedDirs.txt
                        else
                        echo Directory $line is failed >> /tmp/updatedDirsFailed.txt
                fi
        done < $1
#END

==================================================================

Changes permission for all the files :

Script to Change Files

Usage : this script and file name
Script.sh filename

#! /bin/bash
i=0
t=`cat $1 | wc -l`
while [ $i -lt $t ]
        do
                i=$[$i + 1]
                read line
                permission=`echo $line | awk '{print $1}'`
                file=`echo $line | awk '{print $NF}'`
                #echo $permission
                #echo $file
                chmod $permission $file
                if [ $? -eq 0 ] ; then
                        echo Permission  $line is updated >> /tmp/updatedPermission.txt
                        else
                        echo Permission $line is failed >> /tmp/updatedPermissionFailed.txt
                fi
        done < $1
#END


Wednesday, September 12, 2012

Adding software repository in SuSE 12.2

In YaST / Software / Software Repositories / Add URL then:
Uncheck:Download repository description Files.

For Non-Oss add URL: "http://download.opensuse.org/distribution/12.2/repo/non-oss/", Named: openSUSE-12.2-Non-Oss. 

For Oss add URL: "http://download.opensuse.org/distribution/12.2/repo/oss/" , Named: openSUSE-12.2-Oss.

Thursday, May 26, 2011

Add cronjob using shell script

have your script ...

a. crontab -l > $tmpfile
b. edit $tmpfile
c. crontab $tmpfile
d. rm $tmpfile