Thursday, 31 May 2012

Bash Script: File related operations

Following table describe the operation that you can perform on any given file.

[ -a FILE ]    True if FILE exists.
[ -b FILE ]    True if FILE exists and is a block-special file.
[ -c FILE ]    True if FILE exists and is a character-special file.
[ -d FILE ]    True if FILE exists and is a directory.
[ -e FILE ]    True if FILE exists.
[ -f FILE ]    True if FILE exists and is a regular file.
[ -g FILE ]    True if FILE exists and its SGID bit is set.
[ -h FILE ]    True if FILE exists and is a symbolic link.
[ -k FILE ]    True if FILE exists and its sticky bit is set.
[ -p FILE ]    True if FILE exists and is a named pipe (FIFO).
[ -r FILE ]    True if FILE exists and is readable.
[ -s FILE ]    True if FILE exists and has a size greater than zero.
[ -t FD ]        True if file descriptor FD is open and refers to a terminal.
[ -u FILE ]    True if FILE exists and its SUID (set user ID) bit is set.
[ -w FILE ]   True if FILE exists and is writable.
[ -x FILE ]    True if FILE exists and is executable.
[ -O FILE ]    True if FILE exists and is owned by the effective user ID.
[ -G FILE ]    True if FILE exists and is owned by the effective group ID.
[ -L FILE ]    True if FILE exists and is a symbolic link.
[ -N FILE ]    True if FILE exists and has been modified since it was last read.
[ -S FILE ]    True if FILE exists and is a socket.


Wednesday, 16 May 2012

Bash Script: Create simple select menu using select statement

Here is simple bash script which creates an simple options selection menu using bash 'select' statement, fee free to modify/copy and use this script to suite your requirement.

$ cat select.sh
#!/bin/bash

# Selection menu items goes here
SELECTION="option1 option2 option3 quit"

select options in $SELECTION; do

# here using the if statements you can perform the required  operation
if [ "$options" = "option1" ]; then
    echo "You have selected $options"

elif [ "$options" = "option2" ]; then
    echo "You have selected $options"

elif [ "$options" = "option3" ]; then
        echo "You have selected $options"

elif [ "$options" = "quit" ]; then
        echo "You have selected $options"
    exit

# if something else is selected, show the menu again
else
    clear;
    echo "please select some options"

fi
done

Continue Reading...

Bash Script: Creating and using Read-only variables

Here is an simple bash script showing the trick to create the read-only variable, feel free to copy and use this script.

$ cat declare.sh
#!/bin/bash

# Declare the variable as readonly
declare -r AGE=25
echo $AGE

# Try to change the value of this readonly variable
# you should get an error message
AGE=34
echo $AGE

Output: $ ./declare.sh
./declare.sh
25
./declare.sh: line 9: AGE: readonly variable
25


Tuesday, 15 May 2012

Bash Script: Check Servers Availability using ping command

Here is the simple bash script to check the server availability using simple ping command, for this you need to create a simple txt file ("server.txt") containing the hostname or ip address of the servers that you want to check ...

$ cat server.txt
google.com
yahoo.com
redhat.com
 
$ cat pingalert.sh
#!/bin/bash
# Read the file line by line
cat server.txt | while read line
do
        # check if there are no blank lines
        if [ ! -z $line ]; then
                PINGCOUNT=2
                PING=$(ping -c $PINGCOUNT $line | grep received | cut -d ',' -f2 | cut -d ' ' -f2)
                if [ $PING -eq 0 ]; then
                        echo "Something wrong with the server: $line"
                        # Or do send out mail
                else
                        echo "All good: $line"
                fi
        fi
done

Output: $ ./pingalert.sh
All good: google.com
All good: yahoo.com
All good: redhat.com


 
//PART 2