Thursday, August 16, 2012

How to disable Iptable on Ubuntu.

How to disable iptables on Ubuntu.


Sudo ufw disable

After that check:


ipatables -L

Wednesday, August 15, 2012

How to secure/encrypt the shell script.!

If you wanted to encrypt the shell script, Or you need to do secure the shell script. Please use this tool.

Install with (binary) source.
# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
# tar xvfz shc-3.8.7.tgz
# cd shc-3.8.7
# make

Or
Install with Yum repository.

yum install shc -y

Run the script with sevral options.

$ ./shc -v
shc parse(-f): No source file specified

shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script



Create the test shell script.
--------------------------
#! /bin/bash

echo " Hey Hello.!"

--------------------------
If installed with yum please do this

$ shc -f filename.sh
After run this command you will find two more file with the name as follows.
Original file : filename.sh
C compile file : filename.x.c
Encripted File: filename.x

And if you run the command like:

$./filename.x
o/p: Hey Hello.!

Thursday, August 9, 2012

ossl_ssl.c:110:1: error: ‘SSLv2_method’ undeclared here (not in a function)

When building any ruby verison  on Ubuntu, If you got following error:
_________________________________________________________________
Error:
ossl_ssl.c:110:1: error: ‘SSLv2_method’ undeclared here (not in a function)
ossl_ssl.c:111:1: error: ‘SSLv2_server_method’ undeclared here (not in a function)
ossl_ssl.c:112:1: error: ‘SSLv2_client_method’ undeclared here (not in a function)
make[1]: *** [ossl_ssl.o] Error 1
make[1]: Leaving directory `/home/shrii/.rvm/src/ruby-1.9.2-p180/ext/openssl’
make: *** [mkmain.sh] Error 1

_________________________________________________________________




Please do this :

sudo rvm pkg install openssl
sudo rvm install ruby-1.9.2-p180 –with-openssl-dir=$rvm_path/usr

Resolved.!

Depends: libc6-i386 (>= 2.7) but it is not going to be installed

Hi Guys,

If you are trying to install any application on ubuntu and face this type of error:

-------------------------------------------------------------------------------------
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 teamviewer7 : Depends: libc6-i386 (>= 2.7) but it is not going to be installed
               Depends: lib32asound2 but it is not going to be installed
               Depends: lib32z1 but it is not going to be installed
               Depends: ia32-libs but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)
--------------------------------------------------------------------------------------

It manse you not able to install any package till resolve the dependency.

And the Solution is as follows :  So right now error for package teamviewer7

 apt-get purge teamviewer7

Resolved.!









Thursday, June 14, 2012

How to change default SMTP 25 port in postfix on CentOs?

How to change default SMTP 25 port in postfix on CentOs?

Check and open master.cf

vi /etc/postfix/master.cf
-------------------------------------------------------------------
#Comment default line as below.
#smtp      inet  n       -       n       -       -       smtpd
#Add new line with port as you like as below.
9485      inet  n       -       n       -       -       smtpd
-------------------------------------------------------------------

Then you need to restart postfix service.

/etc/init.d/postfix restart

And configue you SMTP as

Hostname            Port no   Username  Password   
SMTP.domain.com     9485       abc      passwd

  
Thats it.!

Saturday, June 2, 2012

FiGlet is (figlet) text font for linux.!

FiGlet is (figlet) text font for linux

FIGlet is a computer program that generates text banners, in a variety of.. It used for Display Large Colourful Text Banner On Screen in linux.
Figlets are often used in email signatures. We also use them for commenting source code when programming


http://www.figlet.org/

wget http://www.jave.de/figlet/figletfonts40.zip

http://www.figlet.org/examples.html
http://www.0xcb0.com/2010/01/14/using-figlet-to-pimp-your-scripts/


[root@localhost fonts]# figlet Fearless -f bell
 .____                      .
 /       ___    ___  .___   |     ___    ____   ____
 |__.  .'   `  /   ` /   \  |   .'   `  (      (
 |     |----' |    | |   '  |   |----'  `--.   `--.
 /     `.___, `.__/| /     /\__ `.___, \___.' \___.'



[root@localhost proddb]# figlet Fearless
 _____               _
|  ___|__  __ _ _ __| | ___  ___ ___
| |_ / _ \/ _` | '__| |/ _ \/ __/ __|
|  _|  __/ (_| | |  | |  __/\__ \__ \
|_|  \___|\__,_|_|  |_|\___||___/___/


So basically you can use simply like this:

[root@localhost ]# figlet Fearless -f 


Go Rocks..!
@ Linux Administration Blog.!

Thursday, May 17, 2012

Why Is My Emails Getting As Spam?

Why Is My Emails Getting As Spam?
Check above things.

First we need to check Email Headers.
1. Return Path
2. To
3. From
4. We should not use CAPS because not only being unprofessional, but it
also triggers spam filters. To land in the Spam folder consistently,
please do not USE ALL CAPS IN THE SUBJECT LINE AND THE BODY FROM TO and
Excessive punctuation (e.g. -/, ;^%#$@+ * "').

E.g. as follows.

1. Email "From : ADMIN ENROLL " getting
spam in gmail.com sometimes and if we not change it will increasing
count.

2. Email "From: noreply@exmaple.com" it
getting in mailbox, check the CAPS deference.

http://php.net/manual/en/function.mail.php
http://www.niso.org/khelp/kmlm/user_help/html/examine_mail_headers.html

Please check this too. It can be understand better. :)
http://www.infusionblog.com/email-marketing/7-ways-for-your-email-to-land-in-the-spam-folder/

Check SPF for Domain.:
http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/

What is SPF records and How to setup?
http://www.kazeli.com/help/index.cfm?pageloc=quest&questid=435&catid=337,338

To diagnose the mail. Why its going in Spam.
Check tool:
http://mxtoolbox.com/
Here you can check following points
1. Mxlookup : For your domain and ip
2. Blacklist : For your IP
3. Diagnostics : SMTP Diagnostics, check your mail server
4. Analyze Headers : Check your mail headers.
5. SPF Records : Check your Sender Policy Framework
7. DNS Lookup : Check your Domain lookup.

If you check above all things your mail will not go in Spam.!

@Linux Administration Blog.!

Wednesday, May 16, 2012

ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number

mysql> GRANT SELECT ON *.* TO 'gita'@'localhost' IDENTIFIED BY PASSWORD "gita123";
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number

# Check encripted password on Mysql Console.
mysql> select password('gita123');
+---------------------+
| password('gita123') |
+---------------------+
| 1f6f58c9269d50dc |
+---------------------+
1 row in set (0.00 sec)

# Check Grant for User
mysql> show grants for gita@192.168.10.143;
+-----------------------------------------------------------------------------------------------------+
| Grants for gita@192.168.10.143 |
+-----------------------------------------------------------------------------------------------------+
| GRANT SELECT, SHOW VIEW ON *.* TO 'gita'@'192.168.10.143' IDENTIFIED BY PASSWORD '1f6f58c9269d50dc' |
| GRANT SELECT, SHOW VIEW ON `data1`.* TO 'gita'@'192.168.10.143' |
| GRANT SELECT, SHOW VIEW ON `data2`.* TO 'gita'@'192.168.10.143' |
+-----------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

# Update Password In Query.

mysql> GRANT SELECT ON *.* TO 'gita'@'localhost' IDENTIFIED BY PASSWORD '1f6f58c9269d50dc';
Query OK, 0 rows affected (0.04 sec)


Resolved.!

Thursday, May 3, 2012

Auto Scaling On Amazon Cloud Computing.

First check the URL to understand Auto Scaling http://aws.amazon.com/autoscaling/
And download Auto Scaling developer tool http://aws.amazon.com/developertools/2535

After download follow the stapes:

unzip AutoScaling-2011-01-01.zip
cd AutoScaling-1.0.49.1/

Set the enviroment in /root/.bashrc on your box.
------------------------------------------------------------------------
export AWS_AUTO_SCALING_HOME=/opt/AutoScaling-1.0.49.1/
set AWS_AUTO_SCALING_HOME=/opt/AutoScaling-1.0.49.1/
export PATH=$PATH:$AWS_AUTO_SCALING_HOME/bin
set PATH=%AWS_AUTO_SCALING_HOME%/bin

export AWS_AUTO_SCALING_URL=https://autoscaling.ap-southeast-1.amazonaws.com
set AWS_AUTO_SCALING_URL=https://autoscaling.ap-southeast-1.amazonaws.com
------------------------------------------------------------------------

You need to be using an elastic load balancer to configure auto scaling. Configuring autoscaling consists of three steps:
1) Create launch configuration
2) Create auto scaling group
3) Create auto scaling trigger

Create launch configuration
Launch configuration provides information about the instance to be launched. You can see that an AMI, instance type, availability zone and security groups are specified when a launch configuration is created.

as-create-launch-config MY_Group --image-id ami-a2b7f3f0 --instance-type m1.small -I Your_access_key -S Your_Secret_key

Create autoscaling group
A launch configuration is attached with an autoscaling group. The group consists of pool of instances. You can specify minimum and maximum size of the pool.

as-create-auto-scaling-group sbsgroup --launch-configuration MY_Group --availability-zones ap-southeast-1b --min-size 1 --max-size 10 --desired-capacity 1 -I Your_access_key -S Your_Secret_key


To check
as-describe-auto-scaling-groups sbsgroup --headers -I Your_access_key -S Your_Secret_key
----------------------------------------------------------------
Output:
AUTO-SCALING-GROUP GROUP-NAME LAUNCH-CONFIG AVAILABILITY-ZONES MIN-SIZE MAX-SIZE DESIRED-CAPACITY
AUTO-SCALING-GROUP sbsgroup MY_Group ap-southeast-1b 1 10 1
INSTANCE INSTANCE-ID AVAILABILITY-ZONE STATE STATUS LAUNCH-CONFIG
INSTANCE i-e6d671b2 ap-southeast-1b InService Healthy MY_Group
-----------------------------------------------------------------

Create autoscaling trigger
The trigger defines the conditions to start or stop ec2 instances. For example:

as-create-or-update-trigger my-latency-trigger --auto-scaling-group sbsgroup --dimensions "LoadBalancerName=myloadbalancer" --measure Latency --period 60 --statistic Average --lower-threshold 0.25 --upper-threshold 0.75 --breach-duration 300 --lower-breach-increment=-1 --upper-breach-increment 1 --namespace "AWS/ELB" --unit Seconds

Now, we have created a latency trigger with 0.25 as the lower threshold and 0.75 seconds as the upper threshold. If your website latency goes beyond 0.75 seconds, this trigger will be activated and hence an instance will be launched (as specified by upper breach increment).

Its Done.! @ Linux Administration Blog.!

Monday, April 16, 2012

Use Delimiter In Awk and Cut.

We can use delimiter in Awk, if you exported domain list from godaddy and you want only domain name rather than full information then you can use this command to get domain list only.
Using this:

awk -F "," '{print $1}'

Or

cut '--delimiter= ' -f1

E.g.

cat DomainDownloadList-124696210.csv | awk '{ printf " %s\n", $1 }' | awk -F "," '{print $1}' > domainlist.txt
Or
cat DomainDownloadList-124696210.csv | cut '--delimiter= ' -f1 > domainlist.txt

For word count for counting domain :
cat DomainDownloadList-124696210.csv | awk '{ printf " %s\n", $1 }' | awk -F "," '{print $1}' | wc
Or
cat DomainDownloadList-124696210.csv | cut '--delimiter= ' -f1 | wc




@ Linux Administration Blog.! 

Tuesday, April 10, 2012

Monday, April 9, 2012

How to replicate only one table from mysql database.

Install Ruby 1.9.2
Install gem rubyrep (1.2.0) using command
gem install rubyrep

Then create conf file with name   /etc/myrubyrep.conf and with following content.
-------------------------------------------------------------
RR::Initializer::run do |config|
config.left = {
:adapter  => 'mysql', # or 'pgsql'
:database => 'c11',
:username => 'root',
:password => '',
:socket => '/var/lib/mysql/mysql.sock'
}

config.right = {
:adapter  => 'mysql', # or 'pgsql'
:database => 'c12',
:username => 'root',
:password => '',
:socket => '/var/lib/mysql/mysql.sock'
}

config.include_tables 'table name'  # e.g. 'email_list_subscribers' only this will replicate
#config.include_tables /^e/  # regexp matches all tables starting with e
# config.include_tables /./ # regexp matches all tables
#config.options[:auto_key_limit] = 2
end
---------------------------------------------

Using this command you can replicate only one table from database.

[root@localhost ]#  rubyrep replicate  -c /etc/myrubyrep.conf
Verifying RubyRep tables
Checking for and removing rubyrep triggers from unconfigured tables
Verifying rubyrep triggers of configured tables
Starting replication..

For only scan and sync to check status use following commands:

[root@localhost tmp]#  rubyrep scan   -c /etc/myrubyrep.conf
              email_list_subscribers 100% .........................   0

[root@localhost tmp]#  rubyrep sync  -c /etc/myrubyrep.conf
              email_list_subscribers 100% .........................   0

If modified it will change to 0 to 1.
Cool thing... Please let me know if you guys have any questions.
@ Linux Administration Blog.! 

Wednesday, January 11, 2012

Tuesday, January 3, 2012

SMTP check script in ruby.

Create ruby script to check SMTP with login credential.
You can test two authentication in this script i.e. plain and login.

vi     /opt/rubymailtest.rb


require 'net/smtp'

message = <
From: info@homework.do
To: sbtoalerts@gmail.com
Subject: test message
Date: Sat, 23 Jun 2001 16:26:43 +0900

This is a test message.
END_OF_MESSAGE


#Net::SMTP.start('mail.exmaple.com') do |smtp|
#  smtp.send_message message, 'info@homework.do',
#                             'sbtoalerts@gmail.com'


# PLAIN
#Net::SMTP.start('mail.example.com', 25, 'mail.example.com',
#                'Your Account', 'Your Password', :plain)
 

# LOGIN
Net::SMTP.start('mail.example.com', 25, 'mail.example.com', 'username', 'passwd', :login) do |smtp|
      smtp.send_message message, 'info@homework.do',
                             'sbtoalerts@gmail.com'


#puts " done"
end

Tuesday, October 11, 2011

Remove extra spaces from file in linux.

If you found spaces and non-ASCII characters with in files, remove all  from a file in place.

Solution is:
perl -i.bak -pe 's/[^[:ascii:]]//g' filename


Thanks-

Wednesday, September 28, 2011

My New Writeup.

I am not good writer, still i am writing things which is need to me and people who find needful for them. 

This is my another Tech Blog. I hope its useful for all of us.

Please visit: http://linux-fundamentals.blogspot.com/


Thanks-

Tuesday, September 27, 2011

Shell Script To Monitor Mysql.

[root@ 17_johnson]# cat /usr/bin/monitor-mysql
#!/bin/bash

# mysql root/admin username
MUSER="root"
# mysql admin/root password
MPASS="im#secure"
# mysql server hostname
MHOST="localhost"
#Shell script to start MySQL server i.e. path to MySQL daemon start/stop script.
# Debain uses following script, need to setup this according to your UNIX/Linux/BSD OS.
MSTART="/etc/init.d/mysqld start"
# Email ID to send notification
EMAILID="shrikant.lokhande@example.com, lokhande.shrikant@gmail.com"
# path to mail program
MAILCMD="$(which mail)"
# path mysqladmin
MADMIN="$(which mysqladmin)"

#### DO NOT CHANGE anything BELOW ####
MAILMESSAGE="/tmp/mysql.fail.$$"

# see if MySQL server is alive or not
# 2&1 could be better but i would like to keep it simple and easy to
# understand stuff :)
$MADMIN -h $MHOST -u $MUSER -p${MPASS} ping 2>/dev/null 1>/dev/null
if [ $? -ne 0 ]; then
        echo "" >$MAILMESSAGE
        echo "Error: MySQL Server is not running/responding ping request">>$MAILMESSAGE
        echo "Hostname: $(hostname)" >>$MAILMESSAGE
        echo "Date & Time: $(date)" >>$MAILMESSAGE
        # try to start mysql
        $MSTART>/dev/null
        # see if it is started or not
        o=$(ps cax | grep -c ' mysqld$')
        if [ $o -eq 1 ]; then
                sMess="MySQL Server MySQL server successfully restarted"
        else
                sMess="MySQL server FAILED to restart"
        fi
        # Email status too
        echo "Current Status: $sMess" >>$MAILMESSAGE
        echo "" >>$MAILMESSAGE
        echo "*** This email generated by $(basename $0) shell script ***" >>$MAILMESSAGE
        echo "*** Please don't reply this email, this is just notification email ***" >>$MAILMESSAGE
        # send email
        $MAILCMD -s "MySQL server" $EMAILID < $MAILMESSAGE
else # MySQL is running :) and do nothing
        :
fi
# remove file
rm -f $MAILMESSAGE

Saturday, September 24, 2011

Script To Check Disk Usage and Send Alert URGENT/WARNING.

[root@ 17_johnson]# cat /usr/bin/DiskUsage

#!/bin/bash


#filesystems="/dev/sda1 /dev/sda2 /dev/sda5"
filesystems="/data /log  /app  /backup  /home  /"

for fs in $filesystems
do

size=`df -k  $fs |grep $fs |awk '{ print  $3 }'`

        if [  $size  -le  2500000 ]  ;then
#                mail -b "URGENT: Low disk space for $fs ($size)"
 echo  "$fs ($size) URGENT" | mail -s "Alert: Disk Usage for Ishy  $fs ($size) " shrikant.lokhande@example.com
               echo "URGENT"
                break
        fi
        if [ $size -le  5000000 ] ;then
#                 mail -b "WARNING: Low disk space for $fs ($size)
   echo  "$fs ($size) WARNING" | mail -s "Alert: Disk Usage for Ishy(LOW)  $fs ($size) " shrikant.lokhande@example.com
               echo "WRANING"
fi
done

Friday, September 23, 2011

Shell script to taking MySql Dump/Backup.

[root@17_johnson]# cat /usr/bin/mybackupsql

#!/bin/bash
# USER VARIABLES
TIMESTAMP=$(date +%Y-%m-%d)
MYSQLUSER=root
MYSQLPWD=im#secure
MYSQLHOST=localhost
# PATH VARIABLES
MK=/bin/mkdir
GREP=/bin/grep
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
# CREATE MYSQL BACKUP
# Create new backup dir
$MK /backup/mysqlback_$TIMESTAMP
#Dump new files
for i in $(echo 'SHOW DATABASES;' | $MYSQL -u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST|$GREP -v '^Database$'); do
  $MYSQLDUMP -u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST $i >/backup/mysqlback_$TIMESTAMP/$i.sql
sleep 30
echo "$i"
done

Thursday, September 22, 2011

MysqlDump with Exclude database or perticuler table Options.

[root@linux_johnson]# cat /usr/bin/imdbbackup
#!/bin/bash
# USER VARIABLES
TIMESTAMP=$(date +%Y-%m-%d)
MYSQLUSER=root
MYSQLPWD=im#secure
MYSQLHOST=localhost
# PATH VARIABLES
MK=/bin/mkdir
GREP=/bin/grep
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
# CREATE MYSQL BACKUP
# Create new backup dir
$MK /backup/mysqlback_$TIMESTAMP
#Dump new files
DBname=db_production


for i in $(echo 'SHOW DATABASES;' | $MYSQL -u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST|$GREP -v '^Database$'); do
if [ "$i" == "$DBname" ]; then
             echo " Dump taken"
  mysqldump  -u$MYSQLUSER -p$MYSQLPWD $DBname --ignore-table=db_production.clicks  --ignore-table=db_production.addresses  > /backup/mysqlback_$TIMESTAMP/$i.sql
else
  $MYSQLDUMP -u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST $i >/backup/mysqlback_$TIMESTAMP/$i.sql
echo "$i"
fi

done

/etc/init.d/httpd reload