Showing posts with label Script Shell Management. Show all posts
Showing posts with label Script Shell Management. Show all posts

Shell script House keeping/Ringout /Move/Remove file older than - day

** Myself 

#  Move file (BC_BC_XMB* filename) older than 100 day from /sapmnt/EPP/globle/ to /backup/BC_BC_XMB_ARCHIVE
find /sapmnt/EPP/global/BC_BC_XMB*  -type f -mtime +100 -exec mv {} /backup/BC_BC_XMB_ARCHIVE \;
#  Remove file older than 200 day in /backup/BC_BC_XMB_ARCHIVE
find /backup/BC_BC_XMB_ARCHIVE/BC_BC_XMB*  -type f -mtime +200 -exec rm {} \;

Shell Script Example Oracle Export dumpfile(exp or expdp)

**Myself
 
#!/usr/bin/sh
#########   ENV ##############
backup_dir=/backup/expdump  #Dumpfile directory
blog=/backup/expdump/backup_expdump.log
orasid[0]=orcl1    #oracle sid1
orasid[1]=orcl2    #oracle sid2
orasid[2]=orcl3    #oracle sid3
orauser[0]=oraorcl1
orauser[1]=oraorcl2
orauser[2]=oraorcl1
orahome[0]=/app/oracle/orcl1/10g
orahome[1]=/app/oracle/orcl2/10g
orahome[2]=/app/oracle/orcl3/10g
############### Main ##################
export i=0
while (( i < ${#orasid[*]} ))
do
    su - ${orauser[${i}]}  << BOF >> ${blog}
        export ORACLE_SID=${orasid[${i}]}
        echo ${orasid[${i}]} >> ${blog}
        ${orahome[${i}]}/bin/exp system/system file='${backup_dir}/${orasid[${i}]}.dmp' full=y
    BOF
(( i = i + 1 ))
done

Shell Script Menu for Start up/Shutdown SAP with Oracle and other process (saposcol,sapstartsrv,hostctl for NW7.1)

** Myself
#====================================================================
#
# MAIN PROGRAM: Operator Menu
#
# PURPOSE:  Checks for system instances and
#           startup/shutdown system instances
#
#====================================================================
#====================================================================
# Environment
#====================================================================
#
#
#
# oracle user  ,Please change
orasid=dev
# sap user ,Please change
sapsid=dev
# SAP StartSRV MC Console Instant Name ,Please change ,for more instant add array
SAPINST[0]=DVEBMGS02
SAPINST[1]=ASCS00
SAPINST[2]=SCS01
#
#====================================================================
#====================================================================
# Main
#====================================================================
operation_menu=0
while [[ ! "x${operation_menu}x" = "x99x" ]] ; do
clear
echo "========================================"
echo "|--- Operation Menu (`hostname`) "
echo "========================================"
echo "(1) Start SAP"
echo "(2) Shutdown SAP"
echo "(99) Exit"
echo "Please select a number from the Operation Menu: "
read operation_menu
case ${operation_menu} in
        1)
                su - ora${orasid} -c "lsnrctl start"
                su - ${sapsid}adm -c "startsap"
                echo "SAP Startup"
                echo "Please key to Main Menu: "

Shell Script Mass Change filename (Rename pattern file)

** Myself

#Create 10,000 file from CCC00001.JPG to CCC10000.JPG
#file name=CCC00001.JPG ,CCC00002.JPG .... 
mkdir -p /tmp/test
for i in {1..10000}
do
 touch /tmp/test/CCC`printf "%05d" $i`.JPG
done


#Rename 10,000 file from CCC00001.JPG to A00001.JPG
#Result file name=A00001.JPG ,A00002.JPG .... 

for T in *.JPG
do
U=$(printf $T | sed -e "s/CCC/A/g")
[[ $T != $U ]] && mv $T $U
done

Shell Script Backup oracle database by rman full online with archive to tape (SBT agent)

** Myself
export RMAN_DIR=/oraback
export LOGDIR=${RMAN_DIR}/log
export RMAN_LOG=$LOGDIR/rman_backup_$ORACLE_SID`date +%d%h%y_%H%M`.log
export RMAN_ERR=$LOGDIR/rman_backup_$ORACLE_SID`date +%d%h%y_%H%M`.err
############# Delete old archivelog last 2 date####################
rman nocatalog LOG = $RMAN_LOG APPEND<<END_SQL
connect target;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
rman nocatalog<<END_SQL
connect target;
run {
set command id to 'rman';
crosscheck archivelog all;
allocate channel t1 type sbt;
backup filesperset 5 archivelog until time 'Sysdate-2' all delete input;
release channel t1;
}
exit
END_SQL
############# Hot Backup database #################################
rman nocatalog LOG = $RMAN_LOG APPEND<<END_SQL
connect target;
run {
set command id to 'rman';
allocate channel t1 type sby;
backup
filesperset 5
database;
release channel t1;
}
exit
END_SQL
############# Backup archive logs #################################
rman nocatalog<<END_SQL
connect target;
run {
set command id to 'rman';
allocate channel t1 type sbt;
backup filesperset 5 
archivelog all;
release channel t1;
}
exit
END_SQL

Shell Script Backup oracle database by rman full online with archive to disk

** Myself
export RMAN_DIR=/oraback
export FILE_DIR=${RMAN_DIR}/backup
export LOGDIR=${RMAN_DIR}/log
export RMAN_LOG=$LOGDIR/rman_backup_$ORACLE_SID`date +%d%h%y_%H%M`.log
export RMAN_ERR=$LOGDIR/rman_backup_$ORACLE_SID`date +%d%h%y_%H%M`.err
############# Backup config profile,and network files) ############
cp -Rp ${ORACLE_HOME}/dbs ${FILE_DIR}
cp -Rp ${ORACLE_HOME}/network/admin ${FILE_DIR}
############# Delete old archivelog last 2 date####################
rman nocatalog LOG = $RMAN_LOG APPEND<<END_SQL
connect target;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '${FILE_DIR}/%F';
crosscheck archivelog all;
allocate channel for maintenance device type disk;
delete noprompt obsolete recovery window of 2 days;
release channel;
exit
END_SQL
############# Hot Backup database #################################
rman nocatalog LOG = $RMAN_LOG APPEND<<END_SQL
connect target;
run {
set command id to 'rman';
allocate channel t1 type disk;
backup
filesperset 5
format '${FILE_DIR}/df_%t_%s_%p'
database;
release channel t1;
}
exit
END_SQL
############# Switch archive redo to archive files ################
rman nocatalog LOG = $RMAN_LOG APPEND<<END_SQL
connect target;
sql 'alter system switch logfile';
exit
END_SQL
############# Backup archive logs #################################
rman nocatalog LOG = $RMAN_LOG APPEND<<END_SQL
connect target;
run {
set command id to 'rman';
  allocate channel t1 type disk;
backup
filesperset 5
format '${FILE_DIR}/df_%t_%s_%p'
archivelog all;
release channel t1;
}
exit
END_SQL
echo "backup $ORACLE_SID finish at $(date)">>$RMAN_LOG

Websphere Shell Script Menu for Operation Start/Stop/Read log and Housekeeping

** Myself
## Webshpere with one node and three server
## Menu function.
1)   WBS_Monitor_Menu for Monitor process websphere
2)   Start_Stop_WBS_Menu for Start/Stop websphere
3)   House_Keeping_WBS_Menu for Maintain Log websphere
----------------------------------------------------------------
#!/bin/ksh
### Websphere ENV ###
export webspuser=wasadmin
export websppro=/app/ibm/WebSphere/AppServer/profiles
export StartDmgr1[0]="${websppro}/Dmgr01/bin/startManager.sh"
export StartApp1[0]="${websppro}/AppSrv01/bin/startNode.sh"
export StartApp1[1]="${websppro}/AppSrv01/bin/startServer.sh node1_server1"
export StartApp1[2]="${websppro}/AppSrv01/bin/startServer.sh node1_server2"
export StartApp1[3]="${websppro}/AppSrv01/bin/startServer.sh node1_server3"
export StopDmgr1[0]="${websppro}/Dmgr01/bin/stopManager.sh -user wasadm -password password"
export StopApp1[0]="${websppro}/AppSrv01/bin/stopNode.sh -user wasadm -password password"
export StopApp1[1]="${websppro}/AppSrv01/bin/stopServer.sh node1_server1 -user wasadm -password password"

Backup Netbackup run Pre-Post Script for UNIX Before and After policy backup Run

** Myself
NetBackup Run Script
1. from backup server client mount disk splite storage from production system)  
    cd /usr/openv/netbackup/bin
2. Create  bpstart_notify.policy_name and bpend_notify.policy_name for backup 
   Example bpstart_notify.Daily_DB_FlashBackup_host01  and bpend_notify.Daily_DB_FlashBackup_host01
   2.1) bpstart_notify.Daily_DB_FlashBackup_host01 (### umount old backup,freeze db, split storage new flash copy backup,unfreeze db  in bpstart )
      - Unconfigure Disk
      - Disable Flash Copy 
      - Remote to freeze database on DB system
      - Create FLASH COPY

Shell Script Hot Backup oracle database with manage archivelog size

** Myself
#!/usr/bin/ksh
#########  DYNAMIC ENV ##############
backupdir=/backup    #directory for backup database
archdir=/backup/ARCH    #directory for backup archive files
keeptime=7        #Archive age
orauser=oracle        #Oracle User
oraexe=/u01/oracle/product/9.2.0/bin #Execute for oracle
blog=/u01/backup.log
#########  STATIC ENV ##############
tbsfile=looptbs.lst
scriptback=backup.sql
#############################################################

Shell Script Backup oracle offline and dump for Peplesoft with AIX machine

** Myself
############
# ENV
export orauser=oracle
export pepleuser=psft811
export pepleexe=/u01/PeopleSoft/E811/system/bin32
export oraexe=/u01/oracle/product/9.2.0/bin
export tape_dev=/dev/rmt0
export vg_back=datavg
export blog=/u01/backup.log

Shell script Advance for array and while loop

** Myself
อันนี้จากตัวอย่างการ backup oracle เอามาใช้ในการ อธิบาย ครับ ใน
ในส่วน ENV มีการประกาศ 3 ตัวแปร แบบ array โดยใช้ เครื่องหมาย []  อย่าง orasid[1]
ในส่วน main มี while loop ที่อ่านจนหมด เพราะ #orasid[*] หมายถึงตัวสุดท้ายของ array(ในที่นี้คือ 0ถึง2 ก็คือ3ตัว) orasid
ในส่วน main  orauser[${i}] โดย ตัว i เป็น ตัวเลขที่วน loop ใน รอบแรก i=0 หมายความว่า จะดึงค่า orauser ตัวที่ pointer 0 นั้นคือ ค่า oradev1 ออกมา และทำ while loop จนครับ สามครั้งครับ
#!/usr/bin/sh
#########  DYNAMIC ENV ##############
backup_dir=/backup/DEV
blog=/backup/DEV/backup_DEV.log
orasid[0]=dev1    #oracle sid
orasid[1]=dev2    #oracle sid

Shell Script Backup software path SAP and Oracle by AIX (Direct attach tape device not include DB)

** Myself
ตัวอย่าง ง่ายๆ ในการ backup software path ของ SAP กับ Oracle database ทั้งหมดลง tape direct อันนี้เป็น command ของ AIX ซึ่งไม่ต่างกับ Unix ตัวอื่น
ตรง tctl เป็น command ที่เหมือนกับ mt ธรรมดาของ unix ตัวอื่นใช้เพื่อ rewind tape  ที่ต่อตรงหลังเครื่อง  ตัวอย่างนี้ไม่รวม การ backup database น๊ะครับ ควร run weekly เป็นอย่างน้อยและเปลี่ยนเทปทุกอาทิตย์
echo /etc/passwd  > /tmp/list_back.txt
echo /etc/group >> /tmp/list_back.txt
echo /etc/security/limits >> /tmp/list_back.txt
echo /home/prdadm  >> /tmp/list_back.txt
echo /sapmnt >> /tmp/list_back.txt
echo /usr/sap >> /tmp/list_back.txt
echo /oracle/PRD/102_64 >> /tmp/list_back.txt
tctl -f /dev/rmt0 rewind
backup -iqvf /dev/rmt0.1 < /tmp/list_back.txt

Shell script backup command AIX

** Myself
ตัวอย่างการใช้ command backup ของ AIX เพื่อ backup path ต่างๆเก็บไว้ใน /backup ครับ
โดยแบ่งเป็น แบบ อ่านตัวแปรของ patch ต่างๆ จากไฟล์ B_spec.cfg โดยเอาไป modify เพื่อใช้งานได้ครับ
B_spec.cfg
/data/prod/BCK_RAW
/data/prod/BCK_OUT
/app/oracle
/app/prod
/data/prod/el2/TimesTen
/data/prod/el2/control
/data/prod/el2/buffer

Backup_aix_path.sh
#!/bin/sh
## Env ##
Loading