Wednesday 21 October 2015

Reinstall a corrupted or destroyed boot partition. How to install Adobe Reader on Centos 6

How to install Adobe Reader on Centos 6

yum localinstall http://linuxdownload.adobe.com/linux/i386/AdbeRdr9.5.5-1_i486linux_enu.rpm

                    or

yum localinstall http://linuxdownload.adobe.com/linux/x86_64/adobe-release-x86_64-1.0-1.noarch.rpm

cannot create key change index database disk image is malformed

#yum clean all

#yum clean metadata

#yum clean dbcache

or

#yum history new

then
#yum makecache

Yum segmentation fault ( core dumped )

#rm -rf /var/lib/rpm/__db.* 
 
#rpm --rebuilddb 
 
#yum clean all 
 
#yum makecache

Scriptlet failed exit status 1

Run the following command

#rpm -e package-name --noscripts

Error : cannot retreive metalink for repository : epel. Please verify its path and try again

#sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo
#yum check-update

Running these commands will update the repo to use HTTP rather than HTTPS

ftp issue 500: oops : cannot change directory

#getenforce ( Selinux status )
enforcing ( if output)

#getsebool -a | grep ftp

check for ftp_home_dir ---- off
if it is in off state then
#setsebool -P ftp_home_dir 1 ( or on )

hence problem solved

Reinstall a corrupted or destroyed boot partition.


Lately I have had a couple of systems where the boot partition got corrupted or it's contents
deleted mistakenly. Even though I could not boot the system, I did not want to reinstall the whole
system and recover the data from backups.

1. Boot the computer into rescue mode with the relevant CD/DVD by typing "linux rescue" at the boot prompt.
2. Mount the / partition of the system. On CentOS this is automatically done and the / is mounted on /mnt/sysimage.
Otherwise just do (assuming the root partition is on /dev/sda2)
mount /dev/sda2 /mnt/sysimage
3. Chroot into the old root partition since that is where we actually want to make all the changes
chroot /mnt/sysimage
4. If the filesystem labels got deleted up for some reason or they don't agree with what is described in /etc/fstab we should fix that (Assuming the boot partition is /dev/sda1):
e2label /dev/sda1 /boot
5. Make sure the boot partition is mounted:
mount /dev/sda1 /boot
6. Mount the CD-ROM we used to boot the machine
mkdir /media/cdrom
mount -o loop,ro /dev/hdc /media/cdrom
7. Now we need to install the relevant rpms. Make sure you pick the correct kernel for your configuration system (PAE etc..):
cd /media/cdrom/CentOS (this will vary depending on the distro)
rpm -ivh --force kernel-2.6.18-164.el5.i686.rpm
rpm -Uvh --force grub-0.97-13.5.i386.rpm
rpm -Uvh --force redhat-logos-4.9.99-11.el5.centos.noarch.rpm
8. Install GRUB:
grub-install /dev/sda1 (or whichever partition boot is mounted on)
9. If /boot/grub/grub.conf is also lost, you need to create it manually.
vim /boot/grub/grub.conf default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS
        root (hd0,0)
        kernel /vmlinuz-6.18-164.el5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-164.el5.img
10. Lastly make a soft link to grub.conf:
cd /boot/grub
ln -s grub.conf menu.lst
Reboot the system and if everything goes well it should boot normally. Run immediately a yum upgrade incase you had to install an older version of the kernel from the CD-ROM.

Wednesday 12 August 2015

How to Set or Increase Memory Heap Size in Apache Tomcat



By default Tomcat server sets its own memory heap size 64MB but its not

enough for run your application, so we can set size  by CATALINA_OPTS or  

JAVA_OPTS,

-Xmx   set Maximum Java Heap Size
-Xms   set Initial Java Heap Size

Option 1:

Open the catalina.sh script file under $CATALINA_HOME/bin/catalina.sh

directory assign it,


1
2
export CATALINA_OPTS="-Xms128M -Xmx512M"

or simply export,
1
2
export CATALINA_OPTS="-Xms128M -Xmx512MB"

The heap size has been set to Minumum 128MB and maximum 512MB

Option 2:

$CATALINA_HOME/bin/setenv.sh


Another option is create a setenv.sh file and add below line,
1
2
export CATALINA_OPTS="${CATALINA_OPTS} -Djava.awt.headless=true -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true -Xms128m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=950m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"

or
1
export CATALINA_OPTS="-Xms128M -Xmx512MB"


You might restart tomcat server,
 
# pkill -9 java

# /usr/local/apache-tomcat/bin/startup.sh

# ps aux | grep java
1
2
3
root      9447  1.1 13.2 2127844 543868 ?      Sl   17:20   3:38 /usr/java/jdk1.7.0/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/tomcat7/conf/logging.properties -Djava.awt.headless=true -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true -Xms128m -Xmx512m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -Djava.endorsed.dirs=/usr/local/tomcat7/endorsed -classpath :/usr/local/tomcat6/bin/bootstrap.jar:/usr/local/tomcat7/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat7 -Dcatalina.home=/usr/local/tomcat7 -Djava.io.tmpdir=/usr/local/tomcat6/temp org.apache.catalina.startup.Bootstrap start
root     12761  0.0  0.0 103244   868 pts/0    S+   22:24   0:00 grep java

or can use netstat command,
 
# netstat -anp | grep java
1
2
3
4
5
6
7
tcp        0      0 :::8009                     :::*                        LISTEN      9447/java           
tcp        0      0 :::8080                     :::*                        LISTEN      9447/java           
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      9447/java           
tcp        0      0 ::ffff:127.0.0.1:35334      ::ffff:127.0.0.1:3306       ESTABLISHED 9447/java           
tcp        0      0 ::ffff:127.0.0.1:56156      ::ffff:127.0.0.1:3306       ESTABLISHED 9447/java           
unix  2      [ ]         STREAM     CONNECTED     113825 9447/java 


Windows  Server:

To set in windows operating system, Create a setenv.bat file and add the below line,
1
export JAVA_OPTS="-server -Xmx512m"

or
1
set JAVA_OPTS="-Xms256m -Xmx512m"


Error:

If you may get an error java.lang.OutOfMemoryError: PermGen space in both windows or linux system,

Configure the MaxPermSize value in  setenv.sh or catalina.sh like,
1
2
export JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=128m"

If you have changed any configuration might restart tomcat server.

Friday 24 July 2015

Webacula Monitoring getting blank page/ How to get the Webacula login page



When you run webacula monitoring :
1.If you get the blank page then check the below command
#psql -h localhost -U postgres -d bacula
the output should be:
psql (9.2.4)
Type "help" for help.
bacula=#
if you get the error like below:
psql: could not connect to server : connection refused.
Is the server running on the localhost and accepting Tcp/Ip connection on port 5432?
Then run the below command
#setsebool -P httpd_can_network_connect 1
And disable selinux:
#cd /etc/sysconfig
#vi selinux
Add the below line and save the file
SELINUX=disabled
#SELINUX=enforcing /* comment this line*/
 
2.Error: In /etc/httpd/conf.d/errorlog /var/www/html/webacula/data/cache not exists
Solution: #chmod -R 777 /var/www/html/webacula/data/cache

3.Error: httpd could not reliably determine the server's fully qualified domain
Solution: Add the below line in /etc/httpd/conf/httpd.conf
#cd /etc/httpd/conf
#vim httpd.conf
ServerName localhost
And save the file.
Now restart the httpd
#service httpd restart

4.While creating postgresql tables if you get the error like below
role “root” does not exist
Then
#su – postgres
#psql
#CREATE ROLE root;
#ALTER ROLE root LOGIN;
Now create postgresql tables.

5.Check the webacula tables
#su – postgres
#psql
#\c bacula
Owner of webacula tables should be postgres otherwise change it.
#ALTER TABLE <table name> OWNER TO postgres;
like this do for all tables.

httpd could not reliably determine the server's fully qualified domain


 
Error: httpd could not reliably determine the server's fully qualified domain
 Solution: Add the below line in /etc/httpd/conf/httpd.conf
#cd /etc/httpd/conf
#vim httpd.conf
ServerName localhost
And save the file.
Now restart the httpd
#service httpd restart

How to upgrade firefox on centos6/Rhel/Fedora


Download repo:
#wget  http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

#rpm -Uvh epel-release-6-8.noarch.rpm 
#wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
 
#rpm -Uvh remi-release-6.rpm 
#yum --enablerepo=remi list firefox
 
#yum --enablerepo=remi install firefox
 
#firefox
 
#cd /usr/local
 
Download firefox 36: 
#wget http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/linux-x86_64/en-US/firefox-36.0.1.tar.bz2
 
#tar xvjf firefox-36.0.1.tar.bz2
 
#ln -s /usr/local/firefox/firefox /usr/bin/firefox
 
#firefox &

nmap

#nmap machin_name

unexpectedly disconnected from boot status daemon init: prefdm respawning too fast,stopped



Installing boot loader only using grub:in rescue installed system centos 6/Rhel/Fedora

# grub

Probing devices to guess BIOS drives. This may take a long time.

GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB

lists possible command completions. Anywhere else TAB lists the possible

completions of a device/filename.]

grub> find /boot/grub/stage1

(hd0,5)

(hd0,9)

grub> root (hd0,5)

Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)

Checking if "/boot/grub/stage1" exists... yes

Checking if "/boot/grub/stage2" exists... yes

Checking if "/boot/grub/e2fs_stage1_5" exists... yes

Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.

Succeeded

Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p

(hd0,5)/boot/grub/stage2

/boot/grub/grub.conf"... succeeded

Done.

grub> quit

#reboot

hence problem solved.

Installing Grub using grub-install: in rescue installed system centos 6/Rhel/Fedora


#df -h

check the filesystem name of /boot

#cd /sbin

#grub-install /dev/sda5 /* where /dev/sda5 is /boot filesystem name*/

output:

Installation finished. No error reported.

This is the contents of the device map /boot/grub/device.map.

Check if this is correct or not. If any of the lines is incorrect,

fix it and re-run the script `grub-install'.

# this device map was generated by anaconda

(hd0) /dev/sda

#reboot

How to upgrade centos 6.2 to centos 6.5



Upgrade an existing system:
  • Insert centos 6.5 DVD
  • Press F10
  • Select Install or upgrade an existing system
  • skip
  • Next
  • English Next
  • U.S English Next
  • Select Basic storage devices Next
  • Select upgrade an existing system Next
  • Select Create a new bootloader Next
  • Select centos 6.5 Install
Hence problem solved
After this if you didn't get GUI then
#vi /etc/inittab
Replace 3 with 5 in the last line id:5
#reboot
now you will get the gui
If you feel the desktop is different from the desktop before you used then follow below steps
#vim /etc/sysconfig/desktop
DESKTOP=GNOME
DISPLAYMANAGER=GNOME
#reboot

Description about display manager



There is a configuration file called /etc/sysconfig/desktop. This file defines default display manager and desktop name.
Display manager can be any one of the following:
[a] gnome (gdm)
[b] kde (kdm)
[c] xdm (xdm)
Desktop can be any one of the following
[a] KDE
[b] GNOME
[c] XFCE
Specifying GNOME as a display manager will invoke GDM.
Upon boot, the system will run /etc/init/prefdm.conf which will in turn call the "Preferred Display Manager" (prefdm) script /etc/X11/prefdm which will utilize the settings in /etc/sysconfig/desktop if available.

Errors And Fixes While booting



When I start the centos 6.2 system centos6 logo stucked it didn't give the login prompt
So, I restart the system by CTRL+ALT+DELETE and i pressed the ESC key when circle had come
to see the errors.
The errors are:
  • unexpectedly disconnected from boot status daemon
  • init: prefdm respawning too fast,stopped
In my system may be These errors are because httpd remove/update.
Before this I did following:
I removed httpd by #yum remove httpd*
after that I installed httpd-2.4.10 source file by following some steps.
After i reboot the system i got the above errors.
There are two ways to fix these errors:
  • by rescue installed system from centos 6.2 dvd
  • by upgrade an existing system from centos 6.5 dvd
Rescue installed system:
  • Insert centos 6.2 dvd
  • press F10 key
  • select cd/dvd sta
  • select rescue installed system
  • Language English OK
  • US OK
  • Drive Local cd/dvd OK
  • Enable network interface OK
  • Configure network IPv4 settings manually by giving IP address,Gateway and Nameserver
  • after that press OK until you get command line prompt like bash4.1$
  • $chroot /mnt/sysimage
  • #yum remove httpd*
  • you have to install httpd-2.2.15-29.el6.centos.x86_64
  • Download following rpm packages in another linux system
  • In that goto downloads copy the above three files to one folder and copy that folder to Desktop
  • compress the folder to .zip(httpd.zip)
  • now open terminal
  • #cd /root/Desktop
  • ftp 192.168.1.22 /*your system ip address*/
  • ftp>cd /root
  • ftp>bin
  • ftp>hash
  • ftp>prompt
  • ftp>mput httpd.zip
  • ftp>bye
  • now from your system #cd /root
  • #unzip httpd.zip
  • #rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm
  • #rpm -ivh httpd-devel-2.2.15-29.el6.centos.x86_64.rpm
  • #rpm -ivh httpd-tools-2.2.15-29.el6.centos.x86_64.rpm
  • #sync
  • #exit
  • #reboot
hence problem solved

PostgreSQL+OpenLDAP+CentOS


$ yum install postgresql-* openldap-servers-sql openldap-clients

$ su - postgres

$ initdb -D /var/lib/pgsql/data

$ postmaster -D /var/lib/pgsql/data &

$ exit

$ cat /etc/odbc.ini

[ODBC Data Sources]

PgSQL=PostgreSQL

[PgSQL]

Driver=/usr/lib/psqlodbc.so

Description=Connection to LDAP/Postgresql

Servername=localhost

Port=5432

Protocol=6.4

FetchBufferSiza=99

Username=test

Password=test

Database=pg_ldap

ReadOnly=no

Debug=1

CommLog=1

[ODBC]

InstallDir=/usr/lib/

$ cat /etc/odbcinst.ini

[PostgreSQL]

Description     = ODBC for PostgreSQL

Driver          = /usr/lib/psqlodbc.so

FileUsage       = 1

$ cd /usr/share/doc/openldap-servers-sql-2.3.43/rdbms_depend/pgsql

$ cp * /var/lib/pgsql/data 

$ cat /etc/openldap/slapd.conf

include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/misc.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/openldap.schema

include         /etc/openldap/schema/samba.schema

access to *

        by self write

        by * read

access to * by dn="cn=root,dc=example,dc=com" write         

pidfile         /var/run/openldap/slapd.pid

argsfile        /var/run/openldap/slapd.args

modulepath      /usr/lib/openldap

moduleload      back_sql.la                    

database        sql

suffix         "dc=example,dc=com"

rootdn         "cn=root,dc=example,dc=com"

rootpw          secret

dbname          PgSQL

dbuser          test

dbpasswd        test

insentry_query  "insert into ldap_entries (id,dn,oc_map_id,parent,keyval) values ((select max(id)+1 from ldap_entries),?,?,?,?)"

upper_func      "upper"

strcast_func    "text"

concat_pattern  "?||?"

has_ldapinfo_dn_ru      no         

lastmod off

$ su - postgres

$ cd /var/lib/pgsql/data

$ createdb pg_ldap

$ createuser --no-createdb --no-createrole --no-adduser --password test

$ psql -d pg_ldap < backsql_create.sql

$ psql -d pg_ldap < testdb_create.sql

$ psql -d pg_ldap < testdb_metadata.sql

$ psql -d pg_ldap < testdb_data.sql

$psql -d pg_ldap -c "GRANT ALL ON ldap_attr_mappings,ldap_entries,ldap_entry_objclasses,ldap_oc_mappings,referrals,certs TO test1;"

 $psql -d pg_ldap -c "GRANT ALL ON ldap_attr_mappings_id_seq,ldap_entries_id_seq,ldap_oc_mappings_id_seq,referrals_id_seq TO test1;"

$psql -d pg_ldap -c "GRANT ALL ON authors_docs,documents,institutes,persons,phones TO test1;"

$ psql -d pg_ldap -c "GRANT ALL ON documents_id_seq,institutes_id_seq,persons_id_seq,phones_id_seq TO test1;"

$ exit

$ /etc/init.d/ldap start

$ ldapsearch -x -h localhost -b "dc=example,dc=com" "(objectClass=*)"

$ echo ‘dn: cn=Test Entry,dc=example,dc=com

objectClass: inetOrgPerson

cn: Test Entry

sn: Entry

givenName: Test’>1.ldif

$ ldapadd -x -h localhost -D “cn=root,dc=example,dc=com” -w secret -f 1.ldif

Thursday 23 July 2015

How to Install uPortal 4+Postgresql+Centos6/Rhel/Fedora

How to Install uPortal 4+Postgresql+Centos6/Rhel/Fedora


Uportal Installation and Configuration


Download uPortal 4.2 from the below link:

uPortal Dependencies:
  • apache-ant-1.8.2
  • Centos 6.5
  • apache-maven-3.0.5
  • apache-tomcat-7.0.59
  • Java 7
  • Postgresql
Download links:
ant:

maven:

tomcat:

#cp /root/Downloads/apache-ant-1.8.2-bin.tar.gz /opt/uportal_dep

#cp /root/Downloads/apache-maven-3.0.5-bin.tar.gz /opt/uportal_dep

#cp /root/Downloads/apache-tomcat-7.0.59.tar.gz /usr/local

#cd /usr/local

#mv apache-tomcat-7.0.59 uPortal_tomcat

#vim ~/.bashrc

add below lines:
export ANT_HOME=/opt/uportal_dep/apache-ant-1.8.2
export M2_HOME=/opt/uportal_dep/apache-maven-3.0.5
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
export JAVA_HOME=/usr
export TOMCAT_HOME=/usr/local/uPortal_tomcat

and save it by :wq
#source ~/.bashrc

#vim /usr/local/uPortal_tomcat/conf/catalina.properties

add
shared.loader=${catalina.base}/shared/lib/*.jar

and save it by :wq

#vim /usr/local/uPortal_tomcat/bin/setenv.sh

export JAVA_OPTS="$JAVA_OPTS -XX:+PrintCommandLineFlags -XX:MaxPermSize=384m -Xms1024m -Xmx1024m -Djsse.enableSNIExtension=false"

and save it by :wq

#vim /usr/local/uPortal_tomcat/bin/startup.sh

export CATALINA_OPTS=”-Xms512M -Xmx1024M”

and save it by :wq

#su – postgres

$psql

=#create database uportal;

=#create user uportal with password 'uportal';

=#grant all privileges on database uportal to uportal;

=#\q

$exit

#cd /opt

#cp /root/Downloads/uPortal-4.2.0-M1.tar.gz /opt

#tar -zxvf uPortal-4.2.0-M1.tar.gz

#cd uPortal-4.2.0-M1

#cd uportal-db

#vim pom.xml

uncomment postgresql dependency
if your postgresql is below 9.2 version then it should be
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>8.2-507.jdbc3</version>
<scope>compile</scope>
</dependency>

if your postgresql is 9.2 later then it should be
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.2-1003-jdbc3</version>
<scope>compile</scope>
</dependency>

#cd /opt/uPortal-4.2.0-M1/filters

#vim local.properties

comment hsql lines
add postgresql below lines
## Database Connection Settings (Uncomment the Maven Filters section in rdbm.properties)
environment.build.hibernate.connection.driver_class=org.postgresql.Driver
environment.build.hibernate.connection.url=jdbc:postgresql://localhost:5432/uportal
environment.build.hibernate.connection.username=uportal
environment.build.hibernate.connection.password=uportal
environment.build.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
environment.build.hibernate.connection.validationQuery=select 1

and save it by :wq

#cd /opt/ uPortal-4.2.0-M1

#cp build.properties.sample build.properties

add

server.home=/usr/local/uPortal_tomcat

and save it by :wq

#cd /opt/uPortal-4.2.0-M1

#ant dbtest > antdbtest.log &

#tail -f antdbtest.log

After getting build successful

#ant clean initportal > antinit.log &

After getting build successful
Restart Tomcat as below

#cd /usr/local/uPortal_tomcat

#cd bin

#./shutdown.sh

check whether tomcat process is running or not by

#ps -efa | grep tomcat

check whether any process is running at port 8080 by

#netstat -tlnp | grep '8080'

#./startup.sh

open the web browser and check

localhost:8080/uPortal


references: