Pages

Showing posts with label script. Show all posts
Showing posts with label script. Show all posts

Monday, June 7, 2010

Ubuntu: Testing correct password with small script



Testing correct password with nice script

Open a text file pass.sh using gedit. Copy and paste the following lines


#!/bin/bash
# Script accept password using read commnad
# Not *very secure*, this script is for learning purpose only
# -------------------------------------------------------------------------
PASS="abc123"
read -s -p "Password: " mypassword
echo ""
[ "$mypassword" == "$PASS" ] && echo "Password accepted" || echo "Access denied"

Save and exit.

Then in terminal

sudo chmod +x pass.sh

sudo ./pass.sh

The password is 'abc123'

This script is learning purpose only

Sunday, May 23, 2010

Ubuntu: How to see the logged users, username with date/time

This is shell script for logged users, our username with logged date/time.

Open a text file in terminal

sudo gedit logged.sh

copy and paste the following lines

#!/bin/bash
# Write a shell script called hello which output the following:
# + Your username
# + The time and date
# + Who is logged on
# + also output a line of asterices (*******) after each section

# function to display a line of asterices
function line(){
echo "*************************************************"
}

echo "Your username : $(echo $USER)"
line # call function

echo "Current date and time : $(date)"
line

echo "Currently logged on users:"
who
line

Then save and exit

In terminal type the following command

sudo chmod +x logged.sh

./logged.sh

The out put is

Friday, May 14, 2010

Ubuntu: How to find difference in days between two dates



Here a script for finding difference in days between two dates. .eg 10/1/2010 and 10/31/2010

Now open the empty text file namely betdat.sh (this is optional name)

sudo gedit betdat.sh

Then copy and paste the following script lines , save and exit

#!/bin/bash
# days-between.sh: Number of days between two dates.
# Usage: ./days-between.sh [M]M/[D]D/YYYY [M]M/[D]D/YYYY
#
# Note: Script modified to account for changes in Bash, v. 2.05b +,
#+ that closed the loophole permitting large negative
#+ integer return values.

ARGS=2 # Two command-line parameters expected.
E_PARAM_ERR=85 # Param error.

REFYR=1600 # Reference year.
CENTURY=100
DIY=365
ADJ_DIY=367 # Adjusted for leap year + fraction.
MIY=12
DIM=31
LEAPCYCLE=4

MAXRETVAL=255 # Largest permissible
#+ positive return value from a function.

diff= # Declare global variable for date difference.
value= # Declare global variable for absolute value.
day= # Declare globals for day, month, year.
month=
year=


Param_Error () # Command-line parameters wrong.
{
echo "Usage: `basename $0` [M]M/[D]D/YYYY [M]M/[D]D/YYYY"
echo " (date must be after 1/3/1600)"
exit $E_PARAM_ERR
}


Parse_Date () # Parse date from command-line params.
{
month=${1%%/**}
dm=${1%/**} # Day and month.
day=${dm#*/}
let "year = `basename $1`" # Not a filename, but works just the same.
}


check_date () # Checks for invalid date(s) passed.
{
[ "$day" -gt "$DIM" ] || [ "$month" -gt "$MIY" ] ||
[ "$year" -lt "$REFYR" ] && Param_Error
# Exit script on bad value(s).
# Uses or-list / and-list.
#
# Exercise: Implement more rigorous date checking.
}


strip_leading_zero () # Better to strip possible leading zero(s)
{ #+ from day and/or month
return ${1#0} #+ since otherwise Bash will interpret them
} #+ as octal values (POSIX.2, sect 2.9.2.1).


day_index () # Gauss' Formula:
{ # Days from March 1, 1600 to date passed as param.
# ^^^^^^^^^^^^^
day=$1
month=$2
year=$3

let "month = $month - 2"
if [ "$month" -le 0 ]
then
let "month += 12"
let "year -= 1"
fi

let "year -= $REFYR"
let "indexyr = $year / $CENTURY"


let "Days = $DIY*$year + $year/$LEAPCYCLE - $indexyr \
+ $indexyr/$LEAPCYCLE + $ADJ_DIY*$month/$MIY + $day - $DIM"



echo $Days

}


calculate_difference () # Difference between two day indices.
{
let "diff = $1 - $2" # Global variable.
}


abs () # Absolute value
{ # Uses global "value" variable.
if [ "$1" -lt 0 ] # If negative
then #+ then
let "value = 0 - $1" #+ change sign,
else #+ else
let "value = $1" #+ leave it alone.
fi
}



if [ $# -ne "$ARGS" ] # Require two command-line params.
then
Param_Error
fi

Parse_Date $1
check_date $day $month $year # See if valid date.

strip_leading_zero $day # Remove any leading zeroes
day=$? #+ on day and/or month.
strip_leading_zero $month
month=$?

let "date1 = `day_index $day $month $year`"


Parse_Date $2
check_date $day $month $year

strip_leading_zero $day
day=$?
strip_leading_zero $month
month=$?

date2=$(day_index $day $month $year) # Command substitution.


calculate_difference $date1 $date2

abs $diff # Make sure it's positive.
diff=$value

echo $diff

exit 0


Then in terminal type the following for making the file as executable.

sudo chmod +x betdat.sh

./betdat.sh 10/1/2010 10/31/2010
The output is

30



Thursday, May 13, 2010

Ubuntu: How to get ip address,owener of domain name,etc

The following steps to know the ip address,owener of the domain name,etc .

1. Type the following command in terminal and open the empty text file

sudo gedit ipad.sh

Copy and paste the following lines in the text file ipad.sh then save and exit

#!/bin/bash
# A sample shell script to print domain ip address hosting information such as
# Location of server, city, ip address owner, country and network range.
# This is useful to track spammers or research purpose.
# -------------------------------------------------------------------------


# Get all domains
_dom=$@

# Die if no domains are given
[ $# -eq 0 ] && { echo "Usage: $0 domain1.com domain2.com ..."; exit 1; }
for d in $_dom
do
_ip=$(host $d | grep 'has add' | head -1 | awk '{ print $4}')
[ "$_ip" == "" ] && { echo "Error: $d is not valid domain or dns error."; continue; }
echo "Getting information for domain: $d [ $_ip ]..."
whois "$_ip" | egrep -w 'OrgName:|City:|Country:|OriginAS:|NetRange:'
echo ""
done


Then make the text file as executable file.

sudo chmod +x ipad.sh

Next execute the script 'ipad.sh'

./ipad.sh



Tuesday, May 11, 2010

Ubuntu a script calculator in terminal

In ubuntu a command line calculator as follows.

Please open a text file namely 'calcu' in terminal and copy & paste the following lines.

sudo gedit calcu

#!/bin/bash
# Shell Program to simulate a simple calculator
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2005 nixCraft project.
# -------------------------------------------------------------------------

a=$1
op="$2"
b=$3

if [ $# -lt 3 ]
then
echo "$0 num1 opr num2"
echo "opr can be +, -, / , x"
exit 1
fi

case "$op" in
+) echo $(( $a + $b ));;
-) echo $(( $a - $b ));;
/) echo $(( $a / $b ));;
x) echo $(( $a * $b ));;
*) echo "Error ";;
esac

save and exit.

Type the following line in terminal

sudo chmod +x calcu */the calcu is script file name,

1. plus
./calcu 23 + 23 =46

2.multiply
./calcu 100 x 2 = 200

3.divide
./calcu 100 / 2 = 50

4.minus
./calcu 100 - 2 = 98