Friday, January 13, 2012

POP protocol

Now we can see how to get your emails from gmail account to your terminal....

In terminal give the following command,

openssl s_client -connect pop.gmail.com:995

now you will get connection information, server certificate, SSL handshake information and some stuff..

here we use openssl command because gmail's POP(Post Office Protocol) is build on top of SSL(Secure Sockets Layer).

now type,

user <gmail username>

you will get an OK message prompting for password

pass <gmail password for the above mentioned account>

now again OK but with welcome

try the following commands now,

list                                          lists all the mail in the drop box(in POP we don't have the concept of
                                              folders so all the mails will be listed)
retr <msg no>                          this opens the message

top <msg no> <no of lines>      this list first line to the line number specified in the message
                                              corresponding to the message number specified

dele <msg no>                        deletes the message to corresponding to the message number
                                              specified

quit                                         you know what is the use of this.... bye....

Tuesday, January 10, 2012

Apache Session January 4th, 2012 noon 3.00 PM

Apache 2.0 (in Linux Ubuntu)


Note: commands are displayed yellow and outputs are displayed red...
   
     In apache pretty much everything is a module. Module is a collection of compiled code which can be loaded whenever necessary.

Install apache 2.0. To view the list of all running apache process use the following command:

     sudo netstat -pan| grep apache
    in netstat  -p  means program
                    -a  means all
                    -n  means show numeric address
You need to have sudo access to get the list of all process.


     tcp6       0      0 :::80                   :::*                    LISTEN      987/apache2

Now it is evident that apache listens on port 80


     whereis apache2

run the above command to get the location of apache...


apache2:   /usr/sbin/apache2   /etc/apache2 /usr/lib/apache2   /usr/include/apache2  /usr/share/apache2   /usr/share/man/man8/apache2.8.gz

apache is available in /usr/bin location. Now we have to find the apache2.conf file, for this give the following command...

/usr/sbin/apache2 -V

this will provide the version details as follows...

Server version: Apache/2.2.20 (Ubuntu)
Server built:   Nov  7 2011 22:49:55
Server's Module Magic Number: 20051115:28
Server loaded:  APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture:   32-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/worker"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

now it is clear that the root directory is /etc/apache2/. You can open the apache2.conf by using vim editor.

Apache runs child modules when and where necessary to avoid overload.
Now let us see how to create our own module in apache.

Creating new module:
     To create a new apache module you should have developer kit. You can install it using
          sudo apt-get install apache2-prefork-dev

You can create a new module by giving,
     sudo apxs2 -g -n 'mymodule' 
     -g  is used to create a sub-directory
     -n  is used to explicitly set the module name for -g option
now a directory named 'mymodule' will be created and three files named:
  • Makefile
  • mod_mymodule.c
  • modules.mk
will be created within it.

Now open mod_mymodules.c file and edit the file as necessary. Here we edit the 
"The sample page from mod_mymodule.c" line as 
"my first module". Open the file as a sudo user:

     sudo vim mod_mymodule.c 

Compilation:

Now the next step is to compile the mod_mymodule.c file. The command for compilation is:

     sudo apxs2 -c -i mod_mymodule.c 
     -c  is used for compilation operation
     -i   is used for installation operation

Now if open mymodule directory, the following file would have been added to it:
  • mod_mymodule.la
  • mod_mymodule.lo
  • mod_mymodule.slo
leave it out. Now open mod_mymodule.c. In this file copy the code for apache2.conf file. It looks like this:
LoadModule mymodule_module modules/mod_mymodule.so
<Location /mymodule>
    SetHandler mymodule
</Location>
 Here we have to edit the first line because the location of .so file for the modules will be /usr/lib/apache2/modules, after editing the looks like this:
LoadModule mymodule_module /usr/lib/apache2/modules/mod_mymodule.so<Location /mymodule>    SetHandler mymodule</Location>
now paste this code at bottom of apache2.conf file which is located in /etc/apache2 directory.

Restart apache:


The final step is to restart the apache server using:

     sudo apachectl restart

Now open the web browser and type localhost/mymodule the browser will display the response from the server.



Hope You enjoyed it....

Documentation for apache can be found at the following sites:

http://httpd.apache.org/docs/2.0/
http://www.apachetutor.org/





Thursday, January 5, 2012

Screen Scrapping Using Linux Commands

     Screen Scrapping is a very funny exercise to practice. You can select any website and scrap it down to get the necessary or to be precise the information that you needed. During my practice I selected the following website:

http://www.espncricinfo.com/australia-v-india-2011/engine/match/518950.html

     Initially we can use curl command to fetch the source code of a website.

curl 'http://www.espncricinfo.com/australia-v-india-2011/engine/match/518950.html'>cricinfo

In this example I am sending the output to cricinfo file.

Now in the bigger source code obtained we have to segregate the necessary information.


By analyzing the source code carefully, I finally came up with the following commands...

grep 'colspan="2">A\|colspan="2">I\|width="19\|width="25\|<td class="b' cricinfo     |     sed 's/.*colspan=\"2\">\([AI].*\)<span.*/\1/g'     |     sed 's/.*width=\"19.*playerName\">\(.*\)<\/a>.*/\1/g'     |     sed 's/.*width=\"25.*battingDismissal\">\(.*\)<\/td>/\1/g'     |     sed 's/<td class=\"\(.*\)\">\(.*\)<\/td>/\1\t\2/g'     |     sed 's/battingRuns\">\([0-9]*\)<\/td>.*/battingRuns\t\t\1/'     |     sed 's/bowlingDetails\".*//'>out

Finally the data will get stored in out file.






Output:



Australia 1st innings
EJM Cowan
c &dagger;Dhoni b Ashwin
  battingRuns   68
  battingDetails        294
  battingDetails        177
  battingDetails        7
  battingDetails        0
  battingDetails        38.41
DA Warner
c &dagger;Dhoni b Yadav
  battingRuns   37
  battingDetails        59
  battingDetails        49
  battingDetails        4
  battingDetails        1
  battingDetails        75.51
SE Marsh
c Kohli b Yadav
  battingRuns   0
  battingDetails        11
  battingDetails        6
  battingDetails        0
  battingDetails        0
  battingDetails        0.00
RT Ponting
c Laxman b Yadav
  battingRuns   62
  battingDetails        148
  battingDetails        94
  battingDetails        6
  battingDetails        0
  battingDetails        65.95
MJ Clarke
 b Khan
  battingRuns   31
  battingDetails        57
  battingDetails        68
  battingDetails        5
  battingDetails        0
    battingDetails        45.58
MEK Hussey
c &dagger;Dhoni b Khan
  battingRuns   0
  battingDetails        2
  battingDetails        1
  battingDetails        0
  battingDetails        0
  battingDetails        0.00
BJ Haddin
c Sehwag b Khan
  battingRuns   27
  battingDetails        119
  battingDetails        70
  battingDetails        1
  battingDetails        0
  battingDetails        38.57
PM Siddle
c &dagger;Dhoni b Khan
  battingRuns   41
  battingDetails        131
  battingDetails        99
  battingDetails        4
  battingDetails        0
  battingDetails        41.41
JL Pattinson
not out
  battingRuns   18
  battingDetails        86
  battingDetails        54
  battingDetails        2
  battingDetails        0
  battingDetails        33.33
BW Hilfenhaus
c Kohli b Ashwin
  battingRuns   19
  battingDetails        46
  battingDetails        32
  battingDetails        3
  battingDetails        0
  battingDetails        59.37
NM Lyon
 b Ashwin
  battingRuns   6
  battingDetails        15
  battingDetails        11
  battingDetails        1
  battingDetails        0
  battingDetails        54.54
  battingDismissal      (lb 21, w 2, nb 1)
  battingRuns           24
  battingDismissal      (all out; 110 overs; 488 mins)
  battingRuns   <b>333</b>
  battingRate" colspan="5       (3.02 runs per over)

  bowlingDetails        6
  bowlingDetails        77
  bowlingDetails        4
  bowlingDetails        2.48
  bowlingDetails        (1nb, 1w)

  bowlingDetails        7
  bowlingDetails        48
  bowlingDetails        0
  bowlingDetails        2.00
  bowlingDetails

  bowlingDetails        5
  bowlingDetails        106
  bowlingDetails        3
  bowlingDetails        4.07
  bowlingDetails        (1w)

  bowlingDetails        3
  bowlingDetails        81
  bowlingDetails        3
  bowlingDetails        2.79
  bowlingDetails
India 1st innings
G Gambhir
c &dagger;Haddin b Hilfenhaus
  battingRuns   3
  battingDetails        35
  battingDetails        23
  battingDetails        0
  battingDetails        0
  battingDetails        13.04
V Sehwag
 b Pattinson
  battingRuns   67
  battingDetails        127
  battingDetails        83
  battingDetails        7
  battingDetails        0
  battingDetails        80.72
R Dravid
 b Hilfenhaus
  battingRuns   68
  battingDetails        249
  battingDetails        187
  battingDetails        6
  battingDetails        0
  battingDetails        36.36
SR Tendulkar
 b Siddle
  battingRuns   73
  battingDetails        151
  battingDetails        98
  battingDetails        8
  battingDetails        1
  battingDetails        74.48
I Sharma
c &dagger;Haddin b Hilfenhaus
  battingRuns   11
  battingDetails        106
  battingDetails        69
  battingDetails        0
  battingDetails        0
  battingDetails        15.94
VVS Laxman
c &dagger;Haddin b Siddle
  battingRuns   2
  battingDetails        30
  battingDetails        22
  battingDetails        0
  battingDetails        0
  battingDetails        9.09
V Kohli
c &dagger;Haddin b Hilfenhaus
  battingRuns   11
  battingDetails        28
  battingDetails        21
  battingDetails        1
  battingDetails        0
  battingDetails        52.38
MS Dhoni
c Hussey b Hilfenhaus
  battingRuns   6
  battingDetails        13
  battingDetails        8
  battingDetails        0
  battingDetails        0
  battingDetails        75.00
R Ashwin
c &dagger;Haddin b Siddle
  battingRuns   31
  battingDetails        57
  battingDetails        35
  battingDetails        3
  battingDetails        1
  battingDetails        88.57
Z Khan
 b Pattinson
  battingRuns   4
  battingDetails        7
  battingDetails        6
  battingDetails        1
  battingDetails        0
  battingDetails        66.66
U Yadav
not out
  battingRuns   2
  battingDetails        22
  battingDetails        16
  battingDetails        0
  battingDetails        0
  battingDetails        12.50
  battingDismissal      (w 1, nb 3)
  battingRuns           4
  battingDismissal      (all out; 94.1 overs; 417 mins)
  battingRuns   <b>282</b>
  battingRate" colspan="5       (2.99 runs per over)

  bowlingDetails        6
  bowlingDetails        55
  bowlingDetails        2
  bowlingDetails        2.39
  bowlingDetails        (1w)

  bowlingDetails        5
  bowlingDetails        75
  bowlingDetails        5
  bowlingDetails        2.88
  bowlingDetails        (1nb)
  bowlingDetails        21.1
  bowlingDetails        2
  bowlingDetails        63
  bowlingDetails        3
  bowlingDetails        2.97
  bowlingDetails        (2nb)

  bowlingDetails        2
  bowlingDetails        66
  bowlingDetails        0
  bowlingDetails        3.88
  bowlingDetails

  bowlingDetails        0
  bowlingDetails        15
  bowlingDetails        0
  bowlingDetails        3.00
  bowlingDetails

  bowlingDetails        0
  bowlingDetails        8
  bowlingDetails        0
  bowlingDetails        4.00
  bowlingDetails
Australia 2nd innings
DA Warner
 b Yadav
  battingRuns   5
  battingDetails        28
  battingDetails        27
  battingDetails        0
  battingDetails        0
  battingDetails        18.51
EJM Cowan
lbw b Yadav
  battingRuns   8
  battingDetails        33
  battingDetails        17
  battingDetails        1
  battingDetails        0
  battingDetails        47.05
SE Marsh
 b Yadav
  battingRuns   3
  battingDetails        25
  battingDetails        11
  battingDetails        0
  battingDetails        0
  battingDetails        27.27
RT Ponting
c Sehwag b Khan
  battingRuns   60
  battingDetails        151
  battingDetails        97
  battingDetails        3
  battingDetails        0
  battingDetails        61.85
MJ Clarke
 b Sharma
  battingRuns   1
  battingDetails        6
  battingDetails        4
  battingDetails        0
  battingDetails        0
  battingDetails        25.00
MEK Hussey
c &dagger;Dhoni b Khan
  battingRuns   89
  battingDetails        227
  battingDetails        151
  battingDetails        9
  battingDetails        0
  battingDetails        58.94
BJ Haddin
c Laxman b Khan
  battingRuns   6
  battingDetails        11
  battingDetails        14
  battingDetails        0
  battingDetails        0
  battingDetails        42.85
PM Siddle
c &dagger;Dhoni b Yadav
  battingRuns   4
  battingDetails        29
  battingDetails        22
  battingDetails        0
  battingDetails        0
  battingDetails        18.18
NM Lyon
lbw b Ashwin
  battingRuns   0
  battingDetails        9
  battingDetails        11
  battingDetails        0
  battingDetails        0
  battingDetails        0.00
JL Pattinson
not out
  battingRuns   37
  battingDetails        97
  battingDetails        81
  battingDetails        4
  battingDetails        0
  battingDetails        45.67
BW Hilfenhaus
c Laxman b Sharma
  battingRuns   14
  battingDetails        45
  battingDetails        29
  battingDetails        2
  battingDetails        0
  battingDetails        48.27
  battingDismissal      (b 5, lb 2, w 1, nb 5)
  battingRuns           13
  battingDismissal      (all out; 76.3 overs; 335 mins)
  battingRuns   <b>240</b>
  battingRate" colspan="5       (3.13 runs per over)

  bowlingDetails        4
  bowlingDetails        53
  bowlingDetails        3
  bowlingDetails        2.65
  bowlingDetails        (3nb, 1w)

  bowlingDetails        4
  bowlingDetails        70
  bowlingDetails        4
  bowlingDetails        3.50
  bowlingDetails
  bowlingDetails        12.3
  bowlingDetails        0
  bowlingDetails        43
  bowlingDetails        2
  bowlingDetails        3.44
  bowlingDetails        (2nb)
  bowlingDetails        4
  bowlingDetails        60
  bowlingDetails        1
  bowlingDetails        2.72
  bowlingDetails

  bowlingDetails        0
  bowlingDetails        7
  bowlingDetails        0
  bowlingDetails        3.50
  bowlingDetails
India 2nd innings
G Gambhir
c Ponting b Siddle
  battingRuns   13
  battingDetails        52
  battingDetails        46
  battingDetails        1
  battingDetails        0
  battingDetails        28.26
V Sehwag
c Hussey b Hilfenhaus
  battingRuns   7
  battingDetails        28
  battingDetails        12
  battingDetails        1
  battingDetails        0
  battingDetails        58.33
R Dravid
 b Pattinson
  battingRuns   10
  battingDetails        59
  battingDetails        29
  battingDetails        1
  battingDetails        0
  battingDetails        34.48
SR Tendulkar
c Hussey b Siddle
  battingRuns   32
  battingDetails        73
  battingDetails        46
  battingDetails        4
  battingDetails        0
  battingDetails        69.56
VVS Laxman
c Cowan b Pattinson
  battingRuns   1
  battingDetails        22
  battingDetails        14
  battingDetails        0
  battingDetails        0
  battingDetails        7.14
V Kohli
lbw b Hilfenhaus
  battingRuns   0
  battingDetails        3
  battingDetails        1
  battingDetails        0
  battingDetails        0
  battingDetails        0.00
MS Dhoni
 b Pattinson
  battingRuns   23
  battingDetails        88
  battingDetails        44
  battingDetails        0
  battingDetails        1
  battingDetails        52.27
R Ashwin
c Cowan b Siddle
  battingRuns   30
  battingDetails        38
  battingDetails        35
  battingDetails        5
  battingDetails        0
  battingDetails        85.71
Z Khan
c Cowan b Pattinson
  battingRuns   13
  battingDetails        28
  battingDetails        22
  battingDetails        1
  battingDetails        1
  battingDetails        59.09
I Sharma
not out
  battingRuns   6
  battingDetails        33
  battingDetails        14
  battingDetails        0
  battingDetails        0
  battingDetails        42.85
U Yadav
c Warner b Lyon
  battingRuns   21
  battingDetails        26
  battingDetails        25
  battingDetails        2
  battingDetails        1
  battingDetails        84.00
  battingDismissal      (lb 10, w 2, nb 1)
  battingRuns           13
  battingDismissal      (all out; 47.5 overs; 228 mins)
  battingRuns   <b>169</b>
  battingRate" colspan="5       (3.53 runs per over)

  bowlingDetails        2
  bowlingDetails        53
  bowlingDetails        4
  bowlingDetails        3.53
  bowlingDetails        (1nb, 1w)

  bowlingDetails        4
  bowlingDetails        39
  bowlingDetails        2
  bowlingDetails        2.16
  bowlingDetails        (1w)

  bowlingDetails        1
  bowlingDetails        42
  bowlingDetails        3
  bowlingDetails        4.66
  bowlingDetails
  bowlingDetails        5.5
  bowlingDetails        0
  bowlingDetails        25
  bowlingDetails        1
  bowlingDetails        4.28
  bowlingDetails

Wednesday, January 4, 2012

Inaugural Session On LINUX SCREENs Dec 15th, 2011 4.00 PM

     You can use screen command in LINUX to display different screens, you can attach same or different windows in two different screens and have fun.

screen                      is a command which is used to create a new screen.
Ctrl a + Ctrl a          is used to attach windows to screen
Ctrl a + d                 is used to detach a screen
Ctrl a + S                 is used to split screen horizontally
Ctrl a + |                  is used to split screen vertically
Ctrl a + c                 is used to create a new screen
Ctrl a + n                 is used to switch to next screen (Ctrl a + tab)
Ctrl a + p                 is used to switch to previous screen
Ctrl a + "                 is used to list the windows in the current screen
Ctrl a + A                is used to name a window
Ctrl a + x                 is used to lock the current session
Ctrl a + [                  is used to enter scroll-back/copy mode use ENTER key to start and end copy
                                region
Ctrl a + ]                  is used to paste data currently stored in bufferest
Ctrl a + >                 is used to write buffer data to a file
Ctrl a + <                 is used to read file data to buffer memory
Ctrl a + ?                 is used to display screen key bindings
Ctrl a + :                  is used to go to command prompt of the window
Ctrl a + :resize         is used to re-size the current screen
Ctrl a + :fit               is used to fit the screen to new terminal after using xterm (it didn't workout for me)
Ctrl a + :remove      is used to remove the current screen

        If you use screen commands efficiently it will help to do work faster... All the best.....