Shell script Webfile Backup for webserver
# mkdir /backups/web_backup/
# vi /backups/webbackup.sh
#!/bin/bash
export path1=/backups/web_backups
date1=`date +%y%m%d_%H%M%S`
/usr/bin/find /backups/web_backups/* -type d -mtime +3 -exec rm -r {} \; 2> /dev/null
mkdir $path1/$date1
cp -r /var/www/html $path1/
cd $path1/html
for i in */; do /bin/tar -zcvf "$path1/$date1/${i%/}.tar.gz" "$i"; done
if [ $? -eq 0 ] ; then
cd
rm -r /backups/web_backups/html
fi
done
:wq (save & exit)
Now schedule the script inside crontab:-
#The script will run every night at 12 A.M
#crontab -e
0 0 * * * /backups/webbackup.sh > /dev/null
Please share your ideas and opinions about this topic.
If you like this post, then please share with others.
Please subscribe on email for every updates on mail.
# vi /backups/webbackup.sh
#!/bin/bash
export path1=/backups/web_backups
date1=`date +%y%m%d_%H%M%S`
/usr/bin/find /backups/web_backups/* -type d -mtime +3 -exec rm -r {} \; 2> /dev/null
mkdir $path1/$date1
cp -r /var/www/html $path1/
cd $path1/html
for i in */; do /bin/tar -zcvf "$path1/$date1/${i%/}.tar.gz" "$i"; done
if [ $? -eq 0 ] ; then
cd
rm -r /backups/web_backups/html
fi
done
:wq (save & exit)
Now schedule the script inside crontab:-
#The script will run every night at 12 A.M
#crontab -e
0 0 * * * /backups/webbackup.sh > /dev/null
Please share your ideas and opinions about this topic.
If you like this post, then please share with others.
Please subscribe on email for every updates on mail.
Shell script for Mysql Database Backup
# mkdir /backups/db_backup/
# vi /backups/mysqlbackup.sh
#!/bin/bash
export path1=/backups/db_backup
date1=`date +%y%m%d_%H%M%S`
/usr/bin/find /backups/db_backup/* -type d -mtime +30 -exec rm -r {} \; 2> /dev/null
cd $path1/
mkdir $date1
USER="root"
PASSWORD="redhat123"
OUTPUTDIR="$path1/$date1"
MYSQLDUMP="/usr/bin/mysqldump"
MYSQL="/usr/bin/mysql"
HOST="localhost"
databases=`$MYSQL --user=$USER --password=$PASSWORD --host=$HOST \
-e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
echo "` for db in $databases; do
echo $db
if [ "$db" = "performance_schema" ] ; then
$MYSQLDUMP --force --opt --single-transaction --lock-tables=false --skip-events --user=$USER --password=$PASSWORD --host=$HOST --routines \
--databases $db | gzip > "$OUTPUTDIR/$db.gz"
else
$MYSQLDUMP --force --opt --single-transaction --lock-tables=false --events --user=$USER --password=$PASSWORD --host=$HOST --routines \
--databases $db | gzip > "$OUTPUTDIR/$db.gz"
fi
done `"
:wq
Now schedule the script inside crontab:-
#The script will run every night at 12 A.M
#crontab -e
0 0 * * * /backups/mysqlbackup.sh > /dev/null
Please share your ideas and opinions about this topic.
If you like this post, then please share with others.
Please subscribe on email for every updates on mail.
# vi /backups/mysqlbackup.sh
#!/bin/bash
export path1=/backups/db_backup
date1=`date +%y%m%d_%H%M%S`
/usr/bin/find /backups/db_backup/* -type d -mtime +30 -exec rm -r {} \; 2> /dev/null
cd $path1/
mkdir $date1
USER="root"
PASSWORD="redhat123"
OUTPUTDIR="$path1/$date1"
MYSQLDUMP="/usr/bin/mysqldump"
MYSQL="/usr/bin/mysql"
HOST="localhost"
databases=`$MYSQL --user=$USER --password=$PASSWORD --host=$HOST \
-e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
echo "` for db in $databases; do
echo $db
if [ "$db" = "performance_schema" ] ; then
$MYSQLDUMP --force --opt --single-transaction --lock-tables=false --skip-events --user=$USER --password=$PASSWORD --host=$HOST --routines \
--databases $db | gzip > "$OUTPUTDIR/$db.gz"
else
$MYSQLDUMP --force --opt --single-transaction --lock-tables=false --events --user=$USER --password=$PASSWORD --host=$HOST --routines \
--databases $db | gzip > "$OUTPUTDIR/$db.gz"
fi
done `"
:wq
Now schedule the script inside crontab:-
#The script will run every night at 12 A.M
#crontab -e
0 0 * * * /backups/mysqlbackup.sh > /dev/null
Please share your ideas and opinions about this topic.
If you like this post, then please share with others.
Please subscribe on email for every updates on mail.
AWS AMI Backup shell script
Prerequisites:
=============
Step: 1. Install Java :
# yum -y install java-1.7.0-openjdk
# export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
# java -version
Step: 2. Download & Unzip Amazon EC2 CLI Tools :
# yum -y install wget zip unzip
# cd /tmp
# wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
# unzip ec2-api-tools.zip
Step: 3. Install the Amazon EC2 CLI Tools :
# mkdir /usr/local/ec2
# mv ec2-api-tools-1.7.5.0 /usr/local/ec2/apitools/
Step: 4. Set variables :
# export EC2_HOME=/usr/local/ec2/apitools
# export PATH=$PATH:$EC2_HOME/bin
Step: 5. Add variables to Startup Script :
# cd etc/profile.d/
# vi aws.sh
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
export EC2_HOME=/usr/local/ec2/apitools
export PATH=$PATH:$EC2_HOME/bin
-- Save & Quit (:wq)
# chmod +x aws.sh
# sounce aws.sh
Step: 6. Logged in into AWS Web Panel.
Step: 7. Go to IAM Panel.
-- Click on Users (tab)
-- Create New Users.
-- Give User Name.
-- Click on Create.
-- Download the Credential.
-- Close.
-- Click on Newly Created User.
-- Permission (tab)
-- Click on Attach Policy.
-- Search (AmazonEC2FullAccess) & Select it.
-- Attach Policy.
Access Key ID: Provide your Access Key Id
Secret Access Key: Provide your Secret Access Key
Step: 8. Finally Create AMI Auto Backup Script :
# vi /backups/scripts/aws-ami-backup.sh
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/ec2/apitools/bin
# Please use env | grep EC2_HOME to find out your system's setting
EC2_HOME=/usr/local/ec2/apitools
# Please use env | grep JAVA_HOME to find out your system's setting
JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
date=`date +%d-%m-%Y_%H-%M-%S`
export EC2_HOME JAVA_HOME
export AWS_ACCESS_KEY=Provide your Access Key Id
export AWS_SECRET_KEY=Provide your Secret Access Key
# Regions reference: http://docs.aws.amazon.com/general/latest/gr/rande.html
region="ap-southeast-1"
# You can find your instance ID at AWS Manage Console
instanceID="i-c706e305"
# Your prefer AMI Name prefix
amiNamePrefix="SOUMYA-SOUMYATEST-AMI_$date"
# Your prefer AMI Description
amiDescription="Daily AMI backup"
# If you want to keep 7 days AMI backups, please set routine true otherwise set it false
routine=true
if [ $routine = true ]; then
# Setup AMI Name
amiName=$amiNamePrefix
# Get AMI ID
amiIDs=$(ec2-describe-images --region $region | grep 'ami-[a-z0-9]' | grep "$amiName" |cut -f 2)
# Get Snapshot ID
if [[ ! -z $amiIDs ]]; then
snapshotIDs=$(ec2-describe-snapshots --region $region | grep $amiIDs | cut -f 2)
fi
else
# Setup AMI Name
amiName=$amiNamePrefix
# Get AMI ID
amiIDs=$(ec2-describe-images --region $region | grep 'ami-[a-z0-9]' | cut -f 2)
# Get Snapshot ID
if [[ ! -z $amiIDs ]]; then
snapshotIDs=$(ec2-describe-snapshots --region $region | cut -f 2)
fi
fi
if [[ ! -z $amiIDs ]]; then
# Deregister AMI
for amiID in $amiIDs
do
ec2-deregister --region $region $amiID
done
# Delete snapshot
for snapshotID in $snapshotIDs
do
ec2-delete-snapshot --region $region $snapshotID
done
fi
# Create AMI
ec2-create-image $instanceID --region $region --name "$amiName" -d "$amiDescription" --no-reboot > /tmp/AMIBackup.txt
# Name Tag
amiid=`cat /tmp/AMIBackup.txt | cut -f2`
ec2addtag $amiid --tag Name=$amiName --region $region
-- Save & Quit (:wq)
# chmod 755 /backups/scripts/aws-ami-backup.sh
Step: 9. Schedule in Crontab :
# crontab -e
0 0 * * * /backups/scripts/aws-ami-backup.sh
-- Save & Quit (:wq)
Step: 10. Retstart the Cron Service :
# service crond restart
Done...!!!
Please share your ideas and opinions about this topic.
If you like this post, then please share with others.
Please subscribe on email for every updates on mail.
=============
Step: 1. Install Java :
# yum -y install java-1.7.0-openjdk
# export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
# java -version
Step: 2. Download & Unzip Amazon EC2 CLI Tools :
# yum -y install wget zip unzip
# cd /tmp
# wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
# unzip ec2-api-tools.zip
Step: 3. Install the Amazon EC2 CLI Tools :
# mkdir /usr/local/ec2
# mv ec2-api-tools-1.7.5.0 /usr/local/ec2/apitools/
Step: 4. Set variables :
# export EC2_HOME=/usr/local/ec2/apitools
# export PATH=$PATH:$EC2_HOME/bin
Step: 5. Add variables to Startup Script :
# cd etc/profile.d/
# vi aws.sh
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
export EC2_HOME=/usr/local/ec2/apitools
export PATH=$PATH:$EC2_HOME/bin
-- Save & Quit (:wq)
# chmod +x aws.sh
# sounce aws.sh
Step: 6. Logged in into AWS Web Panel.
Step: 7. Go to IAM Panel.
-- Click on Users (tab)
-- Create New Users.
-- Give User Name.
-- Click on Create.
-- Download the Credential.
-- Close.
-- Click on Newly Created User.
-- Permission (tab)
-- Click on Attach Policy.
-- Search (AmazonEC2FullAccess) & Select it.
-- Attach Policy.
Access Key ID: Provide your Access Key Id
Secret Access Key: Provide your Secret Access Key
Step: 8. Finally Create AMI Auto Backup Script :
# vi /backups/scripts/aws-ami-backup.sh
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/ec2/apitools/bin
# Please use env | grep EC2_HOME to find out your system's setting
EC2_HOME=/usr/local/ec2/apitools
# Please use env | grep JAVA_HOME to find out your system's setting
JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
date=`date +%d-%m-%Y_%H-%M-%S`
export EC2_HOME JAVA_HOME
export AWS_ACCESS_KEY=Provide your Access Key Id
export AWS_SECRET_KEY=Provide your Secret Access Key
# Regions reference: http://docs.aws.amazon.com/general/latest/gr/rande.html
region="ap-southeast-1"
# You can find your instance ID at AWS Manage Console
instanceID="i-c706e305"
# Your prefer AMI Name prefix
amiNamePrefix="SOUMYA-SOUMYATEST-AMI_$date"
# Your prefer AMI Description
amiDescription="Daily AMI backup"
# If you want to keep 7 days AMI backups, please set routine true otherwise set it false
routine=true
if [ $routine = true ]; then
# Setup AMI Name
amiName=$amiNamePrefix
# Get AMI ID
amiIDs=$(ec2-describe-images --region $region | grep 'ami-[a-z0-9]' | grep "$amiName" |cut -f 2)
# Get Snapshot ID
if [[ ! -z $amiIDs ]]; then
snapshotIDs=$(ec2-describe-snapshots --region $region | grep $amiIDs | cut -f 2)
fi
else
# Setup AMI Name
amiName=$amiNamePrefix
# Get AMI ID
amiIDs=$(ec2-describe-images --region $region | grep 'ami-[a-z0-9]' | cut -f 2)
# Get Snapshot ID
if [[ ! -z $amiIDs ]]; then
snapshotIDs=$(ec2-describe-snapshots --region $region | cut -f 2)
fi
fi
if [[ ! -z $amiIDs ]]; then
# Deregister AMI
for amiID in $amiIDs
do
ec2-deregister --region $region $amiID
done
# Delete snapshot
for snapshotID in $snapshotIDs
do
ec2-delete-snapshot --region $region $snapshotID
done
fi
# Create AMI
ec2-create-image $instanceID --region $region --name "$amiName" -d "$amiDescription" --no-reboot > /tmp/AMIBackup.txt
# Name Tag
amiid=`cat /tmp/AMIBackup.txt | cut -f2`
ec2addtag $amiid --tag Name=$amiName --region $region
-- Save & Quit (:wq)
# chmod 755 /backups/scripts/aws-ami-backup.sh
Step: 9. Schedule in Crontab :
# crontab -e
0 0 * * * /backups/scripts/aws-ami-backup.sh
-- Save & Quit (:wq)
Step: 10. Retstart the Cron Service :
# service crond restart
Done...!!!
Please share your ideas and opinions about this topic.
If you like this post, then please share with others.
Please subscribe on email for every updates on mail.
Shell script for redirecting output of rman command for oracle 11g
vi /backups/scripts/rmanoutput.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=prim
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_DATE_FORMAT='DD-MON-YY HH24:MI:SS'
export DATE=$(date +%Y-%m-%d)
rman target sys/sys@prim msglog /u01/rman_full_backup_db_online_TEST1_${DATE}.log <<EOF
backup database plus archivelog;
exit;
EOF
:wq
P.S Output for currently executing RMAN jobs is also stored in the V$RMAN_OUTPUT view,
which reads only from memory (that is, the information is not stored in the control file).
The V$RMAN_STATUS view contains metadata about jobs in progress as well as completed jobs.
The metadata for completed jobs is stored in the control file.
Please share your ideas and opinions about this topic.
If you like this post, then please share with others.
Please subscribe on email for every updates on mail.
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=prim
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_DATE_FORMAT='DD-MON-YY HH24:MI:SS'
export DATE=$(date +%Y-%m-%d)
rman target sys/sys@prim msglog /u01/rman_full_backup_db_online_TEST1_${DATE}.log <<EOF
backup database plus archivelog;
exit;
EOF
:wq
P.S Output for currently executing RMAN jobs is also stored in the V$RMAN_OUTPUT view,
which reads only from memory (that is, the information is not stored in the control file).
The V$RMAN_STATUS view contains metadata about jobs in progress as well as completed jobs.
The metadata for completed jobs is stored in the control file.
Please share your ideas and opinions about this topic.
If you like this post, then please share with others.
Please subscribe on email for every updates on mail.
bash_profile setting for different oracle versions installed in a single server.
vi /home/oracle/.bash_profile
umask 022
export ORACLE_BASE=/u01/app/oracle
export TNS_ADMIN=$ORACLE_BASE/product/11.2.0/db_1/network/admin
10g()
{ export ORACLE_SID=prim10g
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export PS1='[\u@\h\W]\$ '
}
11g()
{ export ORACLE_SID=prim11g
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export PS1='[\u@\h\W]\$ '
}
12c()
{ export ORACLE_SID=prim12c
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export PS1='[\u@\h\W]\$ '
}
--save and quit (:wq)
[oracle@server1 ~]$ . .bash_profile
Simply type "10g" to set 10g environment, "11g" for 12c, and so on.
MongoDB backup using shell script for all databases
umask 022
export ORACLE_BASE=/u01/app/oracle
export TNS_ADMIN=$ORACLE_BASE/product/11.2.0/db_1/network/admin
10g()
{ export ORACLE_SID=prim10g
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export PS1='[\u@\h\W]\$ '
}
11g()
{ export ORACLE_SID=prim11g
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export PS1='[\u@\h\W]\$ '
}
12c()
{ export ORACLE_SID=prim12c
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export PS1='[\u@\h\W]\$ '
}
--save and quit (:wq)
[oracle@server1 ~]$ . .bash_profile
Simply type "10g" to set 10g environment, "11g" for 12c, and so on.
MongoDB backup using shell script for all databases
vi /backups/mongodb_backup.sh
#!/bin/bash
date1=`date +%d%m%Y_%H%M%S`
export path1=/backups/mongodb_backup
OUTPUTDIR="$path1/$date1"
/usr/bin/find /backups/mongodb_backup/* -type d -mtime +30 -exec rm -r {} \; 2> /dev/null
mongodump -o $path1/$date1
/bin/tar -zcvf /backups/mongodb_backup/backup_$date1.tar.gz $path1/$date1
rm -rf $path1/$date1
exit
#Schedule in crontab:-
crontab -e
0 0 * * * /backups/mongodb_backup.sh > /dev/null
#!/bin/bash
date1=`date +%d%m%Y_%H%M%S`
export path1=/backups/mongodb_backup
OUTPUTDIR="$path1/$date1"
/usr/bin/find /backups/mongodb_backup/* -type d -mtime +30 -exec rm -r {} \; 2> /dev/null
mongodump -o $path1/$date1
/bin/tar -zcvf /backups/mongodb_backup/backup_$date1.tar.gz $path1/$date1
rm -rf $path1/$date1
exit
#Schedule in crontab:-
crontab -e
0 0 * * * /backups/mongodb_backup.sh > /dev/null
Postgresql backup shell script for all databases in linux
vi /backups/postgre_backup.sh
#!/bin/bash
date1=`date +%d%m%Y_%H%M%S`
export path1=/backups/postgre_backup
OUTPUTDIR="$path1/$date1"
/usr/bin/find /backups/postgre_backup/* -type d -mtime +32 -exec rm -r {} \; 2> /dev/null
su postgres -c 'pg_dumpall' > "$OUTPUTDIR.sql"
/bin/tar -zcvf /backups/postgre_backup/ backup_$date1.tar.gz $OUTPUTDIR.sql
rm $OUTPUTDIR.sql
exit
date1=`date +%d%m%Y_%H%M%S`
export path1=/backups/postgre_backup
OUTPUTDIR="$path1/$date1"
/usr/bin/find /backups/postgre_backup/* -type d -mtime +32 -exec rm -r {} \; 2> /dev/null
su postgres -c 'pg_dumpall' > "$OUTPUTDIR.sql"
/bin/tar -zcvf /backups/postgre_backup/
rm $OUTPUTDIR.sql
exit
:wq
Schedule in crontab:-
# crontab -e
0 0 * * * /backups/postgre_backup.sh > /dev/null
# crontab -e
0 0 * * * /backups/postgre_backup.sh > /dev/null
Alert mail script for checking oracle database up/down status
Step 1. create the shell script for checking dbstatus
vi /home/oracle/dbcheck.sh
#!/bin/bash
hostname=server1.soumya.com
oracle_sid=prim
export instance_name=ora_pmon_prim
status=`ps -ef |grep pmon | head -1 | awk '{print $8}'`
if [ "$status" == "$instance_name" ]; then
echo "DB IS UP"
else
echo "DB down"
#mail -s "Attention!! $oracle_sid Database is Down at $hostname!! " yourmailid@gmail.com
fi
exit 0
hostname=server1.soumya.com
oracle_sid=prim
export instance_name=ora_pmon_prim
status=`ps -ef |grep pmon | head -1 | awk '{print $8}'`
if [ "$status" == "$instance_name" ]; then
echo "DB IS UP"
else
echo "DB down"
#mail -s "Attention!! $oracle_sid Database is Down at $hostname!! " yourmailid@gmail.com
fi
exit 0
:wq
Step 2. Schedule it for checkup in every 5 minutes
crontab -e
*/5 * * * * /home/oracle/dbcheck.sh > /dev/null
crontab -e
*/5 * * * * /home/oracle/dbcheck.sh > /dev/null
Shell script for auto start of oracle and listener at boot time
Step 1. Edit /etc/oratab file.
# vi /etc/oratab
prim:/u01/app/oracle/product/11.2.0/db_1:Y
:wq
Step 2. Create a file called "/etc/init.d/dbora" as the root user
vi /etc/init.d/dbora
#!/bin/bash
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
ORA_HOME=/u01/app/oracle/product/11.2.0/db_1
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
su $ORA_OWNER -c $ORA_HOME/bin/dbstart &
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" &
touch /var/lock/subsys/dbora
;;
'stop')
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
su $ORA_OWNER -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/dbora
;;
esac
:wq
Step 3. Give dbora file proper permission .
chmod 750 /etc/init.d/dbora
chkconfig --add dbora
# vi /etc/oratab
prim:/u01/app/oracle/product/11.2.0/db_1:Y
:wq
Step 2. Create a file called "/etc/init.d/dbora" as the root user
vi /etc/init.d/dbora
#!/bin/bash
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
ORA_HOME=/u01/app/oracle/product/11.2.0/db_1
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
su $ORA_OWNER -c $ORA_HOME/bin/dbstart &
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" &
touch /var/lock/subsys/dbora
;;
'stop')
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
su $ORA_OWNER -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/dbora
;;
esac
:wq
Step 3. Give dbora file proper permission .
chmod 750 /etc/init.d/dbora
chkconfig --add dbora
Monitoring Flash Recovery Area space using shell script
This script will check the flash recovery area and will shoot a mail if the space is over 80%
filled up.
From oracle user:
[root@server1 ~]# vi /home/oracle/flashback.sql
col ROUND(SPACE_LIMIT/1048576) heading "Space Allocated (MB)" format 999999
col round(space_used/1048576) heading "Space Used (MB)" format 99999
col round((space_used/space_limit)*100) heading " % used " format 99999
col name format a30
set head off
select name, round(space_limit/1048576),round(space_used/1048576),round ((space_used/space_limit)*100) as "% used"
from v$RECOVERY_FILE_DEST;
exit;
:wq
Now lets create the shell-script which will monitor the space usage of flash recovery area:-
From root user
[root@server1 ~]# vi /root/spacecheck.sh
su - oracle -c "sqlplus -S / as sysdba @/home/oracle/flashback.sql" > /home/oracle/test.txt
space=`cat /home/oracle/test.txt | awk '{print $4}'`
if
[ $space -gt 80 ]; then
mail -s "Attention!! Low space in Flash recovery area! " yourmailid@gmail.com
fi
exit 0
:wq
We schedule the script which will check in every 5 mins.
[root@server1 ~]crontab -e
*/5 * * * * /root/spacecheck.sh > /dev/null
Expdp backup using shell script in oracle 11g
# mkdir /backups/db_backup/
#chown -Rf oracle:oinstall /backups/db_backup/
$ sqlplus / as sysdba
SQL>CREATE DIRECTORY backup AS '/backups/db_backup/';
SQL> exit
# vi /root/test.sh
#!/bin/bash
export PS1="`/bin/hostname -s`-> "
export EDITOR=vi
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=soumyadb
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
path1=/backups/db_backup
date1=`date +%d%m%y_%H%M%S`
su - oracle -c "/u01/app/oracle/product/11.2.0/db_1/bin/expdp system/system full=y directory=backup dumpfile=backup_$date1.dmp logfile=log_$date1.log exclude=statistics "
cd /backups/db_backup/
/bin/tar -zcvf /backups/db_backup/backup_$date1.tar.gz backup_$date1.dmp
:wq
Now schedule the script inside crontab:-
#The expdp script will run everynight at 12 A.M
#crontab -e
0 0 * * * /root/test.sh > /dev/null
#chown -Rf oracle:oinstall /backups/db_backup/
$ sqlplus / as sysdba
SQL>CREATE DIRECTORY backup AS '/backups/db_backup/';
SQL> exit
# vi /root/test.sh
#!/bin/bash
export PS1="`/bin/hostname -s`-> "
export EDITOR=vi
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=soumyadb
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
path1=/backups/db_backup
date1=`date +%d%m%y_%H%M%S`
su - oracle -c "/u01/app/oracle/product/11.2.0/db_1/bin/expdp system/system full=y directory=backup dumpfile=backup_$date1.dmp logfile=log_$date1.log exclude=statistics "
cd /backups/db_backup/
/bin/tar -zcvf /backups/db_backup/backup_$date1.tar.gz backup_$date1.dmp
:wq
Now schedule the script inside crontab:-
#The expdp script will run everynight at 12 A.M
#crontab -e
0 0 * * * /root/test.sh > /dev/null
Thanks
Srini
No comments:
Post a Comment
No one has ever become poor by giving