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




Wednesday, September 21, 2011

How To Clear Active record base Sessions.

[root@17_johnson]# cat current/lib/clear_sessions_data.rb

  require 'rubygems'
  require 'active_record'


  ActiveRecord::Base.establish_connection(
  :adapter => "mysql",
  :host => "localhost",
  :username => "root",
  :password =>"tm#secure",
  :database => "tm_production",
  :socket =>  "/var/lib/mysql/mysql.sock"
  )

 
  sql = 'DELETE FROM sessions WHERE updated_at < DATE_SUB(NOW(), INTERVAL 1 DAY);'
  ActiveRecord::Base.connection.execute(sql)

------------------
NOTE # Set script As cron at Every day 12.00 AM.

Tuesday, September 20, 2011

To check exact PID of running process in linux.

To check exact PID of process.
Command:
ps -efa  |  grep httpd | grep -v grep | awk '{print $2}'

-----------------------------------------------------------------------------------------
#! /bin/bash

PROCNAME=$1
PIDS=`ps -efa | grep $PROCNAME | grep -v grep | awk '{ print $2 }'`
for ff in $PIDS
do
echo "$ff"
done
------------------------------------------------------------------------------------------



do chmod 777 filename

Now  you can run the command like:
e.g.
filename httpd  or filename  processname.

Tuesday, September 13, 2011

Last_IO_Error: error connecting to master 'repl@12.18.46.78:3666' - retry-time: 10 retries: 86400

This error you get when you check " show slave status\G;"

Solution as follows:
Do Telnet:

[root@sj ~]# telnet 12.18.46.78 3666
Trying 12.18.46.78...
Connected to 12.18.46.78.
Escape character is '^]'.
uHost '12.18.46.78' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'Connection closed by foreign host.

Do Flush host:

[root@sj ~]# mysqladmin -uroot -ppassword flush-hosts

Lets check " show slave status\G;" again.

Done.

Wednesday, August 24, 2011

start-stop-daemon script for Centos 5.!

 wget http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz

tar -xvf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
cd apps
cd sys-utils/start-stop-daemon-IR1_9_18-2/

cat Makefile
---------------------------------------------
# comment this Two line for centos build.
#AXIS_USABLE_LIBS = GLIBC UCLIBC
#include $(AXIS_TOP_DIR)/tools/build/Rules.axis

PROG = start-stop-daemon

all: $(PROG)

install: all
        $(INSTALL) -m 0755 -o root -g root $(PROG) $(prefix)/sbin

clean:
        rm -f $(PROG)
-----------------------------------------------

-bash-3.2# make
cc     start-stop-daemon.c   -o start-stop-daemon
-bash-3.2# ls
a.out  Makefile  start-stop-daemon  start-stop-daemon.c

* Copy the daemon to bin path:
cp start-stop-daemon /usr/bin/

* How to Use this script Please see.
http://svn.ez.no/svn/extensions/ezfind/ezp4/trunk/extension/ezfind/bin/scripts/gentoo/solr

Monday, June 20, 2011

Add Branch to Git.

--------------------------------------------------------
vi  /usr/bin/addbranch   <---Create the file with name, and copy the following code.

#!/bin/bash
# git-create-branch

if [ $# -ne 1 ]; then
         echo 1>&2 Usage: $0 branch_name
         exit 127
fi

set branch_name = $1
#git push origin origin:refs/heads/${branch_name}
#git fetch origin
git checkout --track -b ${branch_name} origin/${branch_name}
git pull

--------------------------------------------------------------




Do
chmod 777 /usr/bin/addbranch


and create new branch like:
from checkouted code.

addbranch

Monday, May 30, 2011

Find Command in Linux With Options.

If you find root only
find /. -size +100M

-size n[cwbkMG]
              File uses n units of space.  The following suffixes can be used:

              ‘b’    for 512-byte blocks (this is the default if no suffix is used)

              ‘c’    for bytes

              ‘w’    for two-byte words

              ‘k’    for Kilobytes (units of 1024 bytes)

              ‘M’    for Megabytes (units of 1048576 bytes)

              ‘G’    for Gigabytes (units of 1073741824 bytes)

              The size does not count indirect blocks, but it does count blocks in sparse  files  that  are  not
              actually  allocated.   Bear  in  mind  that  the ‘%k’ and ‘%b’ format specifiers of -printf handle
              sparse files differently.  The ‘b’ suffix always denotes 512-byte  blocks  and  never  1  Kilobyte
              blocks, which is different to the behaviour of -ls.

       -true  Always true.

If you want to find in perticuler other directory.

find /usr/local/ -size +100M  
find /var/ -size +100M
find /mnt/ -size +100M
find /opt/ -size +100M

Daywise find.file modified 6 days ago.
find /var/ -mtime 6

Show all files which is modified with in 24 hours.
find /.  -atime +1


   TESTS
       Numeric arguments can be specified as

       +n     for greater than n,

       -n     for less than n,

       n      for exactly n.

       -amin n
              File was last accessed n minutes ago.

       -anewer file
              File  was  last accessed more recently than file was modified.  If file is a symbolic link and the
              -H option or the -L option is in effect, the access time of the file it points to is always  used.

       -atime n
              File  was  last  accessed  n*24 hours ago.  When find figures out how many 24-hour periods ago the
              file was last accessed, any fractional part is ignored, so to match -atime +1, a file has to  have
              been accessed at least two days ago.

       -cmin n
              File’s status was last changed n minutes ago.

       -cnewer file
              File’s  status  was last changed more recently than file was modified.  If file is a symbolic link
              and the -H option or the -L option is in effect, the status-change time of the file it  points  to
              is always used.

       -ctime n
              File’s  status  was  last  changed  n*24 hours ago.  See the comments for -atime to understand how
              rounding affects the interpretation of file status change times.

       -empty File is empty and is either a regular file or a directory.

       -false Always false.

       -fstype type
              File is on a filesystem of type type.  The valid filesystem types vary among different versions of
              Unix;  an incomplete list of filesystem types that are accepted on some version of Unix or another
 -ilname pattern
              Like  -lname,  but  the  match  is case insensitive.  If the -L option or the -follow option is in
              effect, this test returns false unless the symbolic link is broken.

       -iname pattern
              Like -name, but the match is case insensitive.  For example, the patterns ‘fo*’  and  ‘F??’  match
              the  file names ‘Foo’, ‘FOO’, ‘foo’, ‘fOo’, etc.   In these patterns, unlike filename expansion by
              the shell, an initial ’.’ can be matched by ’*’.  That is, find -name *bar  will  match  the  file
              ‘.foobar’.   Please note that you should quote patterns as a matter of course, otherwise the shell
              will expand any wildcard characters in them.

       -inum n
              File has inode number n.  It is normally easier to use the -samefile test instead.

       -ipath pattern
              Behaves in the same way as -iwholename.  This option is deprecated, so please do not use it.

       -iregex pattern
              Like -regex, but the match is case insensitive.

       -iwholename pattern
              Like -wholename, but the match is case insensitive.

       -links n
              File has n links.

       -lname pattern
              File is a symbolic link whose contents match shell pattern pattern.   The  metacharacters  do  not
              treat  ‘/’  or  ‘.’  specially.   If  the  -L option or the -follow option is in effect, this test
              returns false unless the symbolic link is broken.

 -lname pattern
              File is a symbolic link whose contents match shell pattern pattern.   The  metacharacters  do  not
              treat  ‘/’  or  ‘.’  specially.   If  the  -L option or the -follow option is in effect, this test
              returns false unless the symbolic link is broken.

       -mmin n
              File’s data was last modified n minutes ago.

       -mtime n
              File’s data was last modified n*24 hours ago.  See the  comments  for  -atime  to  understand  how
              rounding affects the interpretation of file modification times.

       -name pattern
              Base  of  file name (the path with the leading directories removed) matches shell pattern pattern.
              The metacharacters (‘*’, ‘?’, and ‘[]’) match a ‘.’ at the start of  the  base  name  (this  is  a
              change  in  findutils-4.2.2;  see section STANDARDS CONFORMANCE below).  To ignore a directory and
              the files under it, use -prune; see an example in the description of -wholename.  Braces  are  not
              recognised  as being special, despite the fact that some shells including Bash imbue braces with a
              special meaning in shell patterns.  The filename  matching  is  performed  with  the  use  of  the
              fnmatch(3)  library  function.   Don’t forget to enclose the pattern in quotes in order to protect
              it from expansion by the shell.

       -newer file
              File was modified more recently than file.  If file is a symbolic link and the -H option or the -L
              option is in effect, the modification time of the file it points to is always used.

       -nouser
              No user corresponds to file’s numeric user ID.

       -nogroup
              No group corresponds to file’s numeric group ID.

       -path pattern
              See -wholename.   The predicate -path is also supported by HP-UX find.

       -perm mode
              File’s permission bits are exactly mode (octal or symbolic).  Since an exact match is required, if
              you want to use this form for symbolic modes, you may  have  to  specify  a  rather  complex  mode
              string.   For  example  ’-perm  g=w’ will only match files which have mode 0020 (that is, ones for
              which group write permission is the only permission set).  It is more likely that you will want to
              use  the  ’/’ or ’-’ forms, for example ’-perm -g=w’, which matches any file with group write per-
:                                            

Monday, May 23, 2011

ERROR 2003 (HY000): Can't connect to MySQL server on '10.677.32.43' (111)

root@124:/etc# mysql  -uroot -priva#secure  -h10.677.32.43
ERROR 2003 (HY000): Can't connect to MySQL server on '10.677.32.43' (111)

If you go this error. Check your /etc/my.cnf ( for centos), /etc/mysql/my.cnf ( for ubuntu)

Comment this two line.

#skip-external-locking

#bind-address           = 127.0.0.1

Restart Mysql. Now you should able to connnect remotely.

Tuesday, May 3, 2011

Security for Linux Server.

All the Security for Linux Server.

1. Firewall APF/Iptables
   * Block the all ports which is unnecessary open on server.
   * There is Spammer Database will be add IP pool  in firewall.
2. Change SSH port
3. Update and scans for rootkits, backdoor and possible local exploits. wrong permissions for /usr/bin and     system commands, hidden files, suspicious strings in kernel modules, and special tests for Linux. With some
tools.  Check Malware and malicious scripts.
4. Mail Security:
  * Spamming: if your Application is sending mails more than 100-200 mails in day.
    then you need Proper Mail server setup. else your server Ip will get block in spam list.
  * Check SPF records for domain.
5. Add Google webmaster tool for all our Website/Domain which is use. It will quick detect Malware and if there is Malicious scripts. It will notified if there is any hidden scripts running script or attack on our code.

Wednesday, April 20, 2011

Can't umount on RHEL/CENTOS Error: device is busy

[root@sandbox1 ~]# umount /dev/sdb1
umount: /mnt/pen: device is busy
umount: /mnt/pen: device is busy

Solution :

[root@sandbox1 ~]# lsof | grep /mnt/pen
esd       23711   root  cwd       DIR       8,17      4096    1228794 /mnt/pen/720p BRRip x264 - HDMiCRO by Mr. KickASS
esd       23711   root    3r      REG       8,17 942758269    1229005 /mnt/pen/ - HDMiCRO by Mr. KickASS/ Mr. KickASS.mp4

[root@sandbox1 ~]# kill -9 23711


[root@sandbox1 ~]# umount /dev/sdb1

Done.

Wednesday, April 13, 2011

/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory

While compiling any sources in linux if you got above Error.
----------------------------------------------------
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make[2]: *** [boot.o] Error 1
make[2]: Leaving directory `/mnt/resin-4.0.16/modules/c/src/resin_os'
make[1]: *** [plugins] Error 2
make[1]: Leaving directory `/mnt/resin-4.0.16/modules/c/src'
make: *** [all] Error 2

--------------------------------------------------
Please do install following lib package from YUM:
 yum -y install glibc-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: mirror.stanford.edu
 * base: mirrors.kernel.org
 * extras: mirrors.kernel.org
 * updates: mirrors.kernel.org
Setting up Install Process
Package glibc-devel-2.5-58.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package glibc-devel.i386 0:2.5-58 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================================================
 Package                              Arch                          Version                            Repository                     Size
===========================================================================================================================================
Installing:
 glibc-devel                          i386                          2.5-58                             base                          2.0 M

Transaction Summary
===========================================================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Friday, April 8, 2011

postfix/postdrop warning: uid=48: Illegal seek postfix/sendmail: fatal: (48): queue file write error

If you got the error. And you are not able to send large size/ mail attachment from postfix please do above config.

postfix/postdrop warning: uid=48: Illegal seek
postfix/sendmail: fatal: (48): queue file write error

Edit the postfix mailserver file:
vi /etc/postfix/main.cf 
Change/Add this option to  send large file size.

message_size_limit = 100000000
mailbox_size_limit = 800000000

Tuesday, April 5, 2011

[On Ubuntu Mod_proxy added to apache2] BalancerMember Can't find 'byrequests' lb method

Mod_proxy added to apache2.

apt-get install libapache2-mod-proxy-html

apt-get install libxml2-dev

Add following lines to /etc/apache2/apache2.conf :


LoadModule  proxy_module         /usr/lib/apache2/modules/mod_proxy.so
LoadModule  proxy_http_module    /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule  headers_module       /usr/lib/apache2/modules/mod_headers.so
LoadModule  deflate_module       /usr/lib/apache2/modules/mod_deflate.so
LoadFile    /usr/lib/libxml2.so

/etc/init.d/apache2 restart

Friday, April 1, 2011

Compare two file and find diff between two file in sort form.

Compare two file and find diff between two file in sort form.

It will list both file content and diff.
sdiff -s File1 File2

It will do Sort and showing complete diff.

grep -vf File2 File1

Monday, March 14, 2011

Permission denied: /.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

If you got error with passenger +httpd Please check a log and change permission as follows. its just permission issue.

------------------------------------------------------------------------------
 tail -f /var/log/httpd/error_log
[Mon Mar 14 02:16:36 2011] [crit] [client 125.18.56.179] (13)Permission denied: /home/user/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
-------------------------------------------------------------------------------


[root@server conf]# chmod  -R 755 /home/user/*
[root@server conf]# /etc/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]



Monday, February 21, 2011

Master-Master Replication

Master-Master Replication
Master1 - 1.1.1.1
Master3 - 2.2.2.2


Master1
Edit /etc/my.cnf

#Primary Master server
server-id=1
auto_increment_offset=1
# total number of master servers
auto_increment_increment=2
# local slave replication options
# remote master replication options
master-host=2.2.2.2
master-port=3306
master-user=repl
master-password=replpass
master-connect-retry=10

Master3
#Secondry Master server
server-id=3
auto_increment_offset=1
# total number of master servers
auto_increment_increment=2
# local slave replication options
# remote master replication options
master-host=2.2.2.2
master-port=3306
master-user=repl
master-password=replpass
master-connect-retry=10


Loggin to Master1:

GRANT ALL ON *.* TO  root@'2.2.2.2' IDENTIFIED BY 'email#secure';
GRANT ALL ON *.* TO  repl@'2.2.2.2' IDENTIFIED BY 'replpass';
GRANT ALL ON *.* TO  repl@'%' IDENTIFIED BY 'replpass';

mysql> SHOW MASTER STATUS\G
mysql> FLUSH TABLES WITH READ LOCK;

[root@localhost]mysqldump -A -uroot -p password > master1.sql


On Master3

[root@localhost]mysql -uroot -ppassword  < master1.sql

CHANGE MASTER TO MASTER_HOST='1.1.1.1',MASTER_PORT=3666, MASTER_USER='repl', MASTER_PASSWORD='replpass',  MASTER_LOG_FILE='mysql-bin.000015', MASTER_LOG_POS=1190;

mysql> START SLAVE;
mysql> SHOW MASTER STATUS\G


On Master1

CHANGE MASTER TO MASTER_HOST='2.2.2.2',MASTER_PORT=3666, MASTER_USER='repl', MASTER_PASSWORD='replpass', MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=220776001;
mysql> START SLAVE;

Master-Master Replication done.

Do add slave for master, use same post from this blog.
"http://shriikant.blogspot.com/2009/10/mysql-master-slave-replication.html"

Tuesday, February 15, 2011

Production Server/Mailserver Maintanace.

At first, allocate enough space for log partition. Linux system having default log rotation if you want to change you can do customize log rotation automatically.







See here maillog in GB, if no need just clear old log.
Log rotate.

drwxr-xr-x 2 root  root  4.0K Dec  8  2009 mail
-rw------- 1 root  root  504M Feb 15 00:49 maillog
-rw------- 1 root  root  1.1G Feb 10 02:37 maillog.1
-rw------- 1 root  root  469M Jan 31 22:23 maillog.2
-rw------- 1 root  root  1.9G Jan 30 04:17 maillog.3
-rw------- 1 root  root  1.9G Jan 23 04:17 maillog.4

Some of log rotating example:
Create the script name of /usr/bin/rotateapplog:
vi /usr/bin/rotateapplog

#! /bin/bash

TIMESTAMP=$(date +%Y-%m-%d)
cd /home/app/

cp log/production.log log/production.$TIMESTAMP.log

echo "$TIMESTAMP" > log/production.log

echo "done"

Add script as cron:

1 00 * * * /usr/bin/rotateapplog
--------------------------------------------------------------------------------------

Tuesday, February 1, 2011

Mysql Won't start (two instance on same server)

A Solution:

Install mysql db again at new location,use following command:
 
/usr/bin/mysqld_safe --defaults-file /etc/my.cnf

Restart Mysql:
     /etc/init.d/mysqld restart

/usr/local/bin/mysqld_safe --defaults-file /usr/local/etc/my.cnf
 
mysql_install_db --user=mysql --ldata=/new-data-location
mysqld_safe --datadir=/new-data-location --user=mysql &

/usr/local/mysql/share/mysql/mysql.server start


Monday, January 24, 2011

/usr/bin/ld: cannot find -lperl collect2: ld returned 1 exit status make: *** [blib/arch/auto/Image/Magick/Magick.so] Error 1

Normally this error occurs when install ImageMagick on Ubuntu Linux.
-------------------------------------------------------------------------------
/usr/bin/ld: cannot find -lperl
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/Image/Magick/Magick.so] Error 1
---------------------------------------------------------------------------------

And Solution is : Its need this package.

sudo apt-get install libperl-dev

after that, RMagick gem installed without any issue.
gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.13.1
1 gem installed
Installing ri documentation for rmagick-2.13.1...

Monday, January 3, 2011

[semaphores] No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed

Apache haveing issue with.. semaphores many time. Solution as follow to remove
semaphores from apache.

Command to remove semaphores from apache:

ipcs -s | grep apache | perl -e 'while () { @a=split(/\s+/); print `ipcrm sem $a[1]`}'

Thanks-