Search

Monday 15 October 2012

More misc linux stuff


cool linux apps

lmms
handbrake
audacity
xbmc
hugin
htop - awesome coloured version of top

how to make a bitnami stack executable (bin file)
chmod 755 filename.bin
./filename.bin

check packet flow on linux with
iptstate
this uses the libnetfilter_conntrack part of linux kernel
It analyses all nics
If you can see traffic on a particular port and you want to see if it is coming from your machine check your /etc/services file to see if a known service is listed for it.
If you need more info use netstat:
netstat -nap
(you can pipe this to grep to analyse specific ports)
netstat -nap | grep ":22\s"

Look at devices
/sbin/lspci
or
/sbin/lspci -vv
for more detail

look for usb only

/sbin/lspci | grep -i usb

you can also run

/sbin/lsusb

Kernel modules are in
/lib/modules//kernel
find the loaded ones using
lsmod

To find out what has been plugged or unplugged query the kernel with
dmesg

check disk space
df

Check io
iostat
or
iostat 5 5 (try 5 times with 5 second pause)

check processes
ps (plus switches)

create a folder
mkdir
or create nested folders
mkdir -p top/onedown/twodown

copy files
cp cheese.txt /folder/cheese.txt


send mail from the command line in linux (ubuntu)

sudo apt-get install ssmtp

Then edit the ssmtp configuration file:

sudo gedit /etc/ssmtp/ssmtp.conf

at the very least set the mailhub
Mailhub=foo.bar.thing.com

to enable 'mail' from the command line install the mail utils:
sudo apt-get install mailutils

then from the command line, any command can be piped to mail:

ls | mister@cheese.com

Compile a linux application from source:
Download source files
unpack to a working directory:
tar xzvf nameoffile.tgz
cd to this folder
To compile:
./configure
make
su -c "make install"

Apps to configure Linux iptables with a GUI:
www.fwbuilder.org
www.simonzone.com/software/guarddog
www.shorewall.net

APT commands

apt-get update
apt-get upgrade
apt-get install
apt-get remove
apt-get clean
apt-get autoclean
apt-get autoremove

Monday 17 September 2012

Ubuntu 12.04 and SOLR 3.6 Install + TIKA

Ubuntu 12.04 LTS 64 bit Apache solr Tomcat 6 install with Tika and other JARS


We have chosen this particular Linux variant for it's long term support options for updates etc.


  • Install base OS, 64 bit variant
  • install tomcat6 + tomcat6-common + tomcat6-admin
sudo apt-get install tomcat6
sudo apt-get install tomcat6-admin
  • Modify the admin configuration to allow a new login.
sudo service tomcat6 restart
  • Check Tomcat works by visiting: http://localhost:8080
  • Prepare the solr environment
  • Create a temp folder for the solr binary
mkdir -p ~/tmp/solr/
  • Navigate to that folder
cd ~/tmp/solr/
  • download the latest Apache Lucene solr binary using WGET (you will need to get the latest URL for the version you wish to install)
wget http://apache.ziply.com/lucene/solr/3.6.0/apache-solr-3.6.0.tgz
  • Decompress the binary file
tar xzvf apache-solr-3.6.0.tgz
  • Create a folder for the main solr files (this is where the main SOLR config files are, not the expanded webapp)
sudo mkdir -p /var/solr 
  • Copy the compressed solr webapp into the /var/solr folder
sudo cp apache-solr-3.6.0/dist/apache-solr-3.6.0.war /var/solr/solr.war
  • copy the main solr files into /var/solr (you can either copy the default examples SOLR or multicore)
sudo cp -R apache-solr-3.6.0/example/solr/* /var/solr/
  • Give the tomcat6 service owner rights to the /var/solr folder
sudo chown -R tomcat6 /var/solr/ 
  • set the SOLR home environment variable (solr needs to know where its config is) and change JAVA memory allocations, set on a per webapp basis
sudo gedit /etc/init.d/tomcat6
JAVA_OPTS="$JAVA_OPTS -Dsolr.home=/var/solr -Xms1g -Xmx4g" 
  • Restart tomcat6
sudo service tomcat6 restart
  • Tell Tomcat catalina where to get everything and the solr webapp is extracted and run from:
/var/lib/tomcat6/webapps/solr/ 

echo -e '\n\n' | sudo tee -a /etc/tomcat6/Catalina/localhost/solr.xml
echo 'TOMCAT6_SECURITY=no' | sudo tee -a /etc/default/tomcat6
  • As we need to index binary files such as Word and PDF we need to copy extra libraries from your extracted solr binary folders
cd ~/tmp/solr/

sudo cp apache-solr-3.6.1/contrib/extraction/lib/*.jar /var/lib/tomcat6/webapps/solr/WEB-INF/lib/
sudo cp apache-solr-3.6.1/contrib/dataimporthandler/lib/*.jar /var/lib/tomcat6/webapps/solr/WEB-INF/lib/
  • Restart the server
sudo reboot
  • We now need to test our solr installation
  • First we must install the curl command to send binary files via http to the request handler
sudo apt-get install curl
  • Create a text (non image) PDF file by creating a text file in Gedit and printing the result to the file test.pdf (save this in your /home/documents/ folder)
  • Now we will take the test file and 'curl' it into solr
cd /home//Documents/

curl "http://localhost:8080/solr/update/extract?literal.id=smoketest&commit=true" -F "myfile=@test.pdf"
  • If all goes well you should receive output similar to the following:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">124</int></lst>
</response>

  • Now test to see if you can search the index
  • From a remote PC enter the following URL:
http://:8080/solr/admin
  • In the query string box enter the following:
id:smoketest
  • Press search
  • If all works well the id will be discovered in the index and results similar to the following will be displayed:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">id:smoketest</str>
<str name="version">2.2</str>
<str name="rows">10</str>
</lst></lst>
<result name="response" numFound="1" start="0">
<doc>
<arr name="content_type">
<str>application/pdf</str>
</arr><str name="id">smoketest</str>
</doc>
</result>
</response>

  • the 'numFound' variable shows 1 matching hit for 'smoketest' so we can confirm the system is working correctly
  • Once the basic system is running it is time to apply the custom solr schema (if you have/need one). The schema resides in the following location:
/var/solr/conf/schema.xml










Wednesday 18 April 2012

How to use the GREP command


I recently had to search for a particular string in a bunch of PHP and CGI bin files, other search methods would not have worked so grep came to the rescue!

grep command
grep “text string to search” directory-path

Examples

To search for a string called CHEESE in all text files located in /home/purpleotter/*.txt directory:


$ grep "CHEESE" /home/purpleotter/*.txt

To search all subdirectories recursively

To search for a text string in all files under directories, recursively use the -r option:

$ grep -r "CHEESE" /home/purpleotter

Tuesday 27 March 2012

Install SOLR 3.5 on Centos

Install Centos 32 or 64 bit on the relevant hardware or VM accepting all default installation options

Install Tomcat 6.x from the Centos package manager

Modify startup items to make sure Tomcat 6 runs at boot time. Please note startup items are user specific, so if logged in as administrator, root would not have Tomcat startup automatically

Reboot the server

Test if Tomcat is working by opening Firefox and navigating to http://localhost:8080/manager/html

Download the TGZ binary (non src) version of SOLR 3.5 from http://www.mirrorservice.org/sites/ftp.apache.org//lucene/solr/3.5.0/

Decompress file to /OPT/SOLRBINARY (you will need to create this folder)

Copy the whole SOLR folder from /OPT/SOLRBINARY/apache-solr-3.5.0/example/  to /OPT/
Running as root, open a terminal and run the following - CHMOD 777 –R /OPT
Copy the Tomcat SOLR webapp (the .WAR file) from /OPT/SOLRBINARY/apache-solr-3.5.0/dist to /OPT/SOLR/ and rename it to solr.war

Now copy this solr.war file to /USR/SHARE/TOMCAT6/WEBAPPS
From the command line terminal run (as root): service tomcat6 restart
Now, to fix library bugs copy the following from /OPT/SOLRBINARY/apache-solr-3.5.0/contrib./extraction/lib: (where x is version number)

Tika-core-x.jar
Xmlbeans-x.jar
Xml-apis-x.jar
Xercesimpl-x.jar

Copy to /USR/SHARE/TOMCAT6/WEBAPPS/SOLR/WEB-INF/LIB

From the command line terminal run (as root): service tomcat6 restart
Set the solr/home value in the /USR/SHARE/TOMCAT6/WEBAPPS/SOLR/WEB-INF/web.xml file by editing and un-commenting the following and changing the paths to those shown below:

   solr/home
   /OPT/SOLR
   java.lang.String

There is a bug in the 3.5.x velocity writer module and to fix this edit OPT/SOLR/CONF/SOLRCONFIG.XML and comment out line 1554 (which starts ‘Query Response Writer Velocity’)

Copy your custom schema.xml file to /OPT/SOLR/CONF/SCHEMA.XML (if you have one)
From the command line terminal run (as root): service tomcat6 restart
Reboot the server
Test if Solr is running by going to: http://localhost:8080/solr/admin
Copy or create a PDF file locally on the SOLR server and place it in /OPT/SOLR (make sure the PDF is a ‘text’ PDF containing searchable strings
Open a terminal and navigate to /OPT/SOLR

Test an indexing of a file by using curl to upload the PDF file:
curl “http://localhost:8080/solr/update/extract?literal.id=smoketest&commit=true –F “myfile=@testpdf.pdf”
Navigate back to http://localhost:8080/solr/admin and in the ‘Query String’ box enter:
id:smoketest

Then press ‘search’
An XML results page should be displayed with your PDF file as the search result