Sunday, July 31, 2011

Install Reverse Proxy Using NGNIX

=====
Install Reverse Proxy Using NGNIX
=====

# yum -y groupremove "X Window System"
# x=$(yum list installed | egrep -i 'php|httpd|mysql|bind|dhclient|tftp|inetd|xinetd|ypserv|telnet-server|rsh-server|vsftpd|tcsh' | awk '{ print $1}')
# yum -y remove $x
# yum -y install bind-utils sysstat openssl-devel.x86_64 pcre-devel.x86_64 openssl097a.x86_64
# /usr/sbin/authconfig --passalgo=sha512 --update
# passwd root

# useradd nginx

# cd /opt
# wget http://sysoev.ru/nginx/nginx-0.8.33.tar.gz

# tar -zxvf nginx-0.8.33.tar.gz
# cd nginx-0.8.33

For with out ssl

# ./configure --without-http_autoindex_module --without-http_ssi_module --without-http_userid_module --without-http_auth_basic_module --without-http_geo_module --without-http_fastcgi_module --without-http_empty_gif_module --with-openssl=/lib64

=====For ssl ====

./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin --with-debug --with-http_ssl_module --without-http_autoindex_module --without-http_ssi_module --without-http_userid_module --without-http_auth_basic_module --without-http_geo_module --without-http_fastcgi_module --without-http_empty_gif_module

====

Sample outputs:

======

....

nginx path prefix: "/usr/local/nginx"

nginx binary file: "/usr/local/nginx/sbin/nginx"

nginx configuration prefix: "/usr/local/nginx/conf"

nginx configuration file: "/usr/local/nginx/conf/nginx.conf"

nginx pid file: "/usr/local/nginx/logs/nginx.pid"

nginx error log file: "/usr/local/nginx/logs/error.log"

nginx http access log file: "/usr/local/nginx/logs/access.log"

nginx http client request body temporary files: "client_body_temp"

nginx http proxy temporary files: "proxy_temp"

nginx http fastcgi temporary files: "fastcgi_temp"

...

# make
# make install

#cd /usr/local/nginx/conf

#mv –rp nginx.conf nginx.conf.org

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

[root@revproxy conf]# vi nginx.conf

pid logs/nginx.pid;

user nginx nginx;

worker_processes 10;


events {

worker_connections 1024;

}


http {

default_type application/octet-stream;


## Common options ##

include options.conf;


## Proxy settings ##

include proxy.conf;


## lb domains ##

include domain.net.conf;

}


# root@revproxy conf]# vi options.conf

## Size Limits

client_body_buffer_size 128K;

client_header_buffer_size 1M;

client_max_body_size 1M;

large_client_header_buffers 8 8k;


## Timeouts

client_body_timeout 60;

client_header_timeout 60;

expires 24h;

keepalive_timeout 60 60;

send_timeout 60;


## General Options

ignore_invalid_headers on;

keepalive_requests 100;

limit_zone gulag $binary_remote_addr 5m;

recursive_error_pages on;

sendfile on;

server_name_in_redirect off;

server_tokens off;


## TCP options

tcp_nodelay on;

tcp_nopush on;


## Compression

gzip on;

gzip_buffers 16 8k;

gzip_comp_level 6;

gzip_http_version 1.0;

gzip_min_length 0;

gzip_types text/plain text/css image/x-icon application/x-perl application/x-httpd-cgi;

gzip_vary on;

## Log Format

log_format main '$remote_addr $host $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" "$http_user_agent" '

'"$gzip_ratio"';

[root@revproxy conf]# vi proxy.conf

## Proxy caching options

proxy_buffering on;

proxy_cache_min_uses 3;

proxy_cache_path /usr/local/nginx/proxy_temp/ levels=1:2 keys_zone=cache:10m inactive=10m max_size=1000M;

proxy_cache_valid any 10m;

proxy_ignore_client_abort off;

proxy_intercept_errors on;

proxy_next_upstream error timeout invalid_header;

proxy_redirect off;

proxy_set_header X-Forwarded-For $remote_addr;

proxy_connect_timeout 60;

proxy_send_timeout 60;

proxy_read_timeout 60;

[root@revproxy conf]# vi domain.net.conf

## Connect to backend servers via LAN ##

## Reverse Proxy Load Balancer Logic ##

upstream domain {

server 192.168.26.39 weight=10 max_fails=3 fail_timeout=30s;

server 192.168.26.42 weight=10 max_fails=3 fail_timeout=30s;

# only comes alive when above two fails

server 192.168.1.23 weight=1 backup;

}


server {

access_log logs/access.log main;

error_log logs/error.log;

index index.html;

root /usr/local/nginx/html;

server_name subdomain.domain.net www.subdomain.domain.net;


## Only requests to our Host are allowed

if ($host !~ ^(subdomain.domain.net|www.subdomain.domain.net)$ ) {

return 444;

}


## redirect www to nowww

# if ($host = 'www.subdomain.domain.net' ) {

# rewrite ^/(.*)$ http://subdomain.domain.net/$1 permanent;

# }


## Only allow these request methods

if ($request_method !~ ^(GET|HEAD|POST)$ ) {

return 444;

}


## PROXY - Web

location / {

proxy_pass http://192.168.26.39;

proxy_cache cache;

proxy_cache_valid 200 24h;

proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;

proxy_ignore_headers Expires Cache-Control;


proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

# redirect server error pages to the static page /50x.html

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}


server {

access_log logs/access.log main;

error_log logs/error.log;

index index.html;

root /usr/local/nginx/html;

server_name revpro3.domain.net www.subdomain.domain.net.net;


## Only requests to our Host are allowed

if ($host !~ ^(subdomain.domain.net|www.subdomain.domain.net)$ ) {

return 444;

}


## redirect www to nowww

# if ($host = 'www.subdomain.domain.net' ) {

# rewrite ^/(.*)$ http://subdomain.domain.net/$1 permanent;

# }


## Only allow these request methods

if ($request_method !~ ^(GET|HEAD|POST)$ ) {

return 444;

}

# redirect server error pages to the static page /50x.html

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}



server {

### server port and name ###

listen 443;

server_name subdomain.domain.net;


### SSL log files ###

access_log logs/ssl-access.log;

error_log logs/ssl-error.log;


### SSL cert files ###

ssl on;

ssl_certificate ssl/star_domain_com.crt;

ssl_certificate_key ssl/domain.com.key;

### Add SSL specific settings here ###

keepalive_timeout 60;


### Limiting Ciphers ########################

# Uncomment as per your setup

#ssl_ciphers HIGH:!ADH;

#ssl_perfer_server_ciphers on;

#ssl_protocols SSLv3;

##############################################

### We want full access to SSL via backend ###

location / {

proxy_pass https://192.168.26.48;

### force timeouts if one of backend is died ##

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;


### Set headers ####

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


### Most PHP, Python, Rails, Java App can use this header ###

proxy_set_header X-Forwarded-Proto https;



## PROXY - Web

location / {

proxy_pass http://192.168.26.42;

proxy_cache cache;

proxy_cache_valid 200 24h;

proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;

proxy_ignore_headers Expires Cache-Control;


proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

server {

### server port and name ###

listen 443;

server_name subdomain.domain.net;


### SSL log files ###

access_log logs/ssl-access.log;

error_log logs/ssl-error.log;


### SSL cert files ###

ssl on;

ssl_certificate ssl/subdomain.domain.net;

ssl_certificate_key ssl/subdomain.domain.net.key;

### Add SSL specific settings here ###

keepalive_timeout 60;


### Limiting Ciphers ########################

# Uncomment as per your setup

#ssl_ciphers HIGH:!ADH;

#ssl_perfer_server_ciphers on;

#ssl_protocols SSLv3;

##############################################

### We want full access to SSL via backend ###

location / {

proxy_pass https://192.168.26.46;

### force timeouts if one of backend is died ##

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;


### Set headers ####

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


### Most PHP, Python, Rails, Java App can use this header ###

proxy_set_header X-Forwarded-Proto https;


### By default we don't want to redirect it ####

proxy_redirect off;

}

}


# /usr/local/sbin/nginx –t test conffile

# /usr/local/sbin/nginx -s reload

# /usr/local/sbin/nginx

# pkill -9 nginx

# /usr/local/sbin/nginx


# /usr/local/nginx/sbin/nginx
# netstat -tulpn | grep :80
# echo ' /usr/local/nginx/sbin/nginx' >> /etc/rc.local



Keelpalivd

# cd /opt
# wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz
# tar -zxvf keepalived-1.1.19.tar.gz
# cd keepalived-1.1.19

# yum -y install kernel-headers kernel-devel

388 ./configure --with-kernel-dir=/lib/modules/$(uname -r)/build

389 make && make install

390 cd /etc/sysconfig

391 ln -s /usr/local/etc/sysconfig/keepalived .

392 cd /etc/rc3.d/

393 ln -s /usr/local/etc/rc.d/init.d/keepalived S100keepalived

394 cd /etc/init.d/

395 ln -s /usr/local/etc/rc.d/init.d/keepalived .

396 cd /usr/local/etc/keepalived

397 cp keepalived.conf keepalived.conf.bak

vi keepalived.conf

vrrp_instance VI_1 {

interface eth0

state MASTER

virtual_router_id 51

priority 101 --- should set 100 in lb1(second failover mechine)

authentication {

auth_type PASS

auth_pass Add-Your-Password-Here

}

virtual_ipaddress {

192.168.26.47 dev eth0:1

}

}


Wednesday, July 27, 2011

Openfire/spark Java Memory Issue.

Increased memory usage.
[root@XXXX ~]#touch /tmp/heapdump[root@XXXX ~]# chmod 777 /tmp/heapdump[root@XXXX ~]# su daemon -s /bin/sh
sh-3.2$ jmap -dump:format=b,file=/tmp/heapdump 2639 (2639 is pid of openfire)


 Then disable PEP (personal event protocol) in admin console

Tuesday, July 26, 2011

Export/Import Winscp saved sessions.

Exporting/Importing WinSCP saved session--

Doesn’t have an “export saved sessions” button in winscp. Cause every time you reinstall your OS you have to through all the trouble of adding all the sites you ftp to.

The sessions are store in the registry here:

==========

HKEY_CURRENT_USER\Software\Martin Prikryl\WinSCP 2\Sessions
==========

So just run[Start >> Run] this command to export all your sessions.

==========

regedit /e c:\winscp.reg "HKEY_CURRENT_USER\Software\Martin Prikryl\WinSCP 2\Session

==========

This will save a registry file on your c: drive called winscp.reg. You can take this and run it on another computer and you should have all your store sessions back.

Thought that might be useful. Good luck

Monday, July 25, 2011

Cpanel : fix disk quota issue

Cpanel : fix disk quota issue
mount -o remount,rw,usrquota /home
quotaoff /home
quotacheck -cM /home
quotaon /home
/scripts/fixquotas

clam scan

Go > WHM > Cpanel>> mange Install Plugin > Enable Clamav Connector
[root@server ~]# touch /var/log/clamscan.log
[root@server ~]# clamscan -r -i --log=/var/log/clamscan.log /home/*/public_html/

chmod 000 infected files

This is a simple bash script I wrote to fix the permissions and ownership of files within a cpanel account

This is a simple bash script I wrote to fix the permissions and ownership of files within a cpanel account. To use, simply copy the script your server, chmod 755, and pass the usernames as arguments:

./fixperms user1 user2 user3

You can also run a server-wide loop like this:

for i in `ls -A /var/cpanel/users` ; do ./fixperms $i ; done

Below is the script, but I recommend downloading it from here to ensure that the formatting is correct.

#!/bin/bash
# Script to fix permissions of accounts

if [ "$#" -lt "1" ];then
echo "Must specify user"
exit;
fi

USER=$@

for user in $USER
do

HOMEDIR=$(grep $user /etc/passwd | cut -d: -f6)

if [ ! -f /var/cpanel/users/$user ]; then
echo "$user user file missing, likely an invalid user"

elif [ "$HOMEDIR" == "" ];then
echo "Couldn't determine home directory for $user"

else

echo "Setting ownership for user $user"

chown -R $user:$user $HOMEDIR
chmod 711 $HOMEDIR
chown $user:nobody $HOMEDIR/public_html $HOMEDIR/.htpasswds
chown $user:mail $HOMEDIR/etc $HOMEDIR/etc/*/shadow $HOMEDIR/etc/*/passwd

echo "Setting permissions for user $USER"

find $HOMEDIR -type f -exec chmod 644 {} \; -print
find $HOMEDIR -type d -exec chmod 755 {} \; -print
find $HOMEDIR -type d -name cgi-bin -exec chmod 755 {} \; -print
find $HOMEDIR -type f \( -name "*.pl" -o -name "*.perl" \) -exec chmod 755 {} \; -print
fi
done

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

find . -type d -print0 | xargs -0 chmod 755;find . -type f -print0 | xargs -0 chmod 644

find /home/zelebiz/www/wp-content/uploads/ -type d | xargs chmod 755

find /home/carespc/public_html/ -type d -perm 777 -print0 | xargs -0 chmod 755

find /home/naturaly/public_html/ -type d -perm 777 -print0 | xargs -0 chmod 755
171 [Jun/14/2010 - 12:48:00] find /home/naturaly/public_html/ -type f -perm 777 -print0 | xargs -0 chmod 644
=================

To find total accounts in cpanel server

cat /etc/trueuserdomains | wc -l

Screen

sreen -S hardening :- To create a screen
screen -ls show all background screen
screen -x 30655.hardenig :- enter in to the screen

Repair Mysql DB

Check if you any need DB repair:
myisamchk –check /var/lib/mysql/*/*.MYI

Then try a ‘safe-recover’ as the first step:
myisamchk –safe-recover /var/lib/mysql/*/*.MYI

If the ‘safe-recover’ does not work, run a full recover:
myisamchk –recover /var/lib/mysql/*/*.MYI

Then use the ‘force’ flag to get things back to normal:
myisamchk –safe-recover –extend-check –force /var/lib/mysql/*/*.MYI

or:
myisamchk –recover –extend-check –force /var/lib/mysql/*/*.MYI
Option #2

Use the mysqlcheck tool to repair your databases.

mysqlcheck –all-databases -r #repair
mysqlcheck –all-databases -a #analyze
mysqlcheck –all-databases -o #optimize

To Find Hardware Raid Information

fdisk -l
Disk /dev/ccisss/codo : 7340.gb
Device Bootstat Endblood id systesm
/dev/cciss/codop1 113 104 491 83 line
/dev/cciss/codop2 14 89243716739975 8R line lvm


cat /proc/driver/ciss/cciss0

grep -i raid /var/log/demessage
lspci | grep -i raid


if device is a product adav
/usr/storman/arccoof getconfig 1

dmraid -r soft raid
ls /dev/mdX

lspci -v | grep -iE raid| scsi

modprobe mptctl
mpt-status -n

dmeseg | grep mfid

cat /proc/scsi/scsi

CSF basics

cd /etc/csf
grep -rl 192.168.0.1250 ./
csf -g 192.168.0.250
csf -dr 192.168.1250 -remove deny
csf -d 192.168.0.250 to deny
csf -d 92.168.0.250/24 to deny a range
csf - a 192.168.0.250 to allow
csf -ar 192.168.0.250 to remove allow
csf -a 192.168.0.250/24 to allow a range
csf -t to list templist
csf -tr 192.168.0.250 to remove templist
csf -ta 192.168.0.250 temp allow
csf- td 192.168.0.250 tempdeny
csf -tf tempflufh

Catching Spammers on cPanel Servers

Follow the steps given below to catch Spammers sending mails from scripts ( nobody emails ) :-

1. Edit /etc/exim.conf

2. On the second line add :

Code: Select all
log_selector = +address_rewrite +all_parents +arguments +connection_reject +delay_delivery +delivery_size +dnslist_defer +incoming_interface +incoming_port +lost_incoming_connection +queue_run +received_sender +received_recipients +retry_defer +sender_on_delivery +size_reject +skip_delivery +smtp_confirmation +smtp_connection +smtp_protocol_error +smtp_syntax_error +subject +tls_cipher +tls_peerdn \



Make sure all that comes on a single line.

3. Save and exit.

4. Restart Exim.

A keep a watch on /var/log/exim_mainlog as you should be able to trace path to directory from which the spammer(s) is / are spamming.

if the spammer is not spamming using formmail scripts then go through following steps :-

1 > Get the message ID from the header of the spam. It should be in format like 1DWJj4-00042i-74 ( this is the most important step else all thats given below is crap )

2 > grep exim_mainlog with the message ID ( Ex : grep 1DWJj4-00042i-74 /var/log/exim_mainlog )

3 > Check the time on which the spam was sent and also check all that is shown after grep.

4 > If you find out the domain name or path of the scripts from exim_mainlog then go ahead and suspend the spammer, else proceed to step 5.

5 > Use this message ID to check the original message or bounced message in /var/spool/exim/input/. You should see 2 files there, one with -D at end and one with -H at the end. ( Ex : /var/spool/exim/input/4/1DWJj4-00042i-74-D & /var/spool/exim/input/4/1DWJj4-00042i-74-H ) This 2 files will have all the information that was sent in the spam message and if it was sent using mailing list then you will catch the username of spammer in auth_sender part of this files. If it shows nobody then its your bad luck Proceed to step 6.

6 > If exim_mainlog shows the spams originating from /tmp of the server and check the file in /tmp of the server. wner of the file will be seen as nobody:nobody. Take down the time of creation of file. This time is what we need to find out who uploaded the script. You will need to convert this time into the time format of /usr/local/apache/logs/error_log & then in the format of the domlogs located at /usr/local/apache/domlogs/*

7 > for file in /usr/local/apache/domlogs/*; do cat $file |grep “example”; done; ( you cannot do direct grep for the query here as it will give error that the arguement list is too long )

8 > If the results in step 2 have shown some domain name or some username in common as sender of the spam but now you dont see that domain name on the server then check /var/cpanel/accounting.log to see if that account has been terminated from the server ( Ex : grep ebayspammer.com /var/cpanel/accounting.log )

All that we need to know is importance of /var/log/exim_mainlog, /var/log/formmail.log, /usr/local/apache/logs/error_log, /usr/local/apache/domlogs/*,
/var/spool/exim/input/*/* and the files uploaded in /tmp of the server. Major spamming issues are caught using the time of sending the spam. You will need to work on your own when you get across such issue and use your logic to convert the time of sending the spams to the time format of respective log files I mentioned above.

Mark

Install Maat-Kit

1.wget http://maatkit.googlecode.com/files/maatkit-7207.tar.gz
tar zxvf maatkit-7207.tar.gz
maatkit-7207/
maatkit-7207/Changelog
maatkit-7207/udf/
maatkit-7207/udf/fnv_udf.cc
maatkit-7207/udf/murmur_udf.cc
maatkit-7207/lib/
maatkit-7207/bin/
maatkit-7207/bin/mk-table-checksum
maatkit-7207/bin/mk-find
maatkit-7207/bin/mk-query-digest
maatkit-7207/bin/mk-kill
maatkit-7207/bin/mk-duplicate-key-checker
maatkit-7207/bin/mk-merge-mqd-results
maatkit-7207/bin/mk-purge-logs
maatkit-7207/bin/mk-archiver
maatkit-7207/bin/mk-loadavg
maatkit-7207/bin/mk-profile-compact
maatkit-7207/bin/mk-fifo-split
maatkit-7207/bin/mk-variable-advisor
maatkit-7207/bin/mk-slave-prefetch
maatkit-7207/bin/mk-slave-find
maatkit-7207/bin/mk-slave-delay
maatkit-7207/bin/mk-log-player
maatkit-7207/bin/mk-index-usage
maatkit-7207/bin/mk-slave-restart
maatkit-7207/bin/mk-error-log
maatkit-7207/bin/mk-query-advisor
maatkit-7207/bin/mk-show-grants
maatkit-7207/bin/mk-upgrade
maatkit-7207/bin/mk-heartbeat
maatkit-7207/bin/mk-deadlock-logger
maatkit-7207/bin/mk-parallel-dump
maatkit-7207/bin/mk-parallel-restore
maatkit-7207/bin/mk-checksum-filter
maatkit-7207/bin/mk-table-sync
maatkit-7207/bin/mk-query-profiler
maatkit-7207/bin/mk-slave-move
maatkit-7207/bin/mk-visual-explain
maatkit-7207/init/
maatkit-7207/init/maatkit
maatkit-7207/maatkit.pod
maatkit-7207/MANIFEST
maatkit-7207/README
maatkit-7207/Makefile.PL
maatkit-7207/COPYING
maatkit-7207/INSTALL
maatkit-7207/maatkit.spec

# cd maatkit-7207

# perl Makefile.PL
Checking if your kit is complete...
Looks good
Warning: prerequisite DBD::mysql 1 not found.
Writing Makefile for maatkit

# rpm -ivh --nodeps mysql-devel-5.0.45-7.el5.x86_64.rpm
準備中... ########################################### [100%]
1:mysql-devel ########################################### [100%]

# rpm -ivh --nodeps perl-DBD-MySQL-3.0007-1.fc6.x86_64.rpm
準備中... ########################################### [100%]
1:perl-DBD-MySQL ########################################### [100%]


still facing the same issue
run
perl -MCPAN -e 'install Bundle::DBD::mysql'

# perl Makefile.PL
Writing Makefile for maatkit
# make
cp maatkit.pod blib/lib/maatkit.pod
cp bin/mk-slave-prefetch blib/script/mk-slave-prefetch
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-slave-prefetch
cp bin/mk-query-profiler blib/script/mk-query-profiler
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-query-profiler
cp bin/mk-profile-compact blib/script/mk-profile-compact
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-profile-compact
cp bin/mk-log-player blib/script/mk-log-player
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-log-player
cp bin/mk-slave-move blib/script/mk-slave-move
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-slave-move
cp bin/mk-index-usage blib/script/mk-index-usage
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-index-usage
cp bin/mk-purge-logs blib/script/mk-purge-logs
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-purge-logs
cp bin/mk-upgrade blib/script/mk-upgrade
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-upgrade
cp bin/mk-find blib/script/mk-find
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-find
cp bin/mk-loadavg blib/script/mk-loadavg
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-loadavg
cp bin/mk-heartbeat blib/script/mk-heartbeat
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-heartbeat
cp bin/mk-variable-advisor blib/script/mk-variable-advisor
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-variable-advisor
cp bin/mk-parallel-restore blib/script/mk-parallel-restore
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-parallel-restore
cp bin/mk-slave-find blib/script/mk-slave-find
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-slave-find
cp bin/mk-fifo-split blib/script/mk-fifo-split
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-fifo-split
cp bin/mk-kill blib/script/mk-kill
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-kill
cp bin/mk-query-digest blib/script/mk-query-digest
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-query-digest
cp bin/mk-table-sync blib/script/mk-table-sync
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-table-sync
cp bin/mk-error-log blib/script/mk-error-log
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-error-log
cp bin/mk-slave-delay blib/script/mk-slave-delay
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-slave-delay
cp bin/mk-deadlock-logger blib/script/mk-deadlock-logger
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-deadlock-logger
cp bin/mk-query-advisor blib/script/mk-query-advisor
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-query-advisor
cp bin/mk-table-checksum blib/script/mk-table-checksum
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-table-checksum
cp bin/mk-archiver blib/script/mk-archiver
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-archiver
cp bin/mk-show-grants blib/script/mk-show-grants
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-show-grants
cp bin/mk-merge-mqd-results blib/script/mk-merge-mqd-results
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-merge-mqd-results
cp bin/mk-parallel-dump blib/script/mk-parallel-dump
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-parallel-dump
cp bin/mk-duplicate-key-checker blib/script/mk-duplicate-key-checker
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-duplicate-key-checker
cp bin/mk-checksum-filter blib/script/mk-checksum-filter
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-checksum-filter
cp bin/mk-visual-explain blib/script/mk-visual-explain
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-visual-explain
cp bin/mk-slave-restart blib/script/mk-slave-restart
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mk-slave-restart
Manifying blib/man1/mk-slave-prefetch.1p
Manifying blib/man1/mk-query-profiler.1p
Manifying blib/man1/mk-profile-compact.1p
Manifying blib/man1/maatkit.1p
Manifying blib/man1/mk-log-player.1p
Manifying blib/man1/mk-slave-move.1p
Manifying blib/man1/mk-index-usage.1p
Manifying blib/man1/mk-purge-logs.1p
Manifying blib/man1/mk-upgrade.1p
Manifying blib/man1/mk-find.1p
Manifying blib/man1/mk-loadavg.1p
Manifying blib/man1/mk-heartbeat.1p
Manifying blib/man1/mk-variable-advisor.1p
Manifying blib/man1/mk-parallel-restore.1p
Manifying blib/man1/mk-slave-find.1p
Manifying blib/man1/mk-fifo-split.1p
Manifying blib/man1/mk-kill.1p
Manifying blib/man1/mk-query-digest.1p
Manifying blib/man1/mk-table-sync.1p
Manifying blib/man1/mk-error-log.1p
Manifying blib/man1/mk-slave-delay.1p
Manifying blib/man1/mk-deadlock-logger.1p
Manifying blib/man1/mk-query-advisor.1p
Manifying blib/man1/mk-table-checksum.1p
Manifying blib/man1/mk-archiver.1p
Manifying blib/man1/mk-show-grants.1p
Manifying blib/man1/mk-merge-mqd-results.1p
Manifying blib/man1/mk-parallel-dump.1p
Manifying blib/man1/mk-duplicate-key-checker.1p
Manifying blib/man1/mk-checksum-filter.1p
Manifying blib/man1/mk-visual-explain.1p
Manifying blib/man1/mk-slave-restart.1p

# make install
Installing /usr/lib/perl5/site_perl/5.8.8/maatkit.pod
Installing /usr/share/man/man1/mk-slave-delay.1p
Installing /usr/share/man/man1/mk-table-checksum.1p
Installing /usr/share/man/man1/mk-heartbeat.1p
Installing /usr/share/man/man1/mk-profile-compact.1p
Installing /usr/share/man/man1/mk-slave-prefetch.1p
Installing /usr/share/man/man1/mk-error-log.1p
Installing /usr/share/man/man1/mk-parallel-restore.1p
Installing /usr/share/man/man1/mk-purge-logs.1p
Installing /usr/share/man/man1/mk-visual-explain.1p
Installing /usr/share/man/man1/mk-loadavg.1p
Installing /usr/share/man/man1/mk-query-advisor.1p
Installing /usr/share/man/man1/mk-upgrade.1p
Installing /usr/share/man/man1/mk-log-player.1p
Installing /usr/share/man/man1/mk-table-sync.1p
Installing /usr/share/man/man1/mk-archiver.1p
Installing /usr/share/man/man1/mk-show-grants.1p
Installing /usr/share/man/man1/mk-checksum-filter.1p
Installing /usr/share/man/man1/mk-slave-move.1p
Installing /usr/share/man/man1/mk-index-usage.1p
Installing /usr/share/man/man1/mk-slave-restart.1p
Installing /usr/share/man/man1/mk-merge-mqd-results.1p
Installing /usr/share/man/man1/mk-query-digest.1p
Installing /usr/share/man/man1/mk-deadlock-logger.1p
Installing /usr/share/man/man1/mk-find.1p
Installing /usr/share/man/man1/mk-fifo-split.1p
Installing /usr/share/man/man1/mk-duplicate-key-checker.1p
Installing /usr/share/man/man1/mk-variable-advisor.1p
Installing /usr/share/man/man1/mk-query-profiler.1p
Installing /usr/share/man/man1/maatkit.1p
Installing /usr/share/man/man1/mk-kill.1p
Installing /usr/share/man/man1/mk-slave-find.1p
Installing /usr/share/man/man1/mk-parallel-dump.1p
Installing /usr/bin/mk-archiver
Installing /usr/bin/mk-query-advisor
Installing /usr/bin/mk-purge-logs
Installing /usr/bin/mk-fifo-split
Installing /usr/bin/mk-slave-move
Installing /usr/bin/mk-error-log
Installing /usr/bin/mk-duplicate-key-checker
Installing /usr/bin/mk-show-grants
Installing /usr/bin/mk-loadavg
Installing /usr/bin/mk-visual-explain
Installing /usr/bin/mk-table-sync
Installing /usr/bin/mk-merge-mqd-results
Installing /usr/bin/mk-find
Installing /usr/bin/mk-table-checksum
Installing /usr/bin/mk-deadlock-logger
Installing /usr/bin/mk-profile-compact
Installing /usr/bin/mk-upgrade
Installing /usr/bin/mk-query-digest
Installing /usr/bin/mk-kill
Installing /usr/bin/mk-query-profiler
Installing /usr/bin/mk-slave-delay
Installing /usr/bin/mk-variable-advisor
Installing /usr/bin/mk-slave-restart
Installing /usr/bin/mk-slave-find
Installing /usr/bin/mk-log-player
Installing /usr/bin/mk-heartbeat
Installing /usr/bin/mk-checksum-filter
Installing /usr/bin/mk-parallel-dump
Installing /usr/bin/mk-index-usage
Installing /usr/bin/mk-parallel-restore
Installing /usr/bin/mk-slave-prefetch
Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/maatkit/.packlist
Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod

# mk-[tab]
mk-archiver mk-log-player mk-slave-find
mk-checksum-filter mk-merge-mqd-results mk-slave-move
mk-deadlock-logger mk-parallel-dump mk-slave-prefetch
mk-duplicate-key-checker mk-parallel-restore mk-slave-restart
mk-error-log mk-profile-compact mk-table-checksum
mk-fifo-split mk-purge-logs mk-table-sync
mk-find mk-query-advisor mk-upgrade
mk-heartbeat mk-query-digest mk-variable-advisor
mk-index-usage mk-query-profiler mk-visual-explain
mk-kill mk-show-grants
mk-loadavg mk-slave-delay