<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2047829934958115736</id><updated>2024-10-09T07:33:02.568+05:30</updated><category term="Linux"/><category term="system admin"/><category term="postgres"/><category term="script"/><category term="apache"/><category term="mysql"/><category term="pgsql"/><category term="LDAP"/><category term="database"/><category term="replication"/><category term="steaming replication"/><category term="virtualization"/><category term="cloud"/><category term="hot standby"/><category term="hot_standby"/><category term="kernel"/><category term="kernel panic"/><category term="linux commands"/><category term="pgsql PITR"/><category term="pgsql hot_standby"/><title type='text'>Linux How - To&#39;s - Free Consultancy</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-7417912409487530290</id><published>2013-04-10T12:26:00.002+05:30</published><updated>2014-04-30T15:11:37.993+05:30</updated><title type='text'>POSTS MOVED</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;a href=&quot;https://kasimani.wordpress.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;b&gt;ALL POSTS HAS BEEN MOVED TO:&amp;nbsp;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://kasimani.wordpress.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;https://kasimani.wordpress.com/&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/7417912409487530290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2013/04/posts-moved.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7417912409487530290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7417912409487530290'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2013/04/posts-moved.html' title='POSTS MOVED'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-4790753049646923592</id><published>2013-03-13T17:02:00.000+05:30</published><updated>2013-04-17T15:02:52.766+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="kernel"/><category scheme="http://www.blogger.com/atom/ns#" term="kernel panic"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Kernel Panic - Fallback to Old Kernel</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Few days back, i was testing a kernel module, unfortunately it didn&#39;t work and instantly after reboot, kernel Panic occurs. Well i was clueless what goes wrong, but now I cannot select the older kernel version to boot. But, there is a way out, if we choose these first before reboot (off course after installing new kernel), and this is inbuilt in GRUB. This mechanism is called Grub Fall-back. In this case you can set your older/tested kernel as the Fallback kernel in case new kernel panics. And here is how you do it:All you have to do is to open your /boot/grub/grub.conf and add a few lines in it like this&lt;br /&gt;
&lt;br /&gt;
—————————————————————————————————————&lt;br /&gt;
default=&lt;b&gt;saved&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
timeout=15&lt;br /&gt;
splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
hiddenmenu&lt;br /&gt;
&lt;b&gt;fallback 0 1&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
title CentOS LIDS (2.6.18-128)&lt;br /&gt;
root (hd0,0)&lt;br /&gt;
kernel /vmlinuz ro root=/dev/VolGroup00/LogVol00&lt;br /&gt;
initrd /initrd-lids-2.6.18-128.img&lt;br /&gt;
&lt;b&gt;savedefault fallback&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
title CentOS (2.6.18-128.el5xen)&lt;br /&gt;
root (hd0,0)&lt;br /&gt;
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00&lt;br /&gt;
initrd /initrd-2.6.18-128.el5.img&lt;br /&gt;
&lt;b&gt;savedefault &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
—————————————————————————————————————&lt;br /&gt;
&lt;br /&gt;
If the above grub.conf is booted, then first Grub.conf will try to boot the system with “CentOS Testing” and if and only if the kenrel panics, it will call “CentOS Working” and boot the system&lt;br /&gt;
&lt;br /&gt;
Hope this quick howto helps.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/4790753049646923592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2013/03/kernel-panic-fallback-to-old-kernel.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/4790753049646923592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/4790753049646923592'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2013/03/kernel-panic-fallback-to-old-kernel.html' title='Kernel Panic - Fallback to Old Kernel'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-3156178766682513187</id><published>2013-02-14T12:36:00.000+05:30</published><updated>2013-04-17T15:00:59.935+05:30</updated><title type='text'>Citrix XenServer – iSCSI LUN</title><content type='html'>Hi all, here is my new Mini-Howto for Citrix XenServer – Storage Repository Over Software iSCSI LUN&lt;br/&gt;&lt;div&gt;Topic contains how to and about iSCSI, NFS, on Linux.  How to mount them on Citrix Xen Server using Command line and GUI (that includes Screen Shots)&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Let’s starts with iSCSI creation on linux box, I will use CentOS 6 for this.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Packages Required: &lt;/b&gt; scsi-target-utils&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Service Name:&lt;/b&gt; tgtd&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Configuration File:&lt;/b&gt; /etc/tgt/targets.conf&lt;/div&gt;&lt;br/&gt;&lt;div&gt;I will Use LVM, as i am using  a large partition on this box. So proceeding with it:&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;# fdisk /dev/sda&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Press ‘n’ for new partition&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Press ‘L’ for logical partition&lt;/div&gt;&lt;br/&gt;&lt;div&gt;First Cylinder size: press enter&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Type ‘w’  for save and quit&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;# init 6  (Restart the System)&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Note: do not format partition:&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;LVM Setup on newly created partition:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Now create Physical Volumes (PV) on newly created partition.&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# pvcreate /dev/sda5&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# pvscan&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# pvdisplay&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Now create Volume Group (VG) : on created PV&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# vgcreate  sr0_vg1 /dev/sda5&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# vgscan&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# vgdisplay&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Now we can create one or more Logical Volumes (LV’s) on VG&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# lvcreate  --size  +30G --name sr0_vg1_lv100 sr0_vg1&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# lvscan&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# lvdisplay&lt;/div&gt;&lt;br/&gt;&lt;div&gt;This part is done: Now to LUN creation&lt;/div&gt;&lt;br/&gt;&lt;div&gt;For this we have to ensure we have required package:&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# &lt;b&gt;rpm -qa | grep -i scsi&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;iscsi-initiator-utils-6.2.0.872-34.el6.x86_64&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;scsi-target-utils-1.0.14-4.el6.x86_64&lt;/b&gt;&lt;b&gt;  (this is main package required for iSCSI server)&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;If do not have, the install it either using directly from RPM if you have, or YUM&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;# yum install -y scsi-target-utils&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;After the successful installation, we have to edit the config for SAN:&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;#  vi /etc/tgt/targets.conf&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&amp;lt;target &lt;b&gt;iqn&lt;/b&gt;.2012-08.web18:vmsan&amp;gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;#       Example: the next line would override default driver type.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;#       driver iser&lt;/div&gt;&lt;br/&gt;&lt;div&gt;backing-store /dev/ sr0_vg1/ name sr0_vg1_lv100&lt;/div&gt;&lt;br/&gt;&lt;div&gt;backing-store /dev/ sr0_vg1/ name sr0_vg1_lv101&lt;/div&gt;&lt;br/&gt;&lt;div&gt;backing-store /dev/ sr0_vg1/ name sr0_vg1_lv102&lt;/div&gt;&lt;br/&gt;&lt;div&gt;#initiator-address 192.168.23.113 (by proving IP, we can restrict the storage to specific IPs only)&lt;/div&gt;&lt;br/&gt;&lt;div&gt;#initiator-address 192.168.23.83&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&amp;lt;/target&amp;gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Save and Quit&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Now start the service of iSCSI target:&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;# service tgtd start&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;#chkconfig tgtd on&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;# tgt-admin -s&lt;/b&gt;     (this will display information about iscsi target device)&lt;/div&gt;&lt;br/&gt;&lt;div&gt;I have disabled IPTABLES on target server, in my case.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;This done now i will show you how to mount the available LUN on Citrix Xen Server using GUI.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Later I will add command prompt, currently I am facing some issue, suggest me if you have steps&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Open XenCenter &lt;/b&gt;&lt;b&gt;à&lt;/b&gt;&lt;b&gt; Right Click on any XenServer &lt;/b&gt;&lt;b&gt;a&lt;/b&gt;&lt;b&gt; Choose  New SR....&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;img alt=&quot;citrix1&quot; src=&quot;http://ec2-23-20-92-176.compute-1.amazonaws.com/wp-content/uploads/2013/03/1.png&quot; /&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;In Next window, choose Software iSCSI and click Next&lt;/b&gt;&lt;br/&gt;&lt;img alt=&quot;citrix2&quot; src=&quot;http://ec2-23-20-92-176.compute-1.amazonaws.com/wp-content/uploads/2013/03/2.png&quot; /&gt;&lt;br/&gt;Name the New SR and click Next&lt;br/&gt;&lt;img alt=&quot;citrix3&quot; src=&quot;http://ec2-23-20-92-176.compute-1.amazonaws.com/wp-content/uploads/2013/03/3.png&quot; /&gt;&lt;br/&gt;&lt;b&gt;Provide IP of Target server (iSCSI server) and click on Discover IQNs, choose your IQN and then click on  Discover LUNs and choose your LUN that you had created during LVM create&lt;/b&gt;.&lt;br/&gt;&lt;img alt=&quot;citrix4&quot; src=&quot;http://ec2-23-20-92-176.compute-1.amazonaws.com/wp-content/uploads/2013/03/4.png&quot; /&gt;&lt;br/&gt;&lt;b&gt;Click on Finish and the XenCenter automatically mounts it on Server&lt;/b&gt;&lt;br/&gt;&lt;img alt=&quot;citrix5&quot; src=&quot;http://ec2-23-20-92-176.compute-1.amazonaws.com/wp-content/uploads/2013/03/5.png&quot; /&gt;&lt;br/&gt;&lt;b&gt;And finally here is output/details of mounted SR.&lt;/b&gt;&lt;br/&gt;&lt;img alt=&quot;citrix6&quot; src=&quot;http://ec2-23-20-92-176.compute-1.amazonaws.com/wp-content/uploads/2013/03/6.png&quot; /&gt;&lt;br/&gt;&lt;div&gt;Now LUN is ready and mounted on XenServer, start using as your need.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Please let me know for suggestions/corrections.&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/3156178766682513187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2013/02/citrix-xenserver-iscsi-lun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/3156178766682513187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/3156178766682513187'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2013/02/citrix-xenserver-iscsi-lun.html' title='Citrix XenServer – iSCSI LUN'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-5397561575133751816</id><published>2013-01-03T15:41:00.000+05:30</published><updated>2013-04-17T15:00:59.956+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="system admin"/><title type='text'>Kernel Panic - Fallback to Old Kernel</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Few days back, i was testing a kernel module, unfortunately it didn&#39;t work and instantly after reboot, kernel Panic occurs. Well i was clueless what goes wrong, but now i can not select the older kernel version to boot. But, there is a way out, if we choose these first before reboot (off course after installing new kernel), and this is inbuilt in GRUB. This mechanism is called Grub Fall-back. In this case you can set your older/tested kernel as the Fallback kernel in case new kernel panics. And here is how you do it:All you have to do is to open your /boot/grub/grub.conf and add a few lines in it like this&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;——————————————————————————————————————-&lt;/span&gt;&lt;br/&gt;&lt;span&gt;default=&lt;b&gt;saved&lt;/b&gt;&lt;/span&gt;&lt;span&gt;timeout=15&lt;/span&gt;&lt;br/&gt;&lt;span&gt;splashimage=(hd0,0)/grub/splash.xpm.gz&lt;/span&gt;&lt;br/&gt;&lt;span&gt;hiddenmenu&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;fallback 0 1&lt;/b&gt;&lt;/span&gt;&lt;span&gt;title CentOS LIDS (2.6.18-128)&lt;/span&gt;&lt;br/&gt;&lt;span&gt;root (hd0,0)&lt;/span&gt;&lt;br/&gt;&lt;span&gt;kernel /vmlinuz ro root=/dev/VolGroup00/LogVol00&lt;/span&gt;&lt;br/&gt;&lt;span&gt;initrd /initrd-lids-2.6.18-128.img&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;savedefault fallback&lt;/b&gt;&lt;/span&gt;&lt;span&gt;title CentOS (2.6.18-128.el5xen)&lt;/span&gt;&lt;br/&gt;&lt;span&gt;root (hd0,0)&lt;/span&gt;&lt;br/&gt;&lt;span&gt;kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00&lt;/span&gt;&lt;br/&gt;&lt;span&gt;initrd /initrd-2.6.18-128.el5.img&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;savedefault &lt;/b&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;——————————————————————————————————————-&lt;/span&gt;&lt;br/&gt;&lt;span&gt;If the above grub.conf is booted, then first Grub.conf will try to boot the system with “CentOS Testing” and if and only if the kenrel panics, it will call “CentOS Working” and boot the system&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Hope this quick howto help.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/5397561575133751816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2013/01/kernel-panic-fallback-to-old-kernel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/5397561575133751816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/5397561575133751816'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2013/01/kernel-panic-fallback-to-old-kernel.html' title='Kernel Panic - Fallback to Old Kernel'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-779405466402270610</id><published>2012-08-18T15:15:00.000+05:30</published><updated>2013-04-17T15:00:59.567+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="system admin"/><category scheme="http://www.blogger.com/atom/ns#" term="virtualization"/><title type='text'>Citrix XenServer – iSCSI LUN</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Hi all, here is my new Mini-Howto for &lt;/span&gt;&lt;span&gt;Citrix XenServer – Storage Repository Over Software iSCSI LUN &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Topic contains: &lt;/span&gt;&lt;br/&gt;&lt;span&gt;How to Create NFS and iSCSI LUN on Linux (I will CentOS)&lt;/span&gt;&lt;br/&gt;&lt;span&gt;How to mount them on Citrix Xen Server using Command line and GUI (that includes Screen Shots)&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Let’s starts with iSCSI creation on linux box, I will use CentOS 6 for this.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Packages Required: scsi-target-utils&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Service Name: tgtd&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Configuration File: /etc/tgt/targets.conf&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;I will Use LVM, as i am using a large partition on this box. So proceeding with it:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# fdisk /dev/sda&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Press ‘n’ for new partition&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Press ‘L’ for logical partition&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;First Cylinder size: press enter&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Type ‘w’ for save and quit&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# init 6 (Restart the System)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Note: do not format partition:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span&gt;LVM Setup on newly created partition:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Now create Physical Volumes (PV) on newly created partition.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# pvcreate /dev/sda5 &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# pvscan&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# pvdisplay&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Now create Volume Group (VG) : on created PV&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# vgcreate sr0_vg1 /dev/sda5&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# vgscan&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# vgdisplay&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Now we can create one or more Logical Volumes (LV’s) on VG&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# lvcreate --size +30G --name sr0_vg1_lv100 sr0_vg1&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# lvscan&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# lvdisplay&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;This part is done: Now to LUN creation&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;For this we have to ensure we have required package:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# rpm -qa | grep -i scsi&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;iscsi-initiator-utils-6.2.0.872-34.el6.x86_64&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;scsi-target-utils-1.0.14-4.el6.x86_64&lt;/span&gt; (this is main package required for iSCSI server)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;If do not have, the install it either using directly from RPM if you have, or YUM&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# yum install -y scsi-target-utils&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;After the successful installation, we have to edit the config for SAN: &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# vi /etc/tgt/targets.conf&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;blockquote&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;iqn.2012-08.web18:vmsan&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# Example: the next line would override default driver type.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# driver iser&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;backing-store /dev/ sr0_vg1/ name sr0_vg1_lv100&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;backing-store /dev/ sr0_vg1/ name sr0_vg1_lv101&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;backing-store /dev/ sr0_vg1/ name sr0_vg1_lv102&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;#initiator-address 192.168.23.113 (by proving IP, we can restrict the storage to specific IPs only)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;#initiator-address 192.168.23.83&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Save and Quit&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Now start the service of iSCSI target:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# service tgtd start&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# chkconfig tgtd on&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# tgt-admin -s&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;strong&gt;&lt;/strong&gt; (this will display information about iscsi target device)&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;&lt;div&gt;&lt;span&gt;I have disabled IPTABLES on target server, in my case.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;This done now i will show you how to mount the available LUN on Citrix Xen Server using GUI.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Later I will add command prompt, currently I am facing some issue, suggest me if you have steps&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Open XenCenter àRight Click on any XenServer aChoose New SR....&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/1.png&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://systemsadmin.info/wp-content/uploads/2013/03//1.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;span&gt;In Next window, choose Software iSCSI and click Next&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/2.png&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/2.png&quot; width=&quot;640&quot; height=&quot;398&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt; Name the New SR and click Next&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/3.png&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/3.png&quot; width=&quot;640&quot; height=&quot;436&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Provide IP of Target server (iSCSI server) and click on Discover IQNs, choose your IQN and then click on Discover LUNs and choose your LUN that you had created during LVM create.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/4.png&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/4.png&quot; width=&quot;640&quot; height=&quot;426&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Click on Finish and the XenCenter automatically mounts it on Server&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/5.png&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/5.png&quot; width=&quot;640&quot; height=&quot;424&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;And finally here is output/details of mounted SR.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/6.png&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://systemsadmin.info/wp-content/uploads/2013/03/6.png&quot; width=&quot;640&quot; height=&quot;380&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Now LUN is ready and mounted on XenServer, start using as your need.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Please let me know for suggestions/corrections.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&amp;nbsp;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/779405466402270610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2012/08/citrix-xenserver-iscsi-lun_18.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/779405466402270610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/779405466402270610'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2012/08/citrix-xenserver-iscsi-lun_18.html' title='Citrix XenServer – iSCSI LUN'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-5812825373370560071</id><published>2012-05-21T00:40:00.000+05:30</published><updated>2013-04-17T15:04:14.928+05:30</updated><title type='text'>commands</title><content type='html'>&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;ol&gt;&lt;li&gt;rkhunter --check --rwo --summary &gt; /tmp/rkhunter_final.log &lt;/li&gt;&lt;li&gt;cat /tmp/archival_system/delJS_downtime.log | grep &quot;^[0-9]&quot; | awk &#39;{sum=sum+$1} END{print sum}&#39;&lt;/li&gt;&lt;li&gt;grep &quot;proxy\:&quot; /var/log/apache_front_error_log | awk &#39;{print $NF}&#39; |grep -v resid | sort | uniq -c | sort -n&lt;/li&gt;&lt;li&gt;for i in `ls -lrt | awk &#39;{print $7&quot;\t&quot;$9}&#39; | grep ^31 | awk &#39;{print $2}&#39;`; do cat $i  | tai64nlocal | grep &quot;m.jannath\_perthous100\@yahoo.com&quot;; cat $i  | tai64nlocal | grep &quot;mahesh_f_b@yahoo.co.in&quot;; cat $i  | tai64nlocal | grep &quot;annaisai1986@yahoo.co.in&quot;; cat $i  | tai64nlocal | grep &quot;anfaz_m@hotmail.com&quot;; cat $i  | tai64nlocal | grep &quot;sujitha2012@gmail.com&quot;; cat $i  | tai64nlocal | grep &quot;desiginer@gmail.com&quot;; done &lt;/li&gt;&lt;li&gt; for i in `ls -lrt | awk &#39;{print $7&quot;\t&quot;$9}&#39; | grep ^31 | awk &#39;{print $2}&#39;`; do cat $i  | tai64nlocal | grep &quot;m.jannath\_perthous100\@yahoo&lt;/li&gt;&lt;li&gt;cat /tmp/list | awk &#39;{print $5}&#39; | xargs -i egrep &quot;adityaseth09@gmail.com|kvenk111@yahoo.co.in|knvs.prasad@gmail.com&quot; /home/qmail-logs/2010/{}&lt;/li&gt;&lt;li&gt;&lt;code&gt;ls -ltra | awk &#39;{print $5,&quot; &quot;,$9}&#39; | awk &#39;$1 &lt; 3000&#39; | awk &#39;/gif|png|jpg/ {print $2}&#39; | xargs -I  % cp -rp % /web/R/images/&lt;/code&gt; &lt;/li&gt;&lt;li&gt;to massively clean lines containing x’s in front some css declarations in a group of files                          &lt;b&gt;&lt;code&gt;&lt;span&gt;ls | awk &#39;/.css$/&#39; | xargs sed -i.bk -e &#39;/^ *x.*$/d&#39;&lt;/span&gt;    next...            &lt;/code&gt;&lt;code&gt;find . -type f -exec grep -i &#39;^ *x&#39; /dev/null {} + | awk &#39;!/svn|htdocs/&#39; | cut -c 3- | awk &#39;!/^#/&#39; | awk -F &#39;:&#39; &#39;{print $1}&#39; | awk &#39;/.css$/&#39;| xargs sed -i.bk -e &#39;/^ *x.*$/d\&lt;/code&gt;&lt;/b&gt;&lt;code&gt;&#39;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;seq -w 1 30 | xargs -i -t zcat in_Feb2011/in_Employer-{}Feb2011.gz | egrep &#39;resume.html?resid=3304847|resume.html?resid=30780899|resume.html?resid=31313778|resume.html?resid=31628106&#39; &lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br&gt;sar - Collect, report, or save system activity information.&lt;br&gt;      -b :Report I/O and transfer rate statistics.&lt;br&gt;      -B :Report paging statistics&lt;br&gt;      -d :Report activity for each block device (kernels 2.4 and newer only)&lt;br&gt;      -q :Report queue length and load averages&lt;br&gt;      -r :Report memory and swap space utilization statistics&lt;br&gt;      -u :Report CPU utilization.&lt;br&gt;&lt;br&gt;iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.&lt;br&gt;       -d : device utilization report&lt;br&gt;       -c : CPU usage report&lt;br&gt;       -x : Display  extended  statistics&lt;br&gt;  &lt;br&gt;iostat&lt;br&gt;&lt;br&gt;    * rrqm/s : The number of read requests merged per second that were queued to the hard disk&lt;br&gt;    * wrqm/s : The number of write requests merged per second that were queued to the hard disk&lt;br&gt;    * r/s : The number of read requests per second&lt;br&gt;    * w/s : The number of write requests per second&lt;br&gt;    * rsec/s : The number of sectors read from the hard disk per second&lt;br&gt;    * wsec/s : The number of sectors written to the hard disk per second&lt;br&gt;    * avgrq-sz : The average size (in sectors) of the requests that were issued to the device.&lt;br&gt;    * avgqu-sz : The average queue length of the requests that were issued to the device&lt;br&gt;    * await : The average time (in milliseconds) for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.&lt;br&gt;    * svctm : The average service time (in milliseconds) for I/O requests that were issued to the device&lt;br&gt;    * %util : Percentage of CPU time during which I/O requests were issued to the device (bandwidth utilization for the device). Device saturation occurs when this value is close to 100%.&lt;br&gt;&lt;br&gt;   &lt;br&gt;Device:     rrqm/s     wrqm/s     r/s     w/s     rsec/s       wsec/s     rkB/s         wkB/s         avgrq-sz     avgqu-sz     await     svctm     %util&lt;br&gt;cciss/c0d0     2269.60 132.60     296.20     77.60     20521.60  1681.60     10260.80     840.80         59.40         4.15         11.18     2.65     99.20&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Citrix Xen VM:&lt;br&gt;Open properties of VM,, select &quot;Startup Options&quot;, change &quot;OS Boot Parameters&quot; to &quot;rw init=/bin/bash&quot;, graphical utf8reboot, you get  # prompt... if want to edit some files...graphical utf8&lt;br&gt;&lt;br&gt;graphical utf8&lt;br&gt;&lt;br&gt;run this command:&lt;br&gt;&lt;code&gt;# mount -w -o remount /&lt;/code&gt;&lt;span&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;span&gt;# now edit files you want... and reboot... &lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;#### mysql query to backup table contents into a file.&lt;br&gt;mysql#&gt; select id,user,subject,content,status,sentdate,last_update from tickets where type=&#39;PRODUCT&#39; into outfile &#39;/tmp/product_ticket&#39; fields terminated by &#39;~&#39; lines terminated by &#39;|~|&#39;;&lt;br&gt;&lt;br&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt; &lt;/span&gt;&lt;br&gt;&lt;br&gt;Mysql check&lt;br&gt;&lt;span&gt;mysqlcheck -u root -p --auto-repair -c  -o -A&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;Repair Mysql MYISAM files..&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;br&gt;&lt;span&gt;/myisamchk  --force --sort_buffer_size=64M --key_buffer_size=16M  --read_buffer_size=8M --write_buffer_size=8M  ../data/phplists/phplist_linktrack.MYI&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span&gt;mysql INNODB related&lt;/span&gt;&lt;br&gt;&lt;span&gt;mysql&gt; #SELECT TABLE_SCHEMA, TABLE_NAME, CONCAT(ROUND(data_length / ( 1024 * 1024 ), 2), &#39;MB&#39;) DATA, CONCAT(ROUND(data_free / ( 1024 * 1024 ), 2), &#39;MB&#39;)FREE from information_schema.TABLES where TABLE_SCHEMA=&#39;man&#39; and table_name=&#39;result10&#39; and Data_free &gt; 0;&lt;br&gt;mysql&gt; select TABLE_SCHEMA, TABLE_NAME  from information_schema.TABLES where TABLE_SCHEMA=&#39;man&#39;;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span&gt; ALTER TABLE `pass11` ENGINE = InnoDB   (this will also refragment innodb table)&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;h3 itemprop=&quot;name&quot;&gt;   ext4 disable journal &lt;/h3&gt;&lt;div&gt;&lt;/div&gt;At one high loaded web project I needed a very fast file system. I decided to use Ext4 with disabled journal (As a google:))).&lt;br&gt;&lt;br&gt;# Create ext4 fs on /dev/sda10 disk&lt;br&gt;mkfs.ext4 /dev/sda10&lt;br&gt;&lt;br&gt;# Enable writeback mode. This mode will typically provide the best ext4 performance.&lt;br&gt;tune2fs -o journal_data_writeback /dev/sda10&lt;br&gt;&lt;br&gt;# Delete has_journal option&lt;br&gt;tune2fs -O ^has_journal /dev/sda10&lt;br&gt;&lt;br&gt;# Required fsck&lt;br&gt;e2fsck -f /dev/sda10&lt;br&gt;&lt;br&gt;# Check fs options&lt;br&gt;dumpe2fs /dev/sda10 |more&lt;br&gt;&lt;br&gt;For more performance add fstab opions: data=writeback,noatime,nodiratime&lt;br&gt;i.e:&lt;br&gt;/dev/sda10      /opt    ext4    defaults,data=writeback,noatime,nodiratime      0       0&lt;br&gt;&lt;br&gt;Tested at non-boot partition ;)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span&gt;Redirect port request internally using IPTABLES&lt;/span&gt;&lt;br&gt;&lt;pre&gt;# iptables -I PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# rpm -q --provides openssl &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;&lt;b&gt;&lt;span&gt;&lt;b&gt;To check which users are connected to ftp servers, make the below entrt in vsftpd.conf&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;span&gt;setproctitle_enable=YES&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;restart vsftpd  and run command &lt;/span&gt;&lt;br&gt;&lt;span&gt;# ps -fe | grep ftp&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;to restrict users to time based login in system and ftp server&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;edit /etc/pam.d/vsftpd and add below line just after ending auth section&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;session    optional     pam_keyinit.so    force revoke&lt;/span&gt;&lt;br&gt;&lt;span&gt;auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed&lt;/span&gt;&lt;br&gt;&lt;span&gt;auth       required    pam_shells.so&lt;/span&gt;&lt;br&gt;&lt;span&gt;auth       include    system-auth&lt;/span&gt;&lt;br&gt;&lt;span&gt;account    required     pam_time.so&lt;/span&gt;&lt;br&gt;&lt;span&gt;account    include    system-auth&lt;/span&gt;&lt;br&gt;&lt;span&gt;session    include    system-auth&lt;/span&gt;&lt;br&gt;&lt;span&gt;session    required     pam_loginuid.so&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;now edit /etc/security/time.conf and add below line at end.&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;vsftpd;*;mayankg;!Al1000-1900&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;Done&lt;/span&gt;&lt;br&gt; &lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/5812825373370560071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2012/05/commands_21.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/5812825373370560071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/5812825373370560071'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2012/05/commands_21.html' title='commands'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-1191231539515578437</id><published>2012-03-13T16:21:00.000+05:30</published><updated>2013-04-17T15:00:59.573+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="LDAP"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="system admin"/><title type='text'>STORE SSH KEYS IN LDAP</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;div&gt;We need password less ssh login, so here i have tried to make the keys centralized by storing them in LDAP&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;LDAP &lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;Server Setup &lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#  &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;yum install openldap{,-clients,-devel,} nss_ldap&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;make entry in &lt;b&gt;/etc/hosts&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;192.168.1.3    directory.domain.com&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Run this Command and copy output&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#  &lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;slappasswd&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;Note:  Enter desired password here&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;pass:&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;confirm:&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;Output will like this, copy it&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;{SSHA}AuOU1S01Nj+gQ9FIHf8gCompENETugiT&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Now edit slapd.conf&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#  &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;vi /etc/openldap/slapd.conf&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;check for this similar entry and edit as follows&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;database       bdb&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;suffix           &quot;dc=directory,dc=domain,dc=com&quot;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;rootdn          &quot;cn=Manager,dc=directory,dc=domain,dc=com&quot;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;rootpw                     {SSHA}AuOU1S01Nj+gQ9FIHf8gCompENETugiT   #(paste the encrypted password here)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;directory       /var/lib/ldap&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#  &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;service ldap start&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Create a file named &lt;b&gt;/etc/openldap/init.ldif&lt;/b&gt; and below line&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;dn: cn=Manager,dc=directory,dc=domain,dc=com&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;ou: People&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;description: All People in Organisation&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;objectClass: organizationalUnit&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;dn: ou=People,dc=directory,dc=domain,dc=com&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;ou: People&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;objectclass: organizationalUnit&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;dn: ou=Groups,dc=directory,dc=domain,dc=com&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;ou: Groups&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;description: All People in Organisation&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;objectClass: organizationalUnit&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;now you have to add that file in LDAP server&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#  &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;ldapadd -x -D &quot;cn=Manager,dc=directory,dc=domain,dc=com&quot; -W -f /etc/openldap/init.ldif&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;It will now ask for password, paste or type the password that you typed for &quot;&lt;b&gt;slappasswd&lt;/b&gt;&quot;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Now import any user from linux passwd file&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#  &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;useradd manish&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#  &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;passwd manish&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#  &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;grep manish /etc/passwd &amp;gt; passwd.manish&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;/usr/share/openldap/migration/migrate_passwd.pl passwd.manish manish.ldif&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;ldapadd -x -D &quot;cn=Manager,dc=directory,dc=domain,dc=com&quot; -W -f manish.ldif&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;It will ask for the rootdn passwd, provide that.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;TEST LDAP SERVER: On LDAP Server&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;/span&gt;&lt;/i&gt;&lt;b&gt;ldapsearch -x -b &quot;dc=directory,dc=domain,dc=com&quot;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;i&gt;&lt;span&gt;------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/i&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;LDAP Client Setup&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap-client]# &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;yum install nss_ldap openldap-clients&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt; make entry in &lt;b&gt;/etc/hosts&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;192.168.1.3    directory.domain.com&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;now run this command: (This is to enable client authentication on SSH logins using LDAP server)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap-client]# &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;authconfig --useshadow --usemd5 --enableldap --enableldapauth --ldapserver=directory.domain.com --ldapbasedn=&quot;dc=directory,dc=domain,dc=com&quot; --enablemkhomedir --updateall&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Edit &lt;b&gt;/etc/ldap.conf&lt;/b&gt; and add below lines&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;ssl no&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;tls_cacertdir /etc/openldap/cacerts&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;pam_password md5&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;uri ldap://directory.ibnlive.com/&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;base dc=directory,dc=ibnlive,dc=com&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;edit &lt;b&gt;/etc/openldap/ldap.conf&lt;/b&gt; and add below lines&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;ssl no&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;tls_cacertdir /etc/openldap/cacerts&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;pam_password md5&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;uri ldap://directory.ibnlive.com/&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;base dc=directory,dc=ibnlive,dc=com&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;Now Test LDAP Client for auth:&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;1: ldapsearch -x (if successful the also run 2 one)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;2: getent passwd | grep manish (though the user manish do not exists in client system, you should get answer for this)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;3: ssh -l manish 192.168.1.3&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;4: su - manish  (though the user manish do not exists in client system, you should get login for this)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;TLS (LDAP Server) – Secure LDAP Server&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#  &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;mkdir /etc/ssl/openldap/&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;cd /etc/ssl/openldap/&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;b&gt;openssl genrsa -out ldap.key 2048&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;b&gt;openssl req -new -key ldap.key -out ldap.csr&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;b&gt;openssl genrsa -out ca.key 2048&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;b&gt;openssl req -new -x509 -days 3650 -key ca.key -out ca.cert   &lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;b&gt;openssl x509 -req -in ldap.csr -out ldap.cert -CA ca.cert -CAkey ca.key -CAcreateserial -days 3650&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;b&gt;openssl x509 -in ldap.cert -text -noout &lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Edit &lt;b&gt;/etc/openldap/slapd.conf&lt;/b&gt; on LDAP Server, append these lines: (If there is already below entries, comment that)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;TLSCertificateFile /etc/ssl/openldap/ldap.cert&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;TLSCertificateKeyFile /etc/ssl/openldap/ldap.key&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;TLSCACertificateFile /etc/ssl/openldap/ca.cert&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Now edit &lt;b&gt;/etc/openldap/ldap.conf &lt;/b&gt;on LDAP CLIENT: remove all lines... and enter these&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;HOST  directory.domain.com&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;PORT 636&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;tls_cacertdir /etc/openldap/cacerts&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;TLS_REQCERT demand&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;pam_password md5&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;uri ldap://directory.domain.com/ ldaps://directory.domain.com:636&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;base dc=directory,dc=domain,dc=com&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;b&gt;rm -rf /etc/ldap.conf&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]# &lt;b&gt;ln -s /etc/openldap/ldap.conf /etc/ldap.conf&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;Replication: LDAP Server to LDAP Standby Client Server&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;On Second Server: (Standby)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;1. Follow the same above procedure for LDAP.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;2. Create &lt;b&gt;/etc/rsyncd.conf&lt;/b&gt; and enter below lines&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;log file = /var/log/rsyncd.log&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;pid file = /var/run/rsyncd.pid&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;lock file = /var/run/rsync.lock&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[ldap_standby]&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;path=/var/lib/ldap/&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;comment=ldap sync&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;uid = root&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;gid = root&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;read only = no&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;list = no&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;auth users = root&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;secrets file = /etc/ldap-admin&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;strict modes = false&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Save and exit&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Now create a file&lt;b&gt; /etc/ldap-admin&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap-standby]# &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;echo &quot;root:syncldapadmin&quot; &amp;gt; /etc/ldap-admin&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;-standby&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;]# &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;rsync --daemon&lt;/b&gt; &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Now add this in /etc/rc.local at end&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;-standby&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;]# &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;vi /etc/rc.local&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;rsync --daemon&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Now edit &lt;b&gt;/etc/sysconfig/iptables&lt;/b&gt; and add below line before &quot;&lt;b&gt;COMMIT&lt;/b&gt;&quot;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;-standby&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;]#  &lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;vi /etc/sysconfig/iptables &lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;save and exit&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;-standby&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;]# &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;/etc/init.d/iptables restart&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;This is done &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;Now on LDAP Server.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;create a file under /etc/ by name pass-ldap&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt; echo &quot;syncldapadmin&quot; &amp;gt; /etc/pass-ldap&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt; chmod 700 /etc/pass-ldap&lt;/b&gt; &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;now add a line in crontab&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt; crontab -e&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;* * * * * /usr/bin/rsync -az /var/lib/ldap/ root@::ldap_standby/ &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;save and exit&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;SSH Keys – LDAP Store&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;yum -y install gcc openldap-devel pam-devel zlib-devel openssl-devel&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;wget -qO - http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-5.4p1.tar.gz | tar zxf -&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;cd openssh-5.4p1&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;wget -q http://openssh-lpk.googlecode.com/svn/trunk/patch/contrib/contrib-openssh-lpk-5.4p1-0.3.13.patch&lt;/b&gt; &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;patch &amp;lt; contrib-openssh-lpk-5.4p1-0.3.13.patch&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;./configure --with-ldap --sysconfdir=/etc/ssh --prefix=/usr --with-pam&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;If error comes for pam, the issue this command&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;yum install pam-devel&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;make&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Now take backup of /etc/init.d/sshd and /etc/ssh/ &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;mkdir –p /opt/sshback&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;mv /etc/init.d/sshd /opt/sshnack/&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;mv /etc/ssh /opt/sshback/&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;yum -y erase openssh-server&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;make install&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;b&gt;cp /opt/sshback/sshd /etc/init.d/&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Now edit the “&lt;b&gt;sshd_config&lt;/b&gt;”&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;b&gt;vi /etc/ssh/sshd_config&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;UseLPK yes&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkLdapConf /etc/openldap/ldap.conf&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkServers  ldap://localhost/&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkUserDN   ou=People,dc=domain,dc=com&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkGroupDN  ou=Groups,dc=domain,dc=com&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkBindDN cn=Manager,dc=domain,dc=com&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkBindPw controlman&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkServerGroup &lt;span&gt;tech&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkForceTLS no&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkSearchTimelimit 3&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkBindTimelimit 3&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;LpkPubKeyAttr sshPublicKey&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Now add a group in ldap&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Create a file maingroup.ldif and add below lines, and add all users in that file as below&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;dn: cn=tech,ou=Groups&lt;/span&gt; dc=domain,dc=com&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;cn: tech&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;gidnumber: 504  &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;memberuid: user1&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;memberuid: user2&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;memberuid: user3&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;memberuid: user4&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;objectclass: posixGroup&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;b&gt;ldapadd -x -D &quot;cn=Manager,dc=domain,dc=com &quot; -w -f maingroup.ldif&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;It should display like this:&lt;/div&gt;&lt;br/&gt;&lt;div&gt;adding new entry &quot;cn=web18,ou=Groups,dc=domain,dc=com&quot;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;mkdir -p /var/empty/sshd/etc&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;wget -q &lt;a href=&quot;http://openssh-lpk.googlecode.com/files/openssh-lpk_openldap.schema%20-O%20/etc/openldap/schema/openssh-lpk_openldap.schema&quot;&gt;http://openssh-lpk.googlecode.com/files/openssh-lpk_openldap.schema -O /etc/openldap/schema/openssh-lpk_openldap.schema&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Now edit the slapd.conf&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&lt;b&gt;vi /etc/openldap/slapd.conf&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span&gt;Include            /etc/openldap/schema/openssh-lpk_openldap.schema&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;Save and exit&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;PHPLDAPADMIN (frontend for LDAP Management)&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;b&gt;Download phpldapadmin from&lt;/b&gt;&lt;br/&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;b&gt;wget http://downloads.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.2/phpldapadmin-1.2.2.tgz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fphpldapadmin%2Ffiles%2Fphpldapadmin-php5%2F1.2.2%2F&amp;amp;ts=1331543024&amp;amp;use_mirror=nchc&lt;/b&gt;&lt;br/&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;unzip phpldapadmin-1.2.2.zip&lt;br/&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;mv phpldapadmin  /var/www/html/&lt;br/&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;chown wwwrun:www /var/www/html/phpldapadmin&lt;br/&gt;Now go to phpldapadmin/config/&lt;br/&gt;&lt;i&gt;&lt;span&gt;[root@ldap]#&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;b&gt;mv config.php.example config.php&lt;br/&gt;&lt;/b&gt;now access that from browser:&lt;br/&gt;&lt;b&gt;http:///phpldapadmin/&lt;br/&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;user: cn=Manager,dc=domain,dc=com&lt;br/&gt;pass: &lt;/b&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Now log into phpLDAPadmin and browse to the user you want to attach an SSH key to:&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBDKxvNzynuB_H2vUypb5KnvoWb0k-0iGfquNwvRPiAqqjpui_fzFKm5s42UfaV_d6ZeHPQBm9-7OPCTvKWHyse4HIREaqwkZnDFt0yBtgdQDnqmuWXBofAPhNS4rhNGyBgRGaALvylFY/s1600/1.JPG&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBDKxvNzynuB_H2vUypb5KnvoWb0k-0iGfquNwvRPiAqqjpui_fzFKm5s42UfaV_d6ZeHPQBm9-7OPCTvKWHyse4HIREaqwkZnDFt0yBtgdQDnqmuWXBofAPhNS4rhNGyBgRGaALvylFY/s640/1.JPG&quot; width=&quot;640&quot; height=&quot;154&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Now, under the user&#39;s &quot;objectClass&quot; entry, click &quot;Add Value&quot;:&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgT1KhlEVKkUmN1MSG4VIpOqEO9EfydDIsBivXxmDeQ8eyOwjpAHtHx4DEFJi1rOsrTMl9Gcpf5j2VCw5NDtD0vL9sqg1BCckq_o0eMn5A31RDlru67vjY_Y-0punRuPfu5WReIzklLKo/s1600/1.JPG&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgT1KhlEVKkUmN1MSG4VIpOqEO9EfydDIsBivXxmDeQ8eyOwjpAHtHx4DEFJi1rOsrTMl9Gcpf5j2VCw5NDtD0vL9sqg1BCckq_o0eMn5A31RDlru67vjY_Y-0punRuPfu5WReIzklLKo/s640/1.JPG&quot; width=&quot;640&quot; height=&quot;177&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBDKxvNzynuB_H2vUypb5KnvoWb0k-0iGfquNwvRPiAqqjpui_fzFKm5s42UfaV_d6ZeHPQBm9-7OPCTvKWHyse4HIREaqwkZnDFt0yBtgdQDnqmuWXBofAPhNS4rhNGyBgRGaALvylFY/s1600/1.JPG&quot;&gt; &lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;You should now see the following screen:&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLgAhiJWPoFkbG6KKqMRDUI8bE1FVWQbYvS6SrSxXZfRW405oGezFc643IDGY1JrIrTrPMpbrPFhVKJ64A8fx_jbaivKp86lTZU_dWf2d4lkEhhJY16TBEy0MC_nJdkAcd06kN02yjHIE/s1600/2.JPG&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLgAhiJWPoFkbG6KKqMRDUI8bE1FVWQbYvS6SrSxXZfRW405oGezFc643IDGY1JrIrTrPMpbrPFhVKJ64A8fx_jbaivKp86lTZU_dWf2d4lkEhhJY16TBEy0MC_nJdkAcd06kN02yjHIE/s640/2.JPG&quot; width=&quot;640&quot; height=&quot;460&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Select &quot;ldapPublicKey&quot; from the list and then hit &quot;Add new ObjectClass&quot;.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Now that the ldapPublicKey ObjectClass is available to this user, you can add the sshPublicKey attribute to the user and paste their key in. Just hit &quot;Add new attribute&quot; as shown below, and you will get a dropdown menu.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMxSHsX7yzDyOCqnX2XjmuZIaicUSyEsULeKSlys5_YmGAdVMsibBEAVp2C8kXigXBon6ii01CC2nbmjQ35XavsU7NPKpVV108SU3D4eb25CsNe2CqLiih69OeDA8Y2GJoQtLhGatK5Wo/s1600/3.JPG&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMxSHsX7yzDyOCqnX2XjmuZIaicUSyEsULeKSlys5_YmGAdVMsibBEAVp2C8kXigXBon6ii01CC2nbmjQ35XavsU7NPKpVV108SU3D4eb25CsNe2CqLiih69OeDA8Y2GJoQtLhGatK5Wo/s640/3.JPG&quot; width=&quot;640&quot; height=&quot;140&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;In the dropdown menu, select &quot;sshPublicKey&quot; and you will see the dropdown change into the following:&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZZTh50XZJqAxfpn02gr5WkpzEJrJDxUUVqSH8apriPEDRJhemfLX7skHdx-WWXN3ElO8tBu67yPOr_WxW0IQbjDOUktFyyaoMMHI446x8Enar9qIcPfY_seUr9-NgK8HhzZntWkadnWc/s1600/4.JPG&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZZTh50XZJqAxfpn02gr5WkpzEJrJDxUUVqSH8apriPEDRJhemfLX7skHdx-WWXN3ElO8tBu67yPOr_WxW0IQbjDOUktFyyaoMMHI446x8Enar9qIcPfY_seUr9-NgK8HhzZntWkadnWc/s640/4.JPG&quot; width=&quot;640&quot; height=&quot;140&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Paste the user&#39;s key in here, then hit &quot;Update Object&quot;, and that&#39;s it! You&#39;re done...the user now has their Public SSH key stored in your LDAP directory, and as long as their companion private key is available on the machine they&#39;re connecting from, they will never need to use a password to log into any machine that&#39;s pointed at your LDAP server.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Now restart SSHD and ldap app.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;# /etc/init.d/sshd restart&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;#/etc/init.d/ldap restart&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;Generate public keys:  (do not provide any password)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# ssh-keygen -q -f ~/.ssh/id_rsa -t rsa&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Enter passphrase (empty for no passphrase): …&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Enter same passphrase again: …&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# cat ~/.ssh/id_rsa.pub&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Expecting:  like below&lt;/div&gt;&lt;br/&gt;&lt;div&gt;ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAoLpYk/1bOPiQC8tP0aB7g5YfcmniEAdEEitGwRrjc3XZptLQm3syl11bXdGbBCXb8JT1r3R8OVsnN3Ml/zTy3f7GBIWDH47ytyBxhQcMaCYk9Kk6pG6jbJCoikkxYggD0BexeVCK8qNyi9uohLh6PWCWRX29wF2zqiRjWyy5t8WK8oBgahdx18nqRoQRxyLsk0YIiff8n/WFQ3lWW2H2AlHWRus5cLVZ6J1safgLChOX5BIGt4A/UHsKdXHJd/zcSt+xkEXO7WqzIlMF/hh62NdfV2oR2AQuhAvGcYeDJhMLqbf3GqBdhL/zBF+pxhu8IU/7wPBjpJV865XRI0/JTQ== root@vm-machine&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Above line has to copy in sshpublic keys.&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/1191231539515578437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2012/03/store-ssh-keys-in-ldap_13.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/1191231539515578437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/1191231539515578437'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2012/03/store-ssh-keys-in-ldap_13.html' title='STORE SSH KEYS IN LDAP'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBDKxvNzynuB_H2vUypb5KnvoWb0k-0iGfquNwvRPiAqqjpui_fzFKm5s42UfaV_d6ZeHPQBm9-7OPCTvKWHyse4HIREaqwkZnDFt0yBtgdQDnqmuWXBofAPhNS4rhNGyBgRGaALvylFY/s72-c/1.JPG" height="72" width="72"/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-1250579197952271294</id><published>2012-03-01T12:31:00.000+05:30</published><updated>2013-04-17T15:00:59.614+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>DNS QUERY TIMEOUT ON LINUX CLIENT</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;Hi all, here i have come with a situation, when we have multiple DNS, basically Nameserver entry in resolve.conf at client, and sometimes we also face dam slow resolves in queries, this is may also due to DNS server issue, may be DNS has gone away or some other issues that is making it slow to resolve queries.By default, linux client attempts 3 times to Nameserver for queries. Here it make the process slow.&lt;br/&gt;So what we can do, is to set timeout in resolve.conf, this will help client to choose another Nameserver for AnswersHere we go:&lt;/div&gt;&lt;br/&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Edit the file resolve.conf:&lt;br/&gt;&lt;br/&gt;# vi /etc/resolve.conf&lt;br/&gt;&lt;br/&gt;nameserver 192.168.1.71&lt;br/&gt;nameserver 192.168.1.72&lt;br/&gt;nameserver 192.168.1.73&lt;br/&gt;nameserver 192.168.1.74&lt;br/&gt;options         timeout:1&lt;br/&gt;options         attempts:1&lt;br/&gt;&lt;br/&gt;Here you can see, i have set options value in file.&lt;br/&gt;&lt;br/&gt;options timeout:1  --&amp;gt; will tell client to skip this server, if there is delay in Answer&lt;br/&gt;options attempts:1 --&amp;gt; will tell client to do just single attempt per server&lt;br/&gt;&lt;br/&gt;Now you can check the difference.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/1250579197952271294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2012/03/dns-query-timeout-on-linux-client_1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/1250579197952271294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/1250579197952271294'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2012/03/dns-query-timeout-on-linux-client_1.html' title='DNS QUERY TIMEOUT ON LINUX CLIENT'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-2802836953459215298</id><published>2011-12-23T21:25:00.000+05:30</published><updated>2013-04-17T15:00:59.621+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><title type='text'>Multiple Purpose Expect Script</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;b&gt;DISK ALERT - Expect Script&lt;/b&gt;Hi All, here&#39;s I have bring a expect script, that this we can Run command on Remote Linux Servers, copy file using SSHSo here it is:&lt;br/&gt;&lt;b&gt;[root@virtual-vm ~]#&lt;/b&gt; &lt;b&gt; yum install expect  (if expect package is not installed)&lt;/b&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br/&gt;&lt;b&gt;[root@virtual-vm ~]#&lt;/b&gt;  &lt;b&gt;vi  /opt/scripts/diskspace-alerts.exp&lt;/b&gt;&lt;b&gt;DISK ALERT - Expect Script&lt;/b&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;#!/usr/bin/expect&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;set logfile [open /opt/scripts/iplist]&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;set ipaddrs [read $logfile]&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt; &lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;foreach line [split $ipaddrs \n] {&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;set timeout -1&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        spawn ssh cube@$line /sbin/ifconfig eth0 | /bin/grep &#39;inet addr&#39; | /bin/awk &#39;{print \$2}&#39;  | /bin/cut -d: -f2&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        set pass &quot;ssh-password&quot;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        set ya &quot;yes&quot;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        expect {&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        password: {send &quot;$pass\r&quot;; exp_continue}&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        connecting {send &quot;$ya\r&quot;; exp_continue}    &lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        }&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        spawn ssh cube@$line /bin/df -hlP | sed G&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        set pass &quot;ssh-passowrd&quot;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        expect {&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        password: {send &quot;$pass\r&quot;; exp_continue}&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;        }&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;}&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;b&gt;/opt/scripts/iplist:&lt;/b&gt;  contains IP address of servers, on which you may want to run the commands&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Set this in Cron&lt;/b&gt;:&lt;br/&gt;expect /opt/scripts/diskspace-alerts.exp | egrep -v &#39;spwan|cube|ssh&#39; &amp;gt; /tmp/diskspace-alert.txt ; /usr/sbin/postsuper -d ALL; /etc/init.d/postfix start; mail -s &quot;Disk space alert - IBNLive.com&quot; delhi.manish@gmail.com &amp;lt; /tmp/diskspace-alert.txt ; sleep 10; /etc/init.d/postfix stop&lt;br/&gt;&lt;br/&gt;Use your own choice of Mail Server&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/2802836953459215298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/12/multiple-purpose-expect-script_23.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2802836953459215298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2802836953459215298'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/12/multiple-purpose-expect-script_23.html' title='Multiple Purpose Expect Script'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-4474647965270383811</id><published>2011-11-14T13:43:00.000+05:30</published><updated>2013-04-17T15:04:14.895+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><title type='text'>MPM-Apache-settings</title><content type='html'>&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;Worker based&lt;br&gt;&lt;br&gt;&lt;IfModule worker.c&gt;&lt;br&gt;StartServers             5&lt;br&gt;ServerLimit             16&lt;br&gt;ThreadLimit             35&lt;br&gt;MaxClients             560&lt;br&gt;MinSpareThreads         25&lt;br&gt;MaxSpareThreads         75&lt;br&gt;ThreadsPerChild         35&lt;br&gt;MaxRequestsPerChild  25000&lt;br&gt;&lt;/IfModule&gt;&lt;br&gt;&lt;br&gt;Prefork Based:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;IfModule prefork.c&gt;&lt;br&gt;StartServers          15&lt;br&gt;MinSpareServers       15&lt;br&gt;MaxSpareServers       35&lt;br&gt;MaxClients           100&lt;br&gt;MaxRequestsPerChild 2500&lt;br&gt;&lt;/IfModule&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;IfModule worker.c&gt;&lt;br&gt;StartServers         2&lt;br&gt;MaxClients         150&lt;br&gt;MinSpareThreads     25&lt;br&gt;MaxSpareThreads     75&lt;br&gt;ThreadsPerChild     25&lt;br&gt;MaxRequestsPerChild  0&lt;br&gt;&lt;/IfModule&gt;&lt;br&gt;&lt;br&gt;# perchild MPM&lt;br&gt;# NumServers: constant number of server processes&lt;br&gt;# StartThreads: initial number of worker threads in each server process&lt;br&gt;# MinSpareThreads: minimum number of worker threads which are kept spare&lt;br&gt;# MaxSpareThreads: maximum number of worker threads which are kept spare&lt;br&gt;# MaxThreadsPerChild: maximum number of worker threads in each server process&lt;br&gt;# MaxRequestsPerChild: maximum number of connections per server process&lt;br&gt;&lt;IfModule perchild.c&gt;&lt;br&gt;NumServers           5&lt;br&gt;StartThreads         5&lt;br&gt;MinSpareThreads      5&lt;br&gt;MaxSpareThreads     10&lt;br&gt;MaxThreadsPerChild  20&lt;br&gt;MaxRequestsPerChild  0&lt;br&gt;&lt;/IfModule&gt;&lt;br&gt;&lt;br&gt;# WinNT MPM&lt;br&gt;# ThreadsPerChild: constant number of worker threads in the server process&lt;br&gt;# MaxRequestsPerChild: maximum  number of requests a server process serves&lt;br&gt;&lt;IfModule mpm_winnt.c&gt;&lt;br&gt;ThreadsPerChild 250&lt;br&gt;MaxRequestsPerChild  0&lt;br&gt;&lt;/IfModule&gt;&lt;br&gt;&lt;br&gt;# BeOS MPM&lt;br&gt;# StartThreads: how many threads do we initially spawn?&lt;br&gt;# MaxClients:   max number of threads we can have (1 thread == 1 client)&lt;br&gt;# MaxRequestsPerThread: maximum number of requests each thread will process&lt;br&gt;&lt;IfModule beos.c&gt;&lt;br&gt;StartThreads               10&lt;br&gt;MaxClients                 50&lt;br&gt;MaxRequestsPerThread       10000&lt;br&gt;&lt;/IfModule&gt;&lt;br&gt;&lt;br&gt;# NetWare MPM&lt;br&gt;# ThreadStackSize: Stack size allocated for each worker thread&lt;br&gt;# StartThreads: Number of worker threads launched at server startup&lt;br&gt;# MinSpareThreads: Minimum number of idle threads, to handle request spikes&lt;br&gt;# MaxSpareThreads: Maximum number of idle threads&lt;br&gt;# MaxThreads: Maximum number of worker threads alive at the same time&lt;br&gt;# MaxRequestsPerChild: Maximum  number of requests a thread serves. It is&lt;br&gt;#                      recommended that the default value of 0 be set for this&lt;br&gt;#                      directive on NetWare.  This will allow the thread to&lt;br&gt;#                      continue to service requests indefinitely.                         &lt;br&gt;&lt;IfModule mpm_netware.c&gt;&lt;br&gt;ThreadStackSize      65536&lt;br&gt;StartThreads           250&lt;br&gt;MinSpareThreads         25&lt;br&gt;MaxSpareThreads        250&lt;br&gt;MaxThreads            1000&lt;br&gt;MaxRequestsPerChild      0&lt;br&gt;MaxMemFree             100&lt;br&gt;&lt;/IfModule&gt;&lt;br&gt;&lt;br&gt;# OS/2 MPM&lt;br&gt;# StartServers: Number of server processes to maintain&lt;br&gt;# MinSpareThreads: Minimum number of idle threads per process,&lt;br&gt;#                  to handle request spikes&lt;br&gt;# MaxSpareThreads: Maximum number of idle threads per process&lt;br&gt;# MaxRequestsPerChild: Maximum number of connections per server process&lt;br&gt;&lt;IfModule mpmt_os2.c&gt;&lt;br&gt;StartServers           2&lt;br&gt;MinSpareThreads        5&lt;br&gt;MaxSpareThreads       10&lt;br&gt;MaxRequestsPerChild    0&lt;br&gt;&lt;/IfModule&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/4474647965270383811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/11/mpm-apache-settings_14.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/4474647965270383811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/4474647965270383811'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/11/mpm-apache-settings_14.html' title='MPM-Apache-settings'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-148306213307670848</id><published>2011-11-10T13:33:00.000+05:30</published><updated>2013-04-17T15:00:59.633+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><title type='text'>URL Rewriting - Examples</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;div&gt;Apache Rewrite Rules can be used to transform a pretty ugly looking URL into a beautiful, SEO-friendly and meaningful URL. I would like to list a couple of real-world examples below to explain how Rewrite Rules can be set up and how they work. Rewrite Rules use Regular Expressions, so this article is closely related to my Regular Expressions article.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Time-Dependent Rewriting&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteCond %{TIME_HOUR}%{TIME_MIN} &amp;gt;0700&lt;br/&gt;RewriteCond %{TIME_HOUR}%{TIME_MIN} &amp;lt;1900&lt;br/&gt;RewriteRule ^test\.html$ test.day.html [L]&lt;br/&gt;RewriteRule ^test.html$ test.night.html&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Redirect Failing URLs to Another Web Server&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteCond /your/docroot/%{REQUEST_FILENAME} !-f&lt;br/&gt;RewriteRule ^(.+) http://webserverB.com/$1 [R]&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Browser Dependent Content&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteCond %{HTTP_USER_AGENT} ^Mozilla/3.*&lt;br/&gt;RewriteRule ^foo\.html$ foo.NS.html [L]&lt;br/&gt;RewriteCond %{HTTP_USER_AGENT} ^Lynx/.* [OR]&lt;br/&gt;RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[12].*&lt;br/&gt;RewriteRule ^foo\.html$ foo.20.html [L]&lt;br/&gt;RewriteRule ^foo\.html$ foo.32.html [L]&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Blocking of BAD Proxied IP Addresses&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteMap hosts-deny txt:/etc/apache2/conf/host.deny&lt;br/&gt;RewriteCond ${hosts-deny:%{HTTP:True-Client-IP}|NOT-FOUND} !=NOT-FOUND&lt;br/&gt;RewriteRule ^/.* - [R=401,L]&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Redirecting a URI to a New Format&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteCond %{QUERY_STRING} !marker&lt;br/&gt;RewriteCond %{QUERY_STRING} id=([-a-zA-Z0-9_+]+)&lt;br/&gt;RewriteRule ^/?human\.php$ /%1? [R,L]&lt;br/&gt;RewriteRule ^/?([-a-zA-Z0-9_+]+)$ human.php?marker&amp;amp;id=$1 [L]&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Force some pages to use Secure Server&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteCond %{SERVER_PORT} !^443$&lt;br/&gt;RewriteRule ^/?(page1|page2|page3|page4|page5)$  https://www.secure-server.com/%1 [R,L]&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Redirect UserAgent for IPAD, IPHONE, And Anroid OS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteCond %{HTTP_USER_AGENT} !^.*iPhone.*$ [NC]&lt;br/&gt;RewriteCond %{HTTP_USER_AGENT} !^.*iPad.*$ [NC]&lt;br/&gt;RewriteCond %{HTTP_USER_AGENT} !^.*Android.*$ [NC]&lt;br/&gt;RewriteCond %{REQUEST_URI} ^/tab&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteRule .* /index.html [R=301,L]&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Block Bad Referrer&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteCond %{HTTP_REFERER} (tvchannelsfree) [NC,OR]&lt;br/&gt;RewriteCond %{HTTP_REFERER} (onionz) [NC]&lt;br/&gt;RewriteRule ^/.* - [R=401,L]&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Make Fancy URLS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;Ex. What to What:  &lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;&lt;b&gt;http://domain.com/index.php?id1=3456&amp;amp;text=humanbeing_nonsense&amp;amp;sub_id=14   TO&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;&lt;b&gt;http://domain.com/senses/humanbeing_nonsense/3456/14.html&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteRule ^senses/([a-z_]+)/([0-9]+)/([0-9]+)\.html$  /index.php?id1=$2&amp;amp;text=$1&amp;amp;sub_id=$3&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;b&gt;Redirect Page Request to Other Server&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;RewriteCond %{REQUEST_URI} /username/register.php&lt;br/&gt;RewriteRule .* http://domain2.com/username/register_new.php [R=301,NC]&lt;br/&gt;RewriteCond %{REQUEST_URI} /username/entry.html&lt;br/&gt;RewriteRule .* http://domain2.com/username/entry.html [R=301,NC]&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/148306213307670848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/11/url-rewriting-examples_10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/148306213307670848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/148306213307670848'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/11/url-rewriting-examples_10.html' title='URL Rewriting - Examples'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-24672984686082817</id><published>2011-11-01T18:31:00.000+05:30</published><updated>2013-04-17T15:00:59.638+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><title type='text'>Load Balance Mysql Slaves Using MySQLProxy</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;span&gt;I am sure you all have read about MySQL replication, like Master-Master, Single Master - Multiple Slaves and their topologies. &lt;/span&gt;&lt;br/&gt;&lt;span&gt;Here I am going to describe how you can load balance several MySQL Slaves and query logging.&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span&gt;Required packages:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;MysqlProxy&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Lua&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Yum (readline readline-devel libtermcap-devel ncurses-devel  libevent  libevent-devel  mysql-devel openssl krb5-libs glib2-devel)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span&gt;Our Servers:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;192.172.1.1 (Mysql Proxy Server’s IP)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;192.172.1.2  (Mysql Slave)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;192.172.1.3  (Mysql Slave)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;192.172.1.4  (Mysql Slave)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;192.172.1.5  (Mysql Slave)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;Install Mysql Proxy:&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;I am using MysqlProxy Ver.  &lt;b&gt;0.6.1, &lt;/b&gt;download this version from your own way or use the below lines.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   cd /mnt/download&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   wget &lt;a href=&quot;http://dev.mysql.com/get/Downloads/MySQL-Proxy/mysql-proxy-0.6.1.tar.gz/from/http:/www.mirrorservice.org/sites/ftp.mysql.com/&quot;&gt;http://dev.mysql.com/get/Downloads/MySQL-Proxy/mysql-proxy-0.6.1.tar.gz/from/http://www.mirrorservice.org/sites/ftp.mysql.com/&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   tar zxvf mysql-proxy-0.6.1.tar.gz&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt; &lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span&gt;Download Lua, if you want logging:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   wget &lt;a href=&quot;http://www.lua.org/ftp/lua-5.1.3.tar.gz&quot;&gt;http://www.lua.org/ftp/lua-5.1.3.tar.gz&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   tar xzf  lua-5.1.3.tar.gz&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   cd lua-5.1.3&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   yum install readline readline-devel libtermcap-devel ncurses-devel  libevent  libevent-devel&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   make linux&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   make install&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;Lua Done&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Now go to mysql-proxy under download directory&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   cd /mnt/download/ mysql-proxy-0.6.1&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#  yum install mysql-devel openssl krb5-libs glib2-devel&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   ./configure --prefix=/opt/mysql-proxy --with-lua LDFLAGS=&quot;-lm -ldl&quot; LUA_CFLAGS=&quot;-I/usr/lib64&quot; LUA_LIBS=/usr/lib64/liblua5.1.a&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   make&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   make install&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span&gt;MysqlProxy Installation Done:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Now we have to create a Bash File for automating task:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;vi  /scripts/runproxy.sh &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;(I put all my script under /scripts/, so change accordingly)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;#!/bin/bash &lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;BASE_DIR=/usr/local/&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;BIN_DIR=${BASE_DIR}/sbin&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;pkill -f mysql-proxy&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;sleep 1&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;${BIN_DIR}/mysql-proxy \&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;--proxy-backend-addresses=192.172.1.2:3306 \&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;--proxy-backend-addresses=192.172.1.3:3306 \&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;--proxy-backend-addresses=192.172.1.4:3306 \&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;--proxy-backend-addresses=192.172.1.5:3306 &amp;amp;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;--proxy-lua-script=/scripts/simple-log.lua  &amp;amp;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;sleep 1&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;echo &quot;Testing Query: select * FROM speed limit 1;&quot;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;echo &quot;select * FROM speed limit 1;&quot; |  /usr/local/mysql/bin/mysql --host=192.172.1.1 --port=4040 --user=root --password=mysql-password test || { echo &quot;${sqlStatement}: failed (is that server up?)&quot;; exit 1; }&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;#&lt;span&gt;   vi &lt;i&gt;/scripts/&lt;/i&gt;simple-log.lua&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;local log_file = &#39;/var/log/mysql-proxy/mysql.log&#39;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;local fh = io.open(log_file, &quot;a+&quot;)&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;function read_query( packet )&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt; if string.byte(packet) == proxy.COM_QUERY then&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;   local query = string.sub(packet, 2)&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;   fh:write( string.format(&quot;%s %6d -- %s :IP %s :USER: %s\n&quot;,&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;   os.date(&#39;%Y-%m-%d %H:%M:%S&#39;),&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;   proxy.connection.server.thread_id,&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;   query,&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;   proxy.connection.client.address,&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;   proxy.connection.client.username,&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;   error_status))&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;  fh:flush()&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt; end&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;end&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Now time to execute the script, but still some work before running the script.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Have to edit IPTABLES :&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;#   &lt;b&gt;&lt;span&gt;vi /etc/sysconfig/iptables  &lt;/span&gt;(On MysqlProxy Server)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4040 -j ACCEPT&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4041 -j ACCEPT&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;#   &lt;b&gt;&lt;span&gt;vi /etc/sysconfig/iptables  &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;(On Mysql Slave Servers)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;-A RH-Firewall-1-INPUT -s &lt;b&gt;&lt;i&gt;192.172.1.2 &lt;/i&gt;&lt;/b&gt;-d &lt;b&gt;&lt;i&gt;192.172.1.1 &lt;/i&gt;&lt;/b&gt;-p tcp -m state --state NEW,ESTABLISHED,RELATED -m tcp --dport 4040 -j ACCEPT&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Apply IPTABLES Rules, restart IPtables&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Now run the script:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;#   chmod 755 &lt;b&gt;&lt;span&gt;/scripts/runproxy.sh&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;#   &lt;b&gt;&lt;span&gt;/bin/sh /scripts/runproxy.sh&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;Or Just add this file to :  /etc/rc.local&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;# vi /etc/rc.local&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;#!/bin/sh&lt;/div&gt;&lt;br/&gt;&lt;div&gt;#&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# This script will be executed *after* all the other init scripts.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# You can put your own initialization stuff in here if you don&#39;t&lt;/div&gt;&lt;br/&gt;&lt;div&gt;# want to do the full Sys V style init stuff.&lt;/div&gt;&lt;br/&gt;&lt;div&gt;/var/lock/subsys/local&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;/bin/sh  /scripts/runproxy.sh &lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Check MysqlProxy is running:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;# netstat -tnlp&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Active Internet connections (only servers)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;Proto     Recv-Q  Send-Q Local Address               Foreign Address             State       PID/Program name&lt;/div&gt;&lt;br/&gt;&lt;div&gt;tcp        0             0              0.0.0.0:4040                0.0.0.0:*                   LISTEN      3778/mysql-proxy&lt;/div&gt;&lt;br/&gt;&lt;div&gt;tcp        0             0              0.0.0.0:4041                0.0.0.0:*                   LISTEN      3778/mysql-proxy&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/24672984686082817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/11/load-balance-mysql-slaves-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/24672984686082817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/24672984686082817'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/11/load-balance-mysql-slaves-using.html' title='Load Balance Mysql Slaves Using MySQLProxy'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-7407777723130590902</id><published>2011-08-12T21:38:00.000+05:30</published><updated>2013-04-17T15:00:59.643+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="script"/><title type='text'>Report Developer&amp;#39;s About Error/Warning in Codes from Apache Logs</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;b&gt;This is just a scenario i got it in mind, Reporting Warning/Error  to Developer(s), using a PERL script, this you can also be done using SHELL Script.&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;#!/usr/bin/perl&lt;/div&gt;&lt;br/&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;br/&gt;use Net::SMTP;&lt;br/&gt;my $date=`date +%a&quot; &quot;%b&quot; &quot;%d`;&lt;br/&gt;my $warn=&quot;Warning:&quot;;&lt;br/&gt;my $line1=`cat /var/log/apachelogs/error_log | grep -i &#39;php warning&#39; | grep &#39;$date&#39; | awk -F&#39;$warn&#39; &#39;{print \$2}&#39; | sort | uniq -c | sed G &amp;gt; /tmp/get-PHP-errors.txt`;&lt;br/&gt;&lt;br/&gt;my $line=`cat /tmp/get-PHP-errors.txt`;&lt;br/&gt;&lt;br/&gt;my $ServerName = &quot;mail2.mailer.com&quot;;&lt;br/&gt;&lt;br/&gt;my $RealNameFrom = &quot;PHP Warnings&quot;;&lt;br/&gt;&lt;br/&gt;my $MailFrom = &quot;noreply\@tech-suppport.com&quot;;&lt;br/&gt;&lt;br/&gt;my $RealNameTo = &quot;Web Coders&quot;;&lt;br/&gt;&lt;br/&gt;my $MailTo = &quot;delhi.manish\@gmail.com&quot;;&lt;br/&gt;&lt;br/&gt;my $MailSubject = &quot;Apache Error Log On Stagging Server&quot;;&lt;br/&gt;&lt;br/&gt;$smtp = Net::SMTP-&amp;gt;new($ServerName);&lt;br/&gt;&lt;br/&gt;die &quot;Couldn&#39;t connect to server&quot; unless $smtp;&lt;br/&gt;&lt;br/&gt;$smtp-&amp;gt;mail( $MailFrom );&lt;br/&gt;$smtp-&amp;gt;to( $MailTo );&lt;br/&gt;&lt;br/&gt;$smtp-&amp;gt;data();&lt;br/&gt;&lt;br/&gt;$smtp-&amp;gt;datasend(&quot;To: $RealNameTo &amp;lt;$MailTo&amp;gt;\n&quot;);&lt;br/&gt;$smtp-&amp;gt;datasend(&quot;From: $RealNameFrom &amp;lt;$MailFrom&amp;gt;\n&quot;);&lt;br/&gt;$smtp-&amp;gt;datasend(&quot;Subject: $MailSubject\n\n&quot;);&lt;br/&gt;&lt;br/&gt;$smtp-&amp;gt;datasend(&quot;$line&quot;);&lt;br/&gt;$smtp-&amp;gt;dataend();&lt;br/&gt;&lt;br/&gt;$smtp-&amp;gt;quit();&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/7407777723130590902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/08/report-developer-about-errorwarning-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7407777723130590902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7407777723130590902'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/08/report-developer-about-errorwarning-in.html' title='Report Developer&amp;#39;s About Error/Warning in Codes from Apache Logs'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-5171793312952266269</id><published>2011-03-15T13:11:00.000+05:30</published><updated>2013-04-17T15:00:59.648+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="pgsql"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="system admin"/><title type='text'>Monitor PostgreSQL with Queries</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;(Not All written by me.... )Some time just monitoring a DB servers from monitoring tools is just not enough, in that case we need some tool that let us know, what is DB is holding, processing, parameters etc..&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;So here are some PSQL Queries that will let us know some expected results:&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Create Aggregate function&lt;/b&gt;&lt;br/&gt;&lt;pre&gt;# psql&lt;/pre&gt;&lt;br/&gt;&lt;pre&gt;CREATE AGGREGATE array_accum (anyelement)&lt;br/&gt;(&lt;br/&gt;    sfunc = array_append,&lt;br/&gt;    stype = anyarray,&lt;br/&gt;    initcond = &#39;{}&#39;&lt;br/&gt;);&lt;/pre&gt;&lt;br/&gt;--------------------------------------------------------------------------------------------------------&lt;br/&gt;&lt;b&gt;The function pg_stat_get_backend_idset provides a convenient way to generate one row for each active server process. For example, to show the PIDs and current queries of all server processes:&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;# psql -c &quot;SELECT pg_stat_get_backend_pid(s.backendid) AS procpid, pg_stat_get_backend_activity(s.backendid) AS current_query FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s;&quot;&lt;br/&gt;--------------------------------------------------------------------------------------------------------&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Sample query to pull the number of rows, indexes, and some info about those indexes for each table. (Only works on 8.3; ditch the pg_size_pretty if you’re on an earlier version) &lt;/b&gt;&lt;br/&gt;&lt;br/&gt;postgres=# SELECT&lt;br/&gt;pg_class.relname,&lt;br/&gt;pg_size_pretty(pg_class.reltuples::bigint) AS rows_in_bytes,&lt;br/&gt;pg_class.reltuples AS num_rows,&lt;br/&gt;count(indexname) AS number_of_indexes,&lt;br/&gt;CASE WHEN x.is_unique = 1 THEN &#39;Y&#39;&lt;br/&gt;ELSE &#39;N&#39;&lt;br/&gt;END AS UNIQUE,&lt;br/&gt;SUM(case WHEN number_of_columns = 1 THEN 1&lt;br/&gt;ELSE 0&lt;br/&gt;END) AS single_column,&lt;br/&gt;SUM(case WHEN number_of_columns IS NULL THEN 0&lt;br/&gt;WHEN number_of_columns = 1 THEN 0&lt;br/&gt;ELSE 1&lt;br/&gt;END) AS multi_column&lt;br/&gt;FROM pg_namespace&lt;br/&gt;LEFT OUTER JOIN pg_class ON pg_namespace.oid = pg_class.relnamespace&lt;br/&gt;LEFT OUTER JOIN&lt;br/&gt;(SELECT indrelid,&lt;br/&gt;max(CAST(indisunique AS integer)) AS is_unique&lt;br/&gt;FROM pg_index&lt;br/&gt;GROUP BY indrelid) x&lt;br/&gt;ON pg_class.oid = x.indrelid&lt;br/&gt;LEFT OUTER JOIN&lt;br/&gt;( SELECT c.relname AS ctablename, ipg.relname AS indexname, x.indnatts AS number_of_columns FROM pg_index x&lt;br/&gt;JOIN pg_class c ON c.oid = x.indrelid&lt;br/&gt;JOIN pg_class ipg ON ipg.oid = x.indexrelid  )&lt;br/&gt;AS foo&lt;br/&gt;ON pg_class.relname = foo.ctablename&lt;br/&gt;WHERE&lt;br/&gt;pg_namespace.nspname=&#39;public&#39;&lt;br/&gt;AND  pg_class.relkind = &#39;r&#39;&lt;br/&gt;GROUP BY pg_class.relname, pg_class.reltuples, x.is_unique&lt;br/&gt;ORDER BY 2;&lt;br/&gt;&lt;br/&gt;------------------------------------------------------------------------------------------------------&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Query to check Database Size, Cache, Hit Success&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;# psql -c &quot;select a.datname, pg_size_pretty(pg_database_size(a.datid)) as size, cast(blks_hit/(blks_read+blks_hit+0.000001)*100.0 as numeric(5,2)) as cache, cast(xact_commit/(xact_rollback+xact_commit+0.000001)*100.0 as numeric(5,2)) as success from pg_stat_database a order by a.datname&quot;--&lt;br/&gt;&lt;br/&gt;--------------------------------------------------------------------------------------------------------&lt;br/&gt;&lt;b&gt;Table &amp;amp; index sizes along which indexes are being scanned and how many tuples are fetched.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;postgres=# SELECT&lt;br/&gt;t.tablename,&lt;br/&gt;indexname,&lt;br/&gt;c.reltuples AS num_rows,&lt;br/&gt;pg_size_pretty(pg_relation_size(t.tablename)) AS table_size,&lt;br/&gt;pg_size_pretty(pg_relation_size(indexrelname)) AS index_size,&lt;br/&gt;CASE WHEN x.is_unique = 1  THEN &#39;Y&#39;&lt;br/&gt;ELSE &#39;N&#39;&lt;br/&gt;END AS UNIQUE,&lt;br/&gt;idx_scan AS number_of_scans,&lt;br/&gt;idx_tup_read AS tuples_read,&lt;br/&gt;idx_tup_fetch AS tuples_fetched&lt;br/&gt;FROM pg_tables t&lt;br/&gt;LEFT OUTER JOIN pg_class c ON t.tablename=c.relname&lt;br/&gt;LEFT OUTER JOIN&lt;br/&gt;(SELECT indrelid,&lt;br/&gt;max(CAST(indisunique AS integer)) AS is_unique&lt;br/&gt;FROM pg_index&lt;br/&gt;GROUP BY indrelid) x&lt;br/&gt;ON c.oid = x.indrelid&lt;br/&gt;LEFT OUTER JOIN&lt;br/&gt;( SELECT c.relname AS ctablename, ipg.relname AS indexname, x.indnatts AS number_of_columns, idx_scan, idx_tup_read, idx_tup_fetch,indexrelname FROM pg_index x&lt;br/&gt;JOIN pg_class c ON c.oid = x.indrelid&lt;br/&gt;JOIN pg_class ipg ON ipg.oid = x.indexrelid&lt;br/&gt;JOIN pg_stat_all_indexes psai ON x.indexrelid = psai.indexrelid )&lt;br/&gt;AS foo&lt;br/&gt;ON t.tablename = foo.ctablename&lt;br/&gt;WHERE t.schemaname=&#39;public&#39;&lt;br/&gt;ORDER BY 1,2;&lt;br/&gt;----------------------------------------------------------------------------------------------------------&lt;br/&gt;&lt;b&gt;Shared Locks&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;# psql -c &quot;select pg_stat_activity.datname,pg_class.relname,pg_locks.transactionid, pg_locks.mode, pg_locks.granted, pg_stat_activity.usename,substr(pg_stat_activity.current_query,1,30), pg_stat_activity.query_start, age(now(),pg_stat_activity.query_start) as &quot;age&quot;, pg_stat_activity.procpid from pg_stat_activity,pg_locks left outer join pg_class on (pg_locks.relation = pg_class.oid)  where pg_locks.pid=pg_stat_activity.procpid order by query_start;&quot;&lt;br/&gt;&lt;br/&gt;----------------------------------------------------------------------------------------------------------&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Finding unused indexes&lt;/b&gt;&lt;br/&gt;&lt;b&gt;&lt;br/&gt;&lt;/b&gt;&lt;br/&gt;#psql -c &quot;SELECT *, pg_size_pretty(pg_relation_size(indexrelname))  FROM pg_stat_all_indexes   WHERE schemaname = &#39;public&#39;  ORDER BY pg_relation_size(indexrelname) DESC, idx_scan ASC;&lt;br/&gt;select indexrelid::regclass as index, relid::regclass as table from pg_stat_user_indexes JOIN pg_index USING (indexrelid) where idx_scan = 0 and indisunique is false;&quot;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Finding duplicate indexes&lt;/b&gt;&lt;br/&gt;# psql  -c &quot;select indrelid::regclass, array_accum(indexrelid::regclass) from pg_index group by indrelid, indkey having count(*) &amp;gt; 1;&quot;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Finding useless indexes&lt;/b&gt;&lt;br/&gt;# psql -c &quot;select starelid::regclass, indexrelid::regclass, array_accum(staattnum), relpages, reltuples, array_accum(stadistinct) from pg_index join pg_statistic on (starelid=indrelid and staattnum = ANY(indkey)) join pg_class on (indexrelid=oid) where case when stadistinct &amp;lt; 0 then stadistinct &amp;gt; -.8 else reltuples/stadistinct &amp;gt; .2  end and not (indisunique or indisprimary) and (relpages &amp;gt; 100 or reltuples &amp;gt; 1000) group by starelid, indexrelid, relpages, reltuples order by starelid ;&quot;&lt;br/&gt;&lt;br/&gt;-----------------------------------------------------------------------------------------------------------&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Count number of current connections:&lt;/b&gt;&lt;br/&gt;SELECT COUNT(*) FROM pg_stat_activity;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Number of commits and rollbacks for each database:&lt;/b&gt;&lt;br/&gt;SELECT datname, xact_commit, xact_rollback FROM pg_stat_database;&lt;br/&gt;&lt;b&gt;&lt;br/&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;Summaries of number of inserts/updates/deletes:&lt;/b&gt;&lt;br/&gt;SELECT SUM(n_tup_ins), SUM(n_tup_upd), SUM(n_tup_del) FROM pg_stat_all_tables;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Summaries of query plans:&lt;/b&gt;&lt;br/&gt;SELECT SUM(seq_scan), SUM(seq_tup_read), SUM(idx_scan), SUM(idx_tup_fetch) FROM pg_stat_all_tables;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Summaries of locks held:&lt;/b&gt;&lt;br/&gt;SELECT mode, COUNT(mode) FROM pg_locks GROUP BY mode ORDER BY mode;&lt;br/&gt;&lt;br/&gt;#############Summary of disk I/O in terms of blocks read:&lt;br/&gt;SELECT SUM(heap_blks_read) FROM pg_statio_user_tables;&lt;br/&gt;SELECT SUM(idx_blks_read) FROM pg_statio_user_tables;&lt;br/&gt;SELECT SUM(toast_blks_read) FROM pg_statio_user_tables;&lt;br/&gt;SELECT SUM(tidx_blks_read) FROM pg_statio_user_tables;&lt;br/&gt;&lt;b&gt;Swap `read&#39; for `hit&#39; to get the number of blocks read from memory.&lt;/b&gt;&lt;br/&gt;&lt;b&gt;&lt;i&gt;Caution!&lt;/i&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;&lt;i&gt;This does not take the operating system&#39;s disk cache into account!&lt;/i&gt;&lt;/b&gt;&lt;br/&gt;pg_database_size(name)&lt;br/&gt;pg_tablespace_size(name)&lt;br/&gt;&lt;br/&gt;-----------------------------------------------------------------------------------------------&lt;br/&gt;&lt;b&gt;Check Master-Slave Sync Status in SR Mode&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;On Master&lt;/span&gt; &lt;/b&gt;&lt;br/&gt;&lt;b&gt;postgres=# select pg_current_xlog_location(); &lt;/b&gt;&lt;br/&gt;pg_current_xlog_location&lt;br/&gt;--------------------------&lt;br/&gt;&lt;span&gt;7B/3CB4CBD0&lt;/span&gt;&lt;br/&gt;(1 row)&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;On Slave&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;postgres=# select pg_last_xlog_replay_location();&lt;/b&gt;&lt;br/&gt;pg_last_xlog_replay_location&lt;br/&gt;------------------------------&lt;br/&gt;&lt;span&gt; 7B/3CB4CBD0&lt;/span&gt;&lt;br/&gt;&lt;span&gt;(1 row)&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/5171793312952266269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/03/monitor-postgresql-with-queries_15.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/5171793312952266269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/5171793312952266269'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/03/monitor-postgresql-with-queries_15.html' title='Monitor PostgreSQL with Queries'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-7548166793208182066</id><published>2011-02-22T12:34:00.000+05:30</published><updated>2013-04-17T15:04:14.937+05:30</updated><title type='text'>Some Useful Quotes</title><content type='html'>&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br&gt;&lt;b&gt;Block Size:&lt;/b&gt;&lt;br&gt;The block size specifies size, that the file system, will use to Read and Write data. Larger block sizes will help improve disk I/O performance when using large files, such as Databases.&lt;br&gt;Mostly of size 1024, need to be 4096 for bigger file support like in database server case.&lt;br&gt;&lt;br&gt;Block Size: Different Terms&lt;br&gt;1: Hardware Block Size = Sector Size&lt;br&gt;2: File System Block Size = Block Size&lt;br&gt;3: Kernel Buffer Block Size = Block Size&lt;br&gt;4: Partition Table Block Size = Cylinder Size&lt;br&gt;----------------------------------------------------------------------------------------------&lt;br&gt;&lt;br&gt;&lt;b&gt;MyISAM&lt;/b&gt; tables support concurrent inserts. If a MyISAM table has no holes in the middle resulting from deleted or updated records, inserts always take place at the end of the table and can be performed while other clients are reading the table. Concurrent inserts can take place even for a table that has been read-locked explicitly if the locking client acquired a READ LOCAL lock rather than a regular READ lock. If a table does have holes, concurrent inserts cannot be performed. However, you can remove the holes by using OPTIMIZE TABLE to defragment the table.&lt;br&gt;----------------------------------------------------------------------------------------------&lt;br&gt;&lt;br&gt;&lt;b&gt;Clustered Index:&lt;/b&gt; Clustered index physically rearrange the data that users inserts in your tables. It is nothing but a dictionary type data where actual data remains.&lt;br&gt;&lt;b&gt;Non-Clustered Index:&lt;/b&gt; It Non-Clustered Index contains pointers to the data that is stored in the data page. It is a kind of index backside of the book where you see only the reference of a kind of data.&lt;br&gt;----------------------------------------------------------------------------------------------&lt;br&gt;&lt;br&gt;&lt;b&gt;To change&lt;/b&gt; the default size limit for MyISAM tables, set the myisam_data_pointer_size, which sets the number of bytes used for internal row pointers. The value is used to set the pointer size for new tables if you do not specify the MAX_ROWS option. The value of myisam_data_pointer_size can be from 2 to 7. A value of 4 permits tables up to 4GB; a value of 6 permits tables up to 256TB.&lt;br&gt;&lt;br&gt;You can check the maximum data and index sizes by using this statement:&lt;br&gt;&lt;br&gt;SHOW TABLE STATUS FROM db_name LIKE &#39;tbl_name&#39;;&lt;br&gt;----------------------------------------------------------------------------------------------&lt;br&gt;&lt;br&gt;&lt;b&gt;Both InnoDB and PostgreSQL&lt;/b&gt; - as well as many other databases - use a technique called multi-version concurrency control (MVCC) to provide transaction isolation: transactions should not see the work of other, uncommitted transactions.  MVCC means that, when a row is updated, the database stores both the old and new versions of the row.&lt;br&gt;----------------------------------------------------------------------------------------------&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/7548166793208182066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/02/some-useful-quotes_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7548166793208182066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7548166793208182066'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/02/some-useful-quotes_22.html' title='Some Useful Quotes'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-2990109377975867130</id><published>2011-02-08T14:31:00.000+05:30</published><updated>2013-04-17T15:04:14.890+05:30</updated><title type='text'>todays quote</title><content type='html'>&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Block Size:&lt;/b&gt;&lt;br&gt;The block size specifies size, that the file system, will use to Read and Write data. Larger block sizes will help improve disk I/O performance when using large files, such as Databases.&lt;br&gt;Mostly of size 1024, need to be 4096 for bigger file support like in database server case.&lt;br&gt;&lt;br&gt;Block Size: Different Terms&lt;br&gt;1: Hardware Block Size = Sector Size&lt;br&gt;2: File System Block Size = Block Size&lt;br&gt;3: Kernel Buffer Block Size = Block Size&lt;br&gt;4: Partition Table Block Size = Cylinder Size&lt;br&gt;----------------------------------------------------------------------------------------------------------------------------------------------------&lt;br&gt;MyISAM tables support concurrent inserts. If a MyISAM table has no holes in the middle resulting from deleted or updated records, inserts always take place at the end of the table and can be performed while other clients are reading the table. Concurrent inserts can take place even for a table that has been read-locked explicitly if the locking client acquired a READ LOCAL lock rather than a regular READ lock. If a table does have holes, concurrent inserts cannot be performed. However, you can remove the holes by using OPTIMIZE TABLE to defragment the table.&lt;br&gt;----------------------------------------------------------------------------------------------------------------------------------------------------&lt;br&gt;Clustered Index: Clustered index physically rearrange the data that users inserts in your tables. It is nothing but a dictionary type data where actual data remains. &lt;br&gt;Non-Clustered Index: It Non-Clustered Index contains pointers to the data that is stored in the data page. It is a kind of index backside of the book where you see only the reference of a kind of data.&lt;br&gt;----------------------------------------------------------------------------------------------------------------------------------------------------&lt;br&gt;&lt;br&gt;To change the default size limit for MyISAM tables, set the myisam_data_pointer_size, which sets the number of bytes used for internal row pointers. The value is used to set the pointer size for new tables if you do not specify the MAX_ROWS option. The value of myisam_data_pointer_size can be from 2 to 7. A value of 4 permits tables up to 4GB; a value of 6 permits tables up to 256TB.&lt;br&gt;&lt;br&gt;You can check the maximum data and index sizes by using this statement:&lt;br&gt;&lt;br&gt;SHOW TABLE STATUS FROM db_name LIKE &#39;tbl_name&#39;;&lt;br&gt;----------------------------------------------------------------------------------------------------------------------------------------------------&lt;br&gt;&lt;br&gt;Both InnoDB and PostgreSQL - as well as many other databases - use a technique called multi-version concurrency control (MVCC) to provide transaction isolation: transactions should not see the work of other, uncommitted transactions.  MVCC means that, when a row is updated, the database stores both the old and new versions of the row.&lt;br&gt;----------------------------------------------------------------------------------------------------------------------------------------------------&lt;br&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/2990109377975867130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/02/todays-quote.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2990109377975867130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2990109377975867130'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/02/todays-quote.html' title='todays quote'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-1228740698510969407</id><published>2011-01-24T11:36:00.000+05:30</published><updated>2013-04-17T15:00:59.668+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="system admin"/><title type='text'>Purge Bin_Logs, Save Disk Space - Mysql</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;h3 align=&quot;left&quot;&gt;&lt;span dir=&quot;ltr&quot;&gt;Purge Bin_Logs Save Disk Space&lt;/span&gt;&lt;/h3&gt;&lt;br/&gt;Oftenly i meet with a question in mysql that, &quot;How can I remove old mysql-bin log file in log directory?&quot;&lt;br/&gt;&lt;br/&gt;So here is the way... sort, good and practically proved.&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;There is two way to purge the bin-logs&lt;br/&gt;1: Automatic way&lt;br/&gt;2: Manually way, and (May be next step in-case.)&lt;br/&gt;&lt;br/&gt;To purge bin-logs automatic, you can add a &quot;expire_logs_days&quot; Variable in my.cnf during the configuration of replication server.&lt;br/&gt;&lt;br/&gt;&lt;span&gt;expire_logs_days = 7&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;It will purged binary logs older than 7 days.The old logs will be purged during the next bin-log switch&lt;br/&gt;&lt;br/&gt;Now one condition, if you have deleted some binary logs earlier manually and hasn&#39;t updated the &quot;.index&quot; file, then you have to run the  below MySQL query.&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;Note:&lt;/b&gt;&lt;/span&gt; The &quot;expire_logs_days&quot; settings won&#39;t work if you have already deleted some bin logs manually.&lt;br/&gt;It will always tries to find the old deleted bin logs, unless you manually update the index file and delete the binlogs file name which is deleted.&lt;br/&gt;&lt;br/&gt;# mysqladmin -u root -p  flush-logs&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;OR&lt;/b&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;mysql&amp;gt; show slave status \G&lt;br/&gt;check here for current &quot;Master_Log_File&quot;&lt;br/&gt;&lt;br/&gt;Like this:&lt;br/&gt;Slave_IO_State: Waiting for master to send event&lt;br/&gt;Master_Host: xxx.xxx.xxx.xx (IP of master server)&lt;br/&gt;Master_User: repl&lt;br/&gt;Master_Port: 3306&lt;br/&gt;Connect_Retry: 60&lt;br/&gt;&lt;b&gt; Master_Log_File: mysqlcluster1-bin.000233&lt;/b&gt;&lt;br/&gt;Read_Master_Log_Pos: 929859308&lt;br/&gt;Relay_Log_File: mysql-repl-lb-relay-bin.000050&lt;br/&gt;Relay_Log_Pos: 929859453&lt;br/&gt;Relay_Master_Log_File: mysqlcluster1-bin.000233&lt;br/&gt;Slave_IO_Running: Yes&lt;br/&gt;Slave_SQL_Running: Yes&lt;br/&gt;Replicate_Do_DB:&lt;br/&gt;&lt;br/&gt;goto in data dir of mysql slave:&lt;br/&gt;&lt;br/&gt;ls -lht on the bases of this:  Run the below&lt;br/&gt;&lt;br/&gt;mysql&amp;gt; PURGE BINARY LOGS BEFORE &#39;2010-02-27 11:02:30&#39;;&lt;br/&gt;&lt;br/&gt;but before you purge please make sure that slave is on sync with master or confirm the current status from slaves and also confirm that, you are leaving 2-3 days bin-logs on server.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/1228740698510969407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/01/purge-binlogs-save-disk-space-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/1228740698510969407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/1228740698510969407'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/01/purge-binlogs-save-disk-space-mysql.html' title='Purge Bin_Logs, Save Disk Space - Mysql'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-7251551397300892994</id><published>2011-01-21T00:33:00.000+05:30</published><updated>2013-04-17T15:00:59.673+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><title type='text'>Block Proxied IPs From Apache</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;Few days back i was fighting with a issue.. some one leached our website and showing my website contents on his domain.&lt;br/&gt;Now my seniors start worrying about their product, and it was obvious.&lt;br/&gt;I started digging out some methods.. and started playing with some settings.. like&lt;br/&gt;some apache directives..&lt;/div&gt;&lt;br/&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div dir=&quot;ltr&quot;&gt;Order Deny,Allow&lt;br/&gt;Deny from&lt;br/&gt;Didn&#39;t worked...&lt;br/&gt;My websites are Akamaied, so the real IPs i did not able to get...So at end i decided to get Real IPs (Actual IPs  -  True Client IP)So at first i tried, i should get the actual IP who was hitting  by enabling access log .&lt;br/&gt;&lt;br/&gt;Here is some settings to get the log in Virtual Host.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;LogFormat &quot;%{True-Client-IP}i \&quot;%r\&quot; \&quot;%{Referer}i\&quot;&quot; combined&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;CustomLog &quot;|/usr/local/sbin/cronolog /usr/local/apache2/logs/domain.com-access-%d.log&quot; combined&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;# &lt;span&gt;tail -f /usr/local/apache2/logs/domain.com-access-20.log | grep  &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;After getting the IP in access log for culprit domain, added that IP in a file, called in my case host.deny under&lt;br/&gt;/usr/local/apache2/conf/&lt;br/&gt;&lt;br/&gt;and in vhost conf, some more entries i made&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;RewriteEngine On&lt;/b&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;RewriteMap hosts-deny txt:/usr/local/apache2/conf/host.deny&lt;/b&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;RewriteCond ${hosts-deny:%{HTTP:True-Client-IP}|NOT-FOUND} !=NOT-FOUND&lt;/b&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;RewriteRule ^/.* - [R=401,L]&lt;/b&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;So final configuration is here:&lt;br/&gt;&lt;span&gt;ServerAdmin manish.singh@domain.com&lt;/span&gt;&lt;br/&gt;&lt;span&gt;DocumentRoot /var/www/web/html/&lt;/span&gt;&lt;br/&gt;&lt;span&gt;ServerName domain.com&lt;/span&gt;&lt;br/&gt;&lt;span&gt;RewriteEngine On&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;LogFormat &quot;%{True-Client-IP}i %l %u %t \&quot;%r\&quot; %&amp;gt;s %b \&quot;%{Referer}i\&quot; \&quot;%V\&quot; \&quot;%{User-Agent}i\&quot;&quot; combined&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;CustomLog &quot;|/usr/local/sbin/cronolog /usr/local/apache2/logs/domain.com-access-%d.log&quot; combined&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;RewriteMap hosts-deny txt:/usr/local/apache2/conf/host.deny&lt;/span&gt;&lt;br/&gt;&lt;span&gt;RewriteCond ${hosts-deny:%{HTTP:True-Client-IP}|NOT-FOUND} !=NOT-FOUND&lt;/span&gt;&lt;br/&gt;&lt;span&gt;RewriteRule ^/.* - [F,L]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;So what these blue lines doing here?&lt;br/&gt;&lt;span&gt;RewriteMap hosts-deny txt:/usr/local/apache2/conf/host.deny  &lt;/span&gt;(RewriteMap Tells Apache to read a source file of type Text File)&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;RewriteCond ${hosts-deny:%{HTTP:True-Client-IP}|NOT-FOUND} !=NOT-FOUND   &lt;/span&gt;(RewriteCond tells Apache, this is the condition, read parameter from hosts-deny and meet the condition)&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Third line tell Apache, if the above condition meets, the Access Denied the request.&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;Now your time to test the above at your end.&lt;span&gt; &lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/7251551397300892994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/01/block-proxied-ips-from-apache_21.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7251551397300892994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7251551397300892994'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2011/01/block-proxied-ips-from-apache_21.html' title='Block Proxied IPs From Apache'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-2255340653470567441</id><published>2010-11-27T22:34:00.000+05:30</published><updated>2013-04-17T15:00:59.679+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><title type='text'>PostgreSql Backup Script - Bash</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;If you are one who is using PostgreSql as your Back-end Database Server for your work, then obviously you need a backup solution, so here this is my try for a small solution for Automated Backup Job in  Bash Shell Script.&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;b&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;br/&gt;&lt;span&gt;DIR=/data/backups/db_backup/&lt;/span&gt;&lt;br/&gt;&lt;span&gt;DT=`date +%Y-%m-%d`&lt;/span&gt;&lt;br/&gt;&lt;span&gt;mkdir $DIR/$DT&lt;/span&gt;&lt;br/&gt;&lt;span&gt;[ ! $DIR ] &amp;amp;&amp;amp; mkdir -p $DIR || :&lt;/span&gt;&lt;br/&gt;&lt;span&gt;LIST=$(psql -l | awk &#39;{ print $1}&#39; | grep -vE &#39;^-|^List|^Name|template[0|1]|^\(&#39;)&lt;/span&gt;&lt;br/&gt;&lt;span&gt;for d in $LIST&lt;/span&gt;&lt;br/&gt;&lt;span&gt;do&lt;/span&gt;&lt;br/&gt;&lt;span&gt;  pg_dump $d | gzip -c &amp;gt;  $DIR/$DT/$d.gz&lt;/span&gt;&lt;br/&gt;&lt;span&gt;done&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;Hope this works for you.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Note: &lt;/b&gt;If you have compiled your postgresql from source and installed in a different directory, then you may need to SET path for &quot;Bin&quot;  directory of postgresql  in Environment Variables.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/2255340653470567441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/11/postgresql-backup-script-bash.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2255340653470567441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2255340653470567441'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/11/postgresql-backup-script-bash.html' title='PostgreSql Backup Script - Bash'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-7293209993722903187</id><published>2010-11-21T21:53:00.000+05:30</published><updated>2013-04-17T15:00:59.708+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><title type='text'>Read Only User In Postgresql</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;Read only users in databases servers are frequently required, and generally  the method to create such user in different Database servers are very well known, such like in Mysql, Oracle, MSSQL etc...&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;But making a read only user in Postgresql is bit different, so here is a short and smart way.&lt;br/&gt;&lt;br/&gt;DB name is &quot;mydb&quot; (i am taking a DB name as mydb)&lt;br/&gt;&lt;br/&gt;So just login with Postgres user and DB name on which you want to set read-only permission.&lt;br/&gt;&lt;br/&gt;# psql -U postgres mydb&lt;br/&gt;&lt;br/&gt;&lt;b&gt;#####Revoke default permissions from public group############&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;mydb=# REVOKE CREATE ON SCHEMA public FROM PUBLIC;&lt;br/&gt;&lt;br/&gt;mydb=# REVOKE USAGE ON SCHEMA public FROM PUBLIC;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;#####  Add back permissions for your database owner  ############&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;mydb=# GRANT CREATE ON SCHEMA public TO readwriteuser;&lt;br/&gt;&lt;br/&gt;mydb=# GRANT USAGE ON SCHEMA public TO readwriteuser;&lt;br/&gt;&lt;br/&gt;mydb=# \q&lt;br/&gt;&lt;br/&gt;&lt;b&gt;##### Now create a unprivileged User   ######&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;psql -U postgres -t -c &quot;create role readonlyuser password &#39;abc123&#39; NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;&lt;br/&gt;mydb=# GRANT USAGE ON SCHEMA public TO readonlyuser;&lt;br/&gt;&lt;br/&gt;mydb=# \q&lt;br/&gt;&lt;br/&gt;# &lt;b&gt;psql -U postgres -qAt -c &quot;select &#39;grant select on &#39; || tablename || &#39; to \&quot;readonlyuser\&quot;;&#39; from pg_tables where schemaname = &#39;public&#39;&quot; mydb| psql -U postgres mydb&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;mydb=# select * from pg_namespace where nspname=&#39;public&#39;;&lt;br/&gt;(Result below:)&lt;br/&gt;&lt;span&gt;nspname | nspowner | nspacl&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;---------+----------+------------------------------------------------------------------&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;public     | 10        | {postgres=UC/postgres,mydbuser=UC/postgres,mydbuser_ro=U/postgres}&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Now test the &quot;readonlyuser&quot;  by creating a table in database mydb&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;# psql -U readonly mydb&lt;br/&gt;&lt;br/&gt;mydb=#  CREATE TABLE films (&lt;br/&gt;code        char(5) CONSTRAINT firstkey PRIMARY KEY,&lt;br/&gt;title       varchar(40) NOT NULL,&lt;br/&gt;did         integer NOT NULL,&lt;br/&gt;date_prod   date,&lt;br/&gt;kind        varchar(10),&lt;br/&gt;len         interval hour to minute&lt;br/&gt;);&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;ERROR:  permission denied for schema public&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;Above you can see that now &quot;readonlyuser&quot; is now not able to create a table even....  It can only perform &quot;SELECT&quot; statements.&lt;br/&gt;&lt;br/&gt;Note:  These above is just for a specified schema, if you have created a different schema by other name, then change the settings accordingly.&lt;br/&gt;&lt;br/&gt;Now Restrict the readonlyuser from pg_hba.conf&lt;br/&gt;&lt;br/&gt;add the below line in &lt;b&gt;pg_hba.conf&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;host    mydb    readonlyuser      192.168.23.72/32          trust&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;By this, a extra level of security you can force.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/7293209993722903187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/11/read-only-user-in-postgresql_21.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7293209993722903187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7293209993722903187'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/11/read-only-user-in-postgresql_21.html' title='Read Only User In Postgresql'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-6174313277007923732</id><published>2010-11-20T13:00:00.000+05:30</published><updated>2013-04-17T15:00:59.713+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><title type='text'>Comparing MySQL and Postgres 9.0 Replication</title><content type='html'>&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;Hi,&lt;br&gt;&lt;br&gt;As this post is not mine... but i am glad to share this post with every one.&lt;br&gt;This one is amazing about mysql vs postgresql replication way.&lt;br&gt;&lt;br&gt;Click below Link:&lt;br&gt;&lt;a href=&quot;http://www.theserverside.com/feature/Comparing-MySQL-and-Postgres-90-Replication?goback=.gde_77585_member_35438207&quot;&gt;&lt;span&gt;&lt;b&gt;Comparing MySQL and Postgres 9.0 Replication&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/6174313277007923732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/11/comparing-mysql-and-postgres-90_20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/6174313277007923732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/6174313277007923732'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/11/comparing-mysql-and-postgres-90_20.html' title='Comparing MySQL and Postgres 9.0 Replication'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-2191288299235646266</id><published>2010-10-14T01:18:00.000+05:30</published><updated>2013-04-17T15:51:52.643+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="pgsql"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="replication"/><category scheme="http://www.blogger.com/atom/ns#" term="steaming replication"/><title type='text'>Postgresql 9.0 Replication - Step by Step</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Postgresql 9.0 Streaming Replication - A Big Competition &amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;Now Postgresql 9.0 has come with in-built replication features.&amp;nbsp;&lt;b&gt; NOW A BIG COMPETITOR FOR MYSQL&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;This method for those who wants to satisfy them by implementing Asynchronous mode of replicationWho wants Synchronous method, and then have to wait for 9.1 to come in existence.I tried to build a Postgresql Master-Slave replication system with new feature “Streaming Replication (SR)”, and this I have to say, this is very easy and stable method for asynchronous method for replication.While building the SR, I felt, this type of SR is like Mysql Master-slave replication,&amp;nbsp; Slaves are getting updates from master from log files (binlog in cas e of mysql and xlog in postgres)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The above statement can be taken as rough idea when comparing&amp;nbsp; Mysql and Postgresql replication method&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Steps Included:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Download and build, install Postgresql from source.&lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Initialize database on master&lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Some tweaks in postgresql.conf (On Master)&lt;br /&gt;&lt;br /&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start backup mode on master&lt;br /&gt;&lt;br /&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Take snapshot of Data (/usr/local/postgres/data) directory on master&lt;br /&gt;&lt;br /&gt;6.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sync snapshot to slave and remove postmaster.pid&amp;nbsp; on slave&lt;br /&gt;&lt;br /&gt;7.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Some tweaks in postgresql.conf and recovery.conf (On Slaves)&lt;br /&gt;&lt;br /&gt;8.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; At end start the Database on Master and slave &lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Download the Database:&amp;nbsp; (On Master)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# wget &lt;a href=&quot;http://wwwmaster.postgresql.org/redir/198/h/source/v9.0.0/postgresql-9.0.0.tar.bz2&quot;&gt;http://wwwmaster.postgresql.org/redir/198/h/source/v9.0.0/postgresql-9.0.0.tar.bz2&lt;/a&gt; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# tar xzf postgresql-9.0.0.tar.bz2&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;If you have fresh CentOS/other linux version, then maybe you have to download and install &amp;nbsp;required packages…&amp;nbsp; In my case I am Using CentOS 5.3 64 Bit&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;i&gt;Run the below command as “ROOT”&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# yum install -y glibc gcc libtermcap-devel readline-devel zlib-devel&lt;br /&gt;# useradd postgres&lt;br /&gt;# chown –R postgres:postgres postgresql-9.0.0&lt;br /&gt;# su – postgres&lt;br /&gt;# cd postgresql-9.0.0&amp;nbsp; (extracted directory)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Run the following command to compile and install Postgresql&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# ./configure –prefix=/usr/local/postgres –with-perl&lt;br /&gt;# gmake&lt;br /&gt;# su –&lt;br /&gt;# gmake install&lt;br /&gt;# chown -R postgres:postgres /usr/local/postgres&lt;br /&gt;# mkdir /usr/local/postgres/data&lt;br /&gt;# chown postgres /usr/local/postgres/data&lt;br /&gt;# su&amp;nbsp; - postgres&lt;br /&gt;# /usr/local/postgres/bin/initdb -D /usr/local/postgres/data&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;After the initializing the data directory, we have to tweak---&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;“/usr/local/postgres/data/postgresql.conf“ file&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;i&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;I am showing you required things only&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;listen_addresses = &#39;*&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;max_connections = 500&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;shared_buffers = 32MB&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;wal_level = hot_standby&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;archive_mode = on&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;archive_command = &#39;cp %p /usr/local/postgres/data/pg_xlogarch/%f&#39;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;max_wal_senders = 1&amp;nbsp;&amp;nbsp;&amp;nbsp; ####( this setting for&amp;nbsp; 1 slave can connect with Master)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;wal_keep_segments = 32&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;datestyle = &#39;iso, mdy&#39;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;lc_messages = &#39;en_US.UTF-8&#39;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;lc_monetary = &#39;en_US.UTF-8&#39;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;lc_numeric = &#39;en_US.UTF-8&#39;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;lc_time = &#39;en_US.UTF-8&#39;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;default_text_search_config = &#39;pg_catalog.english&#39;&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# mkdir&amp;nbsp; /usr/local/postgres/data/pg_xlogarch/&lt;br /&gt;# su – postgres&lt;br /&gt;# cd /usr/local/postgres/&lt;br /&gt;# vi data/pg_hba.conf (add the below line) &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;host&amp;nbsp;&amp;nbsp;&amp;nbsp; replication&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;all&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 172.32.1.2/32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trust&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Now start the Database Instance on Master:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;As user postgres&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;

&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# /usr/local/postgres/bin/pg_ctl -D /usr/local/postgres/data -l logfile start&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;

&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;After starting the database Instance, start the backup mode on DB Master&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;

&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# cd/usr/local/postgres/bin/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# ./psql –c &quot;SELECT pg_start_backup(&#39;initial backup for SR&#39;)&quot; &lt;/b&gt;= database name for which you want replication&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;

&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# cd /usr/local/postgres/&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# tar &amp;nbsp;-czf data.tar.gz &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Exit from Backup mode&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# /usr/local/postgres/bin/psql –c &quot;SELECT pg_stop_backup()&quot;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# rsync –avz &amp;nbsp;data.tar.gz postgres@172.32.1.2:/usr/local&lt;/b&gt;/postgrsql/&amp;nbsp; (run this command after the slave’s Postgresql installation)&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;

&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;On SLAVE:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Same as master download and install Postgresql on slave&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Just do not initialize the database:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;As user Postgres&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# cd&amp;nbsp; /usr/local/postgrsql&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# tar xzf data.tar.gz&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# chown –R postgres:postgres &amp;nbsp;/usr/local/postgres/data/pg_xlogarch&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# cd data&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# rm –rf postmaster.pid&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# vi &amp;nbsp;/usr/local/postgrsql/data/Postgresql.conf&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;In short:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;listen_addresses = &#39;*&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Which IP address(es) to listen on&lt;br /&gt;max_connections = 500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # (change requires restart)shared_buffers = 32MB&amp;nbsp;&amp;nbsp;&amp;nbsp; #min 128kB&lt;br /&gt;hot_standby = ondatestyle = &#39;iso, mdy&#39;lc_messages = &#39;en_US.UTF-8&#39;&amp;nbsp;&amp;nbsp; # locale for system error message&lt;br /&gt;lc_monetary = &#39;en_US.UTF-8&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # locale for monetary formatting&lt;br /&gt;lc_numeric = &#39;en_US.UTF-8&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # locale for number formatting&lt;br /&gt;lc_time = &#39;en_US.UTF-8&#39;&amp;nbsp; # locale for time formatting&lt;br /&gt;default_text_search_config = &#39;pg_catalog.english&#39;&lt;/b&gt;&lt;/span&gt;
&lt;/blockquote&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Now create a “&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;recovery.conf&lt;/span&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;”&lt;/span&gt;&lt;/b&gt;&lt;b&gt; under /usr/local/postgres/data/ and put the below lines:&lt;/b&gt; (In Slave)&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;standby_mode = &#39;on&#39;&lt;br /&gt;primary_conninfo = &#39;host=172.32.1.1 port=5432 user=readonly&#39;&lt;br /&gt;restore_command = &#39;cp /usr/local/postgres/data/pg_xlog/%f&amp;nbsp; %p&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;That&#39;s it we are done with configurations.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Start the database instance on slave machine&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;# /usr/local/postgres/bin/pg_ctl -D /usr/local/postgres/data -l logfile start&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;If all goes well, the on master, you will see like this on Master:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;LOG: replication connection authorized: user=readonly host=172.32.1.2 port=55811&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;And on slave’s log file (logfile)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;LOG: streaming replication successfully connected to primary&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;If fails, check &quot;logfile&quot; and send me error (if in case you feel so)&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;New Addition:&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;If you want to check, which pgsql server is Master or Slave, then run this command:&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;#&amp;nbsp; /usr/local/postgres/bin/pg_controldata /usr/local/postgres/data/&amp;nbsp;&lt;/b&gt;&amp;nbsp; (running on Master)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;pg_control version number:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 903&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Catalog version number:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201008051&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Database system identifier:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5572911747953590263&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Database cluster state:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in production&lt;/b&gt;&amp;nbsp;&lt;b&gt; (This shows, it is master server)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;pg_control last modified:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fri 06 May 2011 05:09:20 PM IST&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Latest checkpoint location:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/97482E60&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;............&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;On Slave:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Same Line will show as:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Database cluster state:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in archive recovery&lt;/b&gt;&lt;b&gt;You can also use below one: to check &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Slave Status:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Postgres=# select pg_last_xlog_replay_location();&lt;br /&gt;&amp;nbsp;pg_last_xlog_replay_location &lt;br /&gt;------------------------------&lt;br /&gt;&amp;nbsp;7B/35F312B0&lt;br /&gt;(1 row) &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;isten_addresses = &#39;*&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # what IP address(es) to listen on;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;max_connections = 500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # (change requires restart)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;shared_buffers = 32MB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # min 128kB&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;hot_standby = on&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;datestyle = &#39;iso, mdy&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;lc_messages = &#39;en_US.UTF-8&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # locale for system error message&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;lc_monetary = &#39;en_US.UTF-8&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # locale for monetary formatting&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;lc_numeric = &#39;en_US.UTF-8&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # locale for number formatting&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;lc_time = &#39;en_US.UTF-8&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # locale for time formatting&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/2191288299235646266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/10/postgresql-90-replication-step-by-step.html#comment-form' title='26 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2191288299235646266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2191288299235646266'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/10/postgresql-90-replication-step-by-step.html' title='Postgresql 9.0 Replication - Step by Step'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>26</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-6538579376695067168</id><published>2010-10-14T01:16:00.000+05:30</published><updated>2013-04-17T15:00:59.846+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="linux commands"/><category scheme="http://www.blogger.com/atom/ns#" term="system admin"/><title type='text'>Linux Commands - Not Usual</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span&gt;&lt;b&gt;Linux Command Tips&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;h3 align=&quot;left&quot;&gt;&lt;/h3&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;br/&gt;&lt;h3&gt;&lt;b&gt;&lt;span&gt;Check Validity of a Certificate File (PEM File) &lt;/span&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt; &lt;/b&gt;&lt;/h3&gt;&lt;br/&gt;&lt;h3 align=&quot;left&quot;&gt;&lt;b&gt;&lt;span&gt;# openssl x509 -in Certificates.pem -inform PEM -text -noout -enddate&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;&lt;br/&gt;&lt;h3 align=&quot;left&quot;&gt;&lt;b&gt;&lt;span&gt;   &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;&lt;br/&gt;&lt;h3 align=&quot;left&quot;&gt;&lt;b&gt;&lt;span&gt;    Certificate:&lt;br/&gt;Data:&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;&lt;br/&gt;Version: 3 (0x2)&lt;br/&gt;&lt;br/&gt;Serial Number:&lt;br/&gt;&lt;br/&gt;5b:84:3e:8f:d3:1e:fc:67&lt;br/&gt;&lt;br/&gt;Signature Algorithm: sha1WithRSAEncryption&lt;br/&gt;&lt;br/&gt;Issuer: C=US, O=Sabe Inc., OU=Sabe Relations, CN=Sabe Certification Authority&lt;br/&gt;&lt;br/&gt;Validity&lt;br/&gt;&lt;h3 align=&quot;left&quot;&gt;&lt;b&gt;&lt;span&gt;Not Before: Oct  1 11:56:10 2011 GMT&lt;/span&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;span&gt;Not After : Sep 30 11:56:10 2012 GMT&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;&lt;br/&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;Sometime Apache process, keeps on execution (Seems like Hangs), so generally trying to get the exact PHP file that is running by Apache Process, So here is my Try.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;I used Strace to get the opened files by the apache process.&lt;/span&gt; &lt;/span&gt;&lt;span&gt;(Get PID of &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;Apache process that is taking time, though you can also get it From top  command)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;# pstree -p -n | grep http&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;(This will show each files that is being processed by that Apache Proc)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;# strace -p &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;The list of files could also be get using lsof, but that could not be of full use, as you need the files continuusly  using by Apache Process&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;b&gt;&lt;span&gt;Create many Files Sequentially&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;&lt;span&gt;#&lt;/span&gt; &lt;/i&gt;&lt;/span&gt;seq -w 1 30 | xargs -i -t zcat in_Feb2011/in_Files-{}May2011.gz | grep -E &#39;name.html?secsid=3304847|name.html?secsid=30780899&#39; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;Delete Empty Directories&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;# find folder/ -type d -empty | xargs -i -t rm -rf {} &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;or &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;# find folder/ -type d -empty -delete &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;b&gt;&lt;span&gt;Tail, Vmstat and Date  in Loop, Output every 10 Sec&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;# vmstat 1 1;for ((;;));do date; vmstat 10 2 | tail -n1;done&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;Real Time Monitoring on Linux&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;# watch -n1 --difference &quot;echo &quot;Uptime&quot;; uptime; echo \n ; ps -eo pcpu,pid,args | sort -k 1 -r |grep -v watch | head -10; echo &quot;\n&quot; ; tail /var/log/cron | grep &quot;check_load&quot;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;Find files based and sorted on Size&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;# find / -type f -size +20000k -exec ls -lh {} \; 2&amp;gt; /dev/null | awk &#39;{ print $NF &quot;: &quot; $5 }&#39;  | sort -nrk 2,2&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;Check Memory Fault&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;# dd if=/dev/urandom bs=768304 of=/tmp/memtest count=1050&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;# md5sum /tmp/memtest; md5sum /tmp/memtest; md5sum /tmp/memtest&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;span&gt;Repair Mysql MYISAM File&lt;/span&gt;&lt;br/&gt;&lt;span&gt;# myisamchk --force --sort_buffer_size=64M --key_buffer_size=16M --read_buffer_size=8M --write_buffer_size=8M ../data/phplists/phplist_linktrack.MYI&lt;/span&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;DELETE mail Que from Qmail&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Steps:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# qmail stop&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# find /var/qmail/queue/mess -type f -exec rm {} \;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# find /var/qmail/queue/info -type f -exec rm {} \;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# find /var/qmail/queue/local -type f -exec rm {} \;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# find /var/qmail/queue/intd -type f -exec rm {} \;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# find /var/qmail/queue/todo -type f -exec rm {} \;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# find /var/qmail/queue/remote -type f -exec rm {} \;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# qmail start&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;span&gt;Display sorted process taking most CPU in descending order&lt;/span&gt;&lt;br/&gt;&lt;span&gt;# ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10&lt;/span&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Download FTP files Recursivly using ncftpget&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Syntax: &lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;ncftpget -R -v -u &quot;&quot; -p &quot; &quot;    &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# ncftpget -R -v -u &quot;ibnlive&quot; -p &quot;ibn123&quot; ftpserver /temp/ /www.domain.com/2009_Feb/*&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Command to make Services off in Defined Level on Linux&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# chkconfig --list | awk &#39;{print $1}&#39; | cut -d: -f1 | grep -vE &#39;^crond|^network|^sshd|^syslog|^iptables&#39; | awk &#39;{print $1}&#39; | while read line; do chkconfig  --level 3 $line off; count=`expr $count + 1`; echo $count $line;done&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;or Use this... One lineer&lt;/span&gt; &lt;span&gt; &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# &lt;/span&gt;chkconfig --list | awk &#39;{print $1}&#39;| &lt;span&gt;grep -vE &#39;^crond|^network|^sshd|^syslog|^iptables&#39; &lt;/span&gt;| xargs -i chkconfig --level 3 {} off&lt;/div&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Counting Hits from Web Server Access log&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;# awk &#39;{print $1}&#39; /opt/indian.com/access_log | grep -vE &#39;^:|^common|^-&#39; | sort | uniq -c | sort -nr &amp;gt; /var/www/reports/ips/indian.txt&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;or &lt;/span&gt; &lt;span&gt;# awk &#39;$1&amp;gt;10000 {print $1}&#39; /opt/indian.com/access_log | uniq -c | sort -nr  &amp;gt; /var/www/reports/ips/indian.txt&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;br/&gt;&lt;table border=&quot;2&quot;&gt;&lt;br/&gt;&lt;tbody&gt;&lt;br/&gt;&lt;tr&gt;&lt;br/&gt;&lt;td&gt;&lt;span&gt;PERL Search and Replace Text Pattern using Perl On linux Platform&lt;/span&gt;&lt;br/&gt;&lt;span&gt;# find . -type f -name &quot;*.html&quot; | xargs perl -pi~ -e &#39;s/\/js\/active18\//\/read\/js\/active18\//&#39;&lt;/span&gt;&lt;/td&gt;&lt;br/&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/tbody&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;&lt;span&gt;Killing processes in one Line&lt;/span&gt;&lt;br/&gt;&lt;span&gt;# kill -9 `ps -ef | grep rsync| grep -v grep| awk &#39;{print $2}&#39;`&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Check CPU Temperature &lt;/span&gt;&lt;br/&gt;&lt;span&gt;# echo `date +%b-%d-%H:%M:%S` | tr -d &#39;\ 012&#39; ; echo -n &#39; &#39;; sensors | awk &#39;/CPU Temp:/{ print $3 }&#39;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Check those commands which have been used most&lt;/span&gt;&lt;br/&gt;&lt;span&gt;# history|awk &#39;{print $2}&#39; |awk &#39;{print $1}&#39; | sort | uniq -c | sort -rn | head -10&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;span&gt;Mount / partition in &quot;Repair Mode&quot;&lt;/span&gt;&lt;/span&gt;&lt;code&gt; Repair filesystem &lt;/code&gt;&lt;br/&gt;&lt;code&gt;# mount -w -o remount /&lt;/code&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;span&gt;Free Memory  on Linux at Runtime&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;# sync&lt;br/&gt;&lt;div&gt;&lt;span&gt;# echo 3 &amp;gt; /proc/sys/vm/drop_caches &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/6538579376695067168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/10/linux-commands-not-usual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/6538579376695067168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/6538579376695067168'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/10/linux-commands-not-usual.html' title='Linux Commands - Not Usual'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-7453051758751133582</id><published>2010-10-14T01:15:00.001+05:30</published><updated>2013-04-17T15:00:59.894+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="system admin"/><category scheme="http://www.blogger.com/atom/ns#" term="virtualization"/><title type='text'>What is IaaS or Private Cloud ?</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;h3 align=&quot;left&quot;&gt;&lt;/h3&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;What is IaaS or Private Cloud? And why Enterprise should consider it?&lt;/b&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;The shortest definition could be. ‘&lt;i&gt;&lt;span&gt;Virtualization on top of an HPC&lt;/span&gt;’. &lt;/i&gt;Let’s define it like this. What do you think is the biggest limitation to virtualization?&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Its, the flexibility of scaling a virtual machine. The scaling will be always limited to the maximum resources available on one particular physical server. So for instanced if let’s say I have a server with 24 Cores and 32GB of Ram. I cannot have a virtual machine which can have more that or even equal to 24Cores and 32GB of RAM.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;But let’s say I have 50 such servers. So technically I have 1200 Cores and 1.6TB of RAM. But if for a day even I need a machine with let’s say 50 cores and 64GB of RAM. I can’t have it. I have to buy a new server which has more than 50 cores and 50GB of RAM and then either use it as a physical box or create a virtual machine accordingly on top of it.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;But with IaaS, what we do is that we first aggregate our entire datacenter as a single pool of resources and then start provisioning virtual machines on top of it. This is something like first creating a HPC (high performance computing) platform which integrates all our existing resources in one single pool. And then running a virtualization layer on top of it.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;Other &lt;b&gt;key benefits&lt;br/&gt;&lt;/b&gt;&lt;/b&gt;First, the redundancy is inbuilt. So you don’t have to bother about creating failsafe’s, etc. Second. It inherits the functionalities of a Public cloud architecture which makes it elastic in nature. By elastic I mean scaling up and down a virtual machine on-the-fly by adding or removing resources from the cloud pool and that to in an automatic manner and at a need basis. So for instance today a machine needs 15 cores instead of 3. My cloud infrastructure just finds 12 free cores from any server inside my datacenter and allocates it to the VM. And once the need is fulfilled, it releases back the 12 cores to the cloud pool so that they can be used by some other VM.&lt;/span&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;And third, is the most important benefit is. It gives us the flexibility to add resources from any supporting public cloud if my infrastructure is not able to fulfill a requirement. So, for instance when my VM wanted those 12 extra cores. My Private cloud was only able to find 10 free cores at that time, so it went to Amazon’s EC2 cloud and borrowed the rest of the 2 cores. Used it and when the requirement was fulfilled or 2 more cores were available in my private cloud, it just released the 2 cores back to Amazon. And you will be only charged by Amazon for those 2 cores for that duration of time when you actually used it. This is called a Hybrid Cloud.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/7453051758751133582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/10/what-is-iaas-or-private-cloud_14.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7453051758751133582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/7453051758751133582'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/10/what-is-iaas-or-private-cloud_14.html' title='What is IaaS or Private Cloud ?'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2047829934958115736.post-2819250373858735323</id><published>2010-10-14T01:15:00.000+05:30</published><updated>2013-04-17T15:00:59.852+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="system admin"/><title type='text'>Monitor File Activities - Using iWatch</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;h3 align=&quot;left&quot;&gt;&lt;span dir=&quot;ltr&quot;&gt;Monitor File Activities - &lt;/span&gt;&lt;span&gt;&lt;a href=&quot;http://iwatch.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;iWatch&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;br/&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;We frequently meet situation, like some files or directories that supposed to secure are having some operations on it, like read, open, close, write etc...&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;And many times people would like to have a monitoring tool to monitor files activities.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Here’s a solution for this, I got a tool “&lt;a href=&quot;http://iwatch.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;iWatch&lt;/a&gt;”, written in Perl and can also work in Daemon mode.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;This tool can be used as to monitor/detect unwanted manipulation on file system and report it to system admins.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;For installation this tool requires: &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Linux kernel Version &amp;gt;= 2.6.13&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Perl modules&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;§&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;Linux::Inotify2&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;§&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;Event&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;§&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;Mail::Sendmail&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;§&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;XML::Simple&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;These below are the syntax used by the iwatch:&lt;/b&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt; &lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;In the daemon mode, iWatch has following options:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Usage: iwatch [-d] [-f ] [-v] [-p ]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -d Execute the application as daemon.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -f &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Specify an alternate xml configuration file.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -p &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Specify an alternate pid file (default: /var/run/iwatch.pid)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -v Verbose mode.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;And in the command line mode:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Usage: iwatch [-c command] [-C charset] [-e event[,event[,..]]] [-h|--help] [-m ] &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;         [-r] [-s &amp;lt;on|off&amp;gt;] [-t ] [-v] [--version] [-x exception]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;         [-X ] &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  Target is the directory or file you want to monitor.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -c command&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Specify a command to be executed if an event occurs. And you can use&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     following special string format in the command:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       %c Event cookie number&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       %e Event name&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       %f Full path of the filename that gets an event.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       %F The old filename in case moved_to event.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       %p Program name (iWatch)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       %v Version number&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -C charset&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Specify the charset (default is utf-8)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -e event[,event[,..]]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Specify a list of events you want to watch. Following are the possible events you can use:&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       access        : file was accessed&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       modify        : file was modified&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       attrib        : file attributes changed&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       close_write   : file closed, after being opened in writeable mode&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       close_nowrite : file closed, after being opened in read-only mode&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       close         : file closed, regardless of read/write mode&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       open          : file was opened&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       moved_from    : File was moved away from.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       moved_to      : File was moved to.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       move          : a file/dir within watched directory was moved&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       create        : a file was created within watched directory&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       delete        : a file was deleted within watched directory&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       delete_self   : the watched file was deleted&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       unmount       : file system on which watched file exists was unmounted&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       q_overflow    : Event queued overflowed&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       ignored       : File was ignored&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       isdir         : event occurred against dir&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       oneshot       : only send event once&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       all_events    : All events&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;       default       : close_write, create, delete, move, delete_self and move_self.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -h, --help&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Print this help.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -m &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Specify the contact point&#39;s email address.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -r Recursivity of the watched directory.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -s &amp;lt;on|off&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Enable or disable reports to the syslog (default is off/disabled)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -t &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Specify a filter string (regex) to compare with the filename or directory name. &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -v verbose mode.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  --version&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Print the version number.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -x exception&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Specify the file or directory which should not be watched.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;  -X &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;     Specify a regex string as exception&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;And I have used this combination to monitor a Directory (in Recursive mode)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;Command: &lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span&gt;# iwatch -r -e access,modify -c &quot;ls -lht %f | awk &#39;{print \$3}&#39;|xargs  echo &#39;%f was changed by user&#39;&quot; &amp;gt;&amp;gt; /tmp/watched_files.txt -X /home/user1/error/ /home/user1 –d&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;OUTPUT in watched_files.txt&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[ 7/Sep/2010 14:26:59] IN_ACCESS /home/&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;user1&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;/button.php&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;/home/&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;user1&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;/fbutton.php was changed by user webuser&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[ 7/Sep/2010 14:27:09] IN_MODIFY /home/&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;user1&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;/button.php&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;/home/&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;user1&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;/fbutton.php was changed by user webuser&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;[ 7/Sep/2010 14:27:10] IN_MODIFY /home/user1/button.php&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;/home/&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;user1&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;/fbutton.php was changed by user webuser&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;And at the end, you can set a cron, to send mail to system administrator.&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;(I am setting cron that will run at 11:55 and send mails)&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;b&gt;&lt;span&gt;55 23 * * * /bin/mail -s &quot;Watched Files Activities for DAY `date +%d-%m-%Y`&quot; &quot;delhi.manish@gmail.com&quot; &amp;lt; &lt;i&gt;/tmp/watched_files.txt&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxhow-tos.blogspot.com/feeds/2819250373858735323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/10/monitor-file-activities-using-iwatch.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2819250373858735323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2047829934958115736/posts/default/2819250373858735323'/><link rel='alternate' type='text/html' href='http://linuxhow-tos.blogspot.com/2010/10/monitor-file-activities-using-iwatch.html' title='Monitor File Activities - Using iWatch'/><author><name>manish singh</name><uri>http://www.blogger.com/profile/01631053575099724221</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebu668fvoV1_7lgkVCQ0AsKCa1njakWKlgKNMCZbf1cPxGDeBtD39K1I-3biWHAVLDmHBzsMdw5VNRoQSnG-XwNsHu4A1duZPcIqnJYVAr7f7JrCyl8-e8vMKwVxUjG8/s220/manish.png'/></author><thr:total>11</thr:total></entry></feed>