Saturday, January 13, 2007

Unix shell scripts used extensively through cron

In interviews, I have been frequently asked about unix shell scripting skills. In my working environment, shell scripts are extensively used to monitor databases or perform some repetitive tasks through cron job. The following shows the crontab from a production server which host several databases ( I only show the part of the crontab related to one database PRODDB)


------
Mornitoring PRODDB shell script from crontab:
# ---------- Monitoring PRODDB
00,05,10,15,20,25,30,35,40,45,50,55 * * * * /u01/app/oracle/local/bin/alert_err_check.ksh PRODDB >/dev/null 2>&1
00,04,08,12,16,20,24,28,32,36,40,44,48,52,56 * * * * /u01/app/oracle/local/bin/monitor_lock.ksh PRODDB 2>&1 1>/dev/null
04,09,14,19,24,29,34,39,44,49,54,59 * * * * /u01/app/oracle/local/bin/snap_top_5_buffer_hogs.ksh PRODDB 2>&1 1>/dev/null
00 06 * * * /u01/app/oracle/local/bin/monitor_ts_avg_used.ksh PRODDB 2>&1 1>/dev/null
00 * * * * /u01/app/oracle/local/bin/snap_wait_types.ksh PRODDB 2>&1 1>/dev/null
02 * * * * /u01/app/oracle/local/bin/total_session_waits.ksh PRODDB 2>&1 1>/dev/null
01 * * * * /u01/app/oracle/local/bin/high_session_waits.ksh PRODDB 2>&1 1>/dev/null
00 04 * * 0 /u01/app/oracle/local/bin/snap_td_object_sizes.ksh PRODDB 2>&1 1>/dev/null
00 04 * * * /u01/app/oracle/local/bin/snap_td_data_files.ksh PRODDB 2>&1 1>/dev/null
#00,15,30,45 * * * * /u01/app/oracle/local/bin/collector_statspack.ksh PRODDB 2>&1 1>/u01/app/oracle/admin/PRODDB/logbook/PRODDB.collector_statspack.log
05 06 * * * /u01/app/oracle/local/bin/daily_statspack_cleanup.ksh PRODDB 2>&1 1>/dev/null
30 05 * * 1-6 /u01/app/oracle/admin/PRODDB/create/statspack/get_object_stats.ksh PRODDB > /u01/app/oracle/admin/PRODDB/create/statspack/log/get_object_stats.cronlog 2>/u01/app/oracle/admin/PRODDB/create/statspack/log/get_object_stats.cronerrorlog
#54 10 * * * /u01/app/oracle/admin/PRODDB/create/security/auditing/oracle_auditfiles.ksh PRODDB AuditParms.par 2>/u01/app/oracle/admin/PRODDB/create/security/auditing/oracle_auditfiles.cronerrorlog 1>/u01/app/oracle/admin/PRODDB/create/security/auditing/oracle_auditfiles.cronlog
31 00 * * * /u01/app/oracle/admin/PRODDB/create/scripts/monitor/sessions.ksh PRODDB > /u01/app/oracle/admin/PRODDB/create/scripts/monitor/sessions_cron.log
# --------- PRODDB and AVANTIP Filesystem Space monitoring
50 04 * * * /u01/app/oracle/admin/PRODDB/create/scripts/df_k.sh 2>&1 1> /u01/app/oracle/admin/PRODDB/create/scripts/log/df_k.cronlog
30 12 * * * /u01/app/oracle/admin/PRODDB/create/scripts/df_k.sh 2>&1 1> /u01/app/oracle/admin/PRODDB/create/scripts/log/df_k.cronlog
# --------- PRODDB LOCK/UNLOCK GENSCRUB
#00 15 * * 5 /u01/app/oracle/admin/PRODDB/create/scripts/lock_genscrub.sh 2>&1 1>/u01/app/oracle/admin/PRODDB/create/scripts/log/lock_genscrub.log
#30 11 * * 5 /u01/app/oracle/admin/PRODDB/create/scripts/unlock_genscrub.sh 2>&1 1>/u01/app/oracle/admin/PRODDB/create/scripts/log/unlock_genscrub.log
# -------- PRODDB replication
#40 * * * * /u01/app/oracle/admin/PRODDB/create/scripts/push_repqueue.sh PRODDB 2>&1 1>/u01/app/oracle/admin/PRODDB/create/scripts/log/push_repqueue.cronlog
50 04 * * * /u01/app/oracle/admin/PRODDB/create/scripts/mv_audit.sh 2>&1 1>/u01/app/oracle/admin/PRODDB/create/scripts/log/mv_audit.cronlog
#01 00 * * * /u01/app/oracle/admin/PRODDB/create/scripts/chk_repjob.sh PRODDB 2> /u01/app/oracle/admin/PRODDB/create/scripts/log/chk_dba_jobs_cron.log
##00 * * * * /u01/app/oracle/admin/PRODDB/create/scripts/gen_repjob_rsv.sh 2> /u01/app/oracle/admin/PRODDB/create/scripts/log/cron_gen_repjob_rsv.log
01,16,31,46 * * * * /oracle/admin/PRODDB/create/rep/monitor/chk_reperrPRODDB.sh PRODDB 2>&1 1> /oracle/admin/PRODDB/create/rep/monitor/log/run_chk_reperrPRODDB.log
# -------- PRODDB and GENARCHP misc
# 02 01 05 * * /oracle/local/maint/cut_alert_log.sh PRODDB
00 * * * * /u01/app/oracle/local/bin/stby_sync_check.ksh AVANTIP > /u01/app/oracle/admin/PRODDB/create/scripts/log/stby_sync_check.cronlog 2>&1
00 05 * * * /u01/app/oracle/local/bin/stby_sync_check_notify.ksh AVANTIP > /u01/app/oracle/admin/PRODDB/create/scripts/log/stby_sync_check_notify.cronlog 2>&1
00 06 * * * perl -S /u01/app/oracle/local/bin/cleandir.pl /u01/app/oracle/admin/PRODDB/logbook 35 /u01/app/oracle/local/logbook/ 2>&1 1>/dev/null
00 06 * * * perl -S /u01/app/oracle/local/bin/cleandir.pl /u01/app/oracle/dba/output/PRODDB 10 /u01/app/oracle/dba/output/ 2>&1 1>/dev/null
01 05 * * * perl -S /u01/app/oracle/local/bin/cleandir.pl /oracle/admin/PRODDB/create/rep/monitor/log 5 /u01/app/oracle/local/logbook/ 2>&1 1>/dev/null
00 * * * * perl /oracle/dba/local/bin/space_alert.pl PRODDB /oracle/admin/PRODDB/local/parm/PRODDB_arch.par 50 alert
00 * * * * perl /oracle/dba/local/bin/space_alert.pl PRODDB /oracle/admin/PRODDB/local/parm/PRODDB_data.par 80 alert
00 * * * * /u01/app/oracle/admin/PRODDB/create/scripts/switch_log.ksh PRODDB 2>&1 > /u01/app/oracle/admin/PRODDB/create/scripts/log/switch_log_PRODDB.cronlog

No comments: