Sunday, February 24, 2013

RSYNC


#!/bin/bash
sudo rsync -rltDvu --modify-window=1 --progress --delete --delete-excluded --exclude-from=/home/bob/Bash/BackupBigExclude.txt /home/bob/ /media/harddrive/backup

Explanation of commands: 
rsync: this is the program used to sync the data. Rsync basically can check the destination data and see if any changes have been made in the source data so that ONLY the source data that has been changed is updated. VERY useful.

-r: copies directories recursively
-l: copies symlinks as symlinks
-t: preserves modification times
-D: preserves device and special files
-v: shows output (verbose)
-u: skips files that are newer at the destination

--modify-window=1: this is essential if you are backing up to a filesystem that is NOT ext3 or ext2, e.g. NTFS or FAT32. Basically in windows filesystem times are kept as even numbers. This command tells rsync to ignore file changes that are only 1 second in difference from the original. It is almost impossible that you will create a file, sync it, and in ONE second make a change and want to sync it again. So it is safe to use this option and it means that rsync will not back up everything every time simply because of a one second change.
--progress: simply shows the progress
--delete: this is important. Basically rsync syncs files that have been changed. But what if you delete a file from the source directory? This command deletes it from your backed up hard drive as well.

--delete-excluded: this deletes folder/files that you have specifically excluded.

--exclude-from=/home/bob/Bash/BackupExclude.txt: this is the other crucial command. This basically tells rsync to exclude the files/folders found in the list BackupExlude.txt. To create this list do the following:
gedit /home/bob/Bash/BackupExclude.txt
Now in the text editor it is entirely up to you what you want to exlcude.
This is my list:
MyDownloads
.VirtualBox
lost+found

Thursday, November 22, 2012

Starting Postgress SQL


Install It
apt-get install postgresql-9.1

Create a user
sudo -u postgres createuser -d -R -P

Give a password for the user.
sudo -su postgres

postgres$  psql -U postgres

ALTER USER postgres with password 'secure-password';

now you can directly connect from Super User like this
psql -U postgres -h localhost


Create a database

createdb mydb


Export from one db to another
pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser 
Take a dump
pg_dump -c -U postgres ${fromDataBase} -f ABIMS9JAN13tabledump.sql -h ${fromHost}
Execute the dump
psql -d ${toDataBase} -f dumpfilename.sql -h ${toHost} -U postgres -w password




Install GUI
sudo apt-get install pgadmin3

pgadmin3

pg_dump --username "postgres" -Fc origin > origin.dump


pg_restore --username "postgres" -d target origin.dump

Friday, October 19, 2012

Which Process Running on What Port

http://www.debian-administration.org/articles/184



To see all the ports open for listening upon the current host you can use another command netstat (contained in the net-tools package):
root@mystery:~# netstat -a |grep LISTEN |grep -v unix



Which process is bound to port 80

lsof -i :80

Friday, October 12, 2012

Installed Packages and Locations?


What is installed ?
       $ dpkg --get-selections
       or
       $ dpkg --list  
       or
       $ dpkg --list | grep -i 'gradle'

Location installed ?
       $ dpkg -L gradle

To Remove ?
       $ sudo apt-get --purge remove lighttpd

Wednesday, September 26, 2012

Find a file in Debian

 find /usr -name java

--find under the folder /user the name java. Can use wild cards like *.txt etc etc.

Setting Oracle's Java instead of Open JDK in Debeian based distributions


  1. Enter sudo add-apt-repository ppa:webupd8team/java to add the partner repository.
  2. Enter sudo apt-get update to update the source list.
  3. Enter sudo apt-get install oracle-java7-installer

Thursday, September 20, 2012

Installing Oracle 11gXE in Linux Mint Mate 12

I followed this article, and it helped a lot!

http://mikesmithers.wordpress.com/2011/11/26/installing-oracle-11gxe-on-mint-and-ubuntu/

Note that, Oracle 11g XE Does not support debeian based package installers, hence I ran into many difficulties, but eventually managed to install successfully.

Installing Oracle XE 11g Release 2 was extremely successful in Debian Squeezy OS.

These are the basic steps I followed.

1. First download and unzip the RPM.

   
   unzip oracle-xe-11.2.0.1.0.x86_64.rpm.zip


2. Convert the RPM to DEB.


  sudo alien --scripts oracle-xe-11.2.0-1.0.x86_64.rpm

3. Install this Lib. In Debian Squeeze, I had to add an entry to the /etc/sources after having searched for the libaio1 from the net for debian. 

  sudo apt-get install alien libaio1

4.  Create the chkconfig file.

      cd /sbin

      vi chkconfig

#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Debian by Dude
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
   echo >> $file
   echo '### BEGIN INIT INFO' >> $file
   echo '# Provides:             OracleXE' >> $file
   echo '# Required-Start:       $remote_fs $syslog' >> $file
   echo '# Required-Stop:        $remote_fs $syslog' >> $file
   echo '# Default-Start:        2 3 4 5' >> $file
   echo '# Default-Stop:         0 1 6' >> $file
   echo '# Short-Description:    Oracle 11g Express Edition' >> $file
   echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01

sudo chmod 755 chkconfig

5.  sudo ln -s /usr/bin/awk /bin/awk


6. 

Now you need to set the shared memory file system which oracle uses
mount -t tmpfs shmfs -o size=2048m /dev/shm

df-h should return the below result
shmfs           2.0G  1.2M  2.0G   1% /dev/shm



if this failed unlink /dev/shm

sudo unlink /dev/shm
sudo mkdir /dev/shm
sudo mount -t tmpfs shmfs -o size=2048m /dev/shm



7. dpkg --install ./oracle-xe_11.2.0-2_amd64.deb 

8.grep /var/lock/subsys /etc/init.d/oracle-xe

9    sed -i 's,/var/lock/subsys,/var/lock,'/etc/init.d/oracle-xe

10.
      sudo usermod -a -G dba oracle
sudo usermod -a -G dba mike



11. Make sure these environment variables are set for all users

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_SID=XE
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export PATH=$ORACLE_HOME/bin:$PATH

You can execute the script given by oracle, located in:
/u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

or add the above line to the of /etc/bash.bashrc



Note: when you switch to oracle user:
i.e. su - oracle, make sure the environment variables are still set.


12. /etc/init.d/oracle-xe configure

If oracle didnt start successfully, i.e if you didn't get the output shown in the end of this blog, do the following

su - oracle


./u01/app/oracle/product/11.2.0/xe/bin/lsnctrl

start


These are the only changes I made in the sequence mentioned above.
Oracle started successfully, and was able to connect and create tables etc etc.



byorn@boogy /etc/init.d $ sudo ./oracle-xe status LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 23-SEP-2012 18:16:47 Copyright (c) 1991, 2011, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production Start Date 23-SEP-2012 18:16:18 Uptime 0 days 0 hr. 0 min. 29 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Default Service XE Listener Parameter File /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/boogy/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=boogy)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=boogy)(PORT=8080))(Presentation=HTTP)(Session=RAW)) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Service "XE" has 1 instance(s). Instance "XE", status READY, has 1 handler(s) for this service... Service "XEXDB" has 1 instance(s). Instance "XE", status READY, has 1 handler(s) for this service... The command completed successfully



Note: When I restarted my machine, oracle failed because df-h didnt show me the newly created shared memory file system.
For that i shut down oracle completely, and executed the steps in 6. and started again, all went fine.