shell常用指令碼&crontab設定
shell常用指令碼&crontab設定
root使用者
0,30 * * * * sh /data/run/ntp 1>/data/run/log/ntp.log 2>>/data/run/log/ntp.bad
* * * * * sh /data/run/loadavg 1>/data/run/log/loadavg.log 2>>/data/run/log/loadavg.bad
oracle使用者
15 0 * * * sh /data/run/autodel 1>>/data/run/log/autodel.log 2>>/data/run/log/autodel.bad
20 0 * * * sh /data/run/autoexp 1>/data/run/log/autoexp.log 2>/data/run/log/autoexp.bad
30 0 * * 6 sh /data/run/rmanfull.sh 1>/data/run/log/rmanfull.log 2>/data/run/log/rmanfull.bad
30 7 * * 6 sh /data/run/autostats 1>/data/run/log/autostats.log 2>/data/run/log/autostats.bad
1.同步時間(以下都是touch後,直接加入既可)
#! /bin/sh
/usr/sbin/ntpdate xxx
/sbin/hwclock -w
2.收集負載資訊
# record cpu avg loading .
date >>/data/run/log/loadavg.txt
cat /proc/loadavg >>/data/run/log/loadavg.txt
3.1.exp備份
----in windows circumstance
@echo off
set year=%date:~10,4%
set month=%date:~4,2%
set day=%date:~7,2%
set mydate=%year%%month%%day%
set hhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
rem if "%hhmmss:~0,1%"==" " set hhmmss=0%time:~1,1%%time:~3,2%%time:~6,2%
rem echo ------------------------------------------------ >> E:\expepd3eco\x.txt
rem echo %mydate%_%hhmmss% >> E:\expepd3eco\x.txt
rem echo ------------------------------------------------ >> E:\expepd3eco\x.txt
echo
set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
exp system/"xxx" file=e:\expdata\eco_%mydate%%hhmmss%.dmp log=E:\expdata\log\eco_%mydate%%hhmmss%.log full=y
3.2 exp
----in Linux circumstance
#!/bin/sh
cd /data/expbak
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=xxx;export ORACLE_SID
NLS_LANG=american.AL32UTF8;export NLS_LANG
FILENAME=`date +%Y%m%d%H`
/u01/product/oracle/bin/exp 'system/"xxx"' file='xxx'$FILENAME full=y log=xxx$FILENAME.log
/usr/bin/gzip 'xxx'$FILENAME'.dmp'
find /data/expbak -atime +5 -exec rm -f {} \;
4.1 開機指令碼
----in Linux circumstance(單機)
#!/bin/sh
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=xxx;export ORACLE_SID
/u01/product/oracle/bin/sqlplus /nolog <
startup;
exit;
EOF
/u01/product/oracle/bin/lsnrctl <
exit
EOF
雙機(10G OCFS2)
#!/bin/sh
srvctl start nodeapps -n ecsrac01
srvctl start nodeapps -n ecsrac02
srvctl start database -d ecsdb
emctl start dbconsole
5.1 關機指令碼
----in Linux circumstance(單機)
#!/bin/sh
/u01/product/oracle/bin/lsnrctl <
exit
EOF
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=xxx;export ORACLE_SID
/u01/product/oracle/bin/sqlplus /nolog <
alter system switch logfile;
/
/
shutdown immediate;
exit;
EOF
雙機
#!/bin/sh
emctl stop dbconsole
srvctl stop database -d ecsdb
srvctl stop nodeapps -n ecsrac01
srvctl stop nodeapps -n ecsrac02
6.1 重新編譯無效的包
方法一
----in Linux circumstance
#!/bin/sh
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=xxx;export ORACLE_SID
/u01/product/oracle/bin/sqlplus /nolog <
@$ORACLE_HOME/rdbms/admin/utlrp.sql;
exit;
EOF
方法二 --執行計劃的包
#!/bin/sh
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=xxx;export ORACLE_SID
/u01/product/oracle/bin/sqlplus /nolog <
drop table plan_table;
@$ORACLE_HOME/rdbms/admin/utlxplan;
@$ORACLE_HOME/rdbms/admin/prvtspao.plb;
@$ORACLE_HOME/rdbms/admin/utlrp.sql;
exit;
EOF
6.2 重新編譯無效的包(加強版)
----in Linux circumstance
#!/bin/sh
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=xxx;export ORACLE_SID
/u01/product/oracle/bin/sqlplus /nolog <
drop table plan_table;
@$ORACLE_HOME/rdbms/admin/utlxplan;
@$ORACLE_HOME/rdbms/admin/prvtspao.plb;
@$ORACLE_HOME/rdbms/admin/utlrp.sql;
exit;
EOF
7.1定時刪除日誌的
----in Linux circumstance
#!/bin/bash
find /opt/oracle/admin/smt/bdump/*.trc -mmin +4320 -exec rm -f {} \;
find /opt/oracle/admin/smt/udump/*.trc -mmin +4320 -exec rm -f {} \;
find /opt/oracle/arch1/*.dbf -mmin +10080 -exec rm -f {} \;
8.1 rman備份指令碼
第一步 先設定crontab定時跑
第二步
#!/bin/sh
ORACLE_HOME=/opt/oracle/product/9.2.0;export ORACLE_HOME
ORACLE_SID=xxx;export ORACLE_SID
rm -f /data/rmandata/*
echo 'Recovery Manager Start at '`date`'.' >/data/run/log/rman.log
$ORACLE_HOME/bin/rman target / @'/data/run/rmanfull.sql' log /data/run/log/rman.log
echo 'Recovery Manager End at '`date`'.' >>/data/run/log/rman.log
第三步
run{
allocate channel dev1 type disk;
allocate channel dev2 type disk;
allocate channel dev3 type disk;
allocate channel dev4 type disk;
backup full tag 'dbfull'
format '/data/rmandata/full_%d_%T_%U' database;
sql 'alter system archive log current';
release channel dev1;
release channel dev2;
release channel dev3;
release channel dev4;
allocate channel dev1 type disk;
backup
format '/data/rmandata/ctl_%d_%T_%U' current controlfile;
release channel dev1;
}
9.1 定時收集統計資訊
#!/bin/sh
source /home/oracle/.bash_profile
echo 'start datetime --> ' `date`
################################################
sqlplus -S '/as sysdba' <
dbms_stats.gather_schema_stats(ownname=> 'xxx' , estimate_percent=> 15 , cascade=> TRUE );
dbms_stats.gather_schema_stats(ownname=> 'xxx' , estimate_percent=> 15 , cascade=> TRUE );
dbms_stats.gather_schema_stats(ownname=> 'xxx' , estimate_percent=> 15 , cascade=> TRUE );
end;
/
exit
EOFarch1
#################################################
echo 'finish datetime --> ' `date`
10.1定時跑awr
第一步
30 0 * * * sh /home/oracle/dba/awr 1>/u01/run/log/autoawr.log 2>/u01/run/log/autoawr.bad
第二步
#!/bin/sh
cd /u01/logbak
rm *.html(方法一)
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=xxx;export ORACLE_SID
$ORACLE_HOME/bin/sqlplus /nolog<connect / as sysdba;
@/u01/run/autoawr.sql;
exit
!
find /u01/logbak/xxx*.html -mmin +4320 -exec rm -f {} \; (方法二)
-------------------
待更新。。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25850100/viewspace-714940/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- crontab執行shell指令碼指令碼
- shell 指令碼常用 oracle 環境變數set 設定指令碼Oracle變數
- Linux Crontab Shell指令碼實現秒級定時任務Linux指令碼
- 使用CRONTAB呼叫shell指令碼執行EXP指令碼
- crontab呼叫oracle的shell指令碼注意事項Oracle指令碼
- 如何用crontab每隔1分鐘執行一個命令列指令碼,shell設定時任務命令列指令碼
- linux常用的shell指令碼Linux指令碼
- Shell指令碼常用命令整理指令碼
- 使用shell定製awr指令碼指令碼
- crontab 設定
- 設定shell 定期 (crontab job) 執行 DB 中的物件物件
- shell之最常用的服務指令碼指令碼
- 常用的主機監控shell指令碼指令碼
- 使用shell定製addm指令碼指令碼
- 通過shell定製ash指令碼指令碼
- 透過shell定製ash指令碼指令碼
- mysql定時備份shell指令碼MySql指令碼
- 設定Linux伺服器IP地址的shell指令碼Linux伺服器指令碼
- Shell 指令碼程式設計陷阱指令碼程式設計
- shell指令碼放到crontab裡就執行不成功的問題指令碼
- 【轉】shell指令碼處理字串的常用方法指令碼字串
- 我常用的主機監控Shell指令碼指令碼
- 分析表的crontab指令碼指令碼
- shell指令碼指令碼
- ORACLE常用定時備份指令碼Oracle指令碼
- 監控Oracle資料庫的常用shell指令碼Oracle資料庫指令碼
- shell指令碼程式設計筆記指令碼程式設計筆記
- 7.shell指令碼程式設計指令碼程式設計
- 初識shell指令碼程式設計指令碼程式設計
- shell指令碼程式設計基礎指令碼程式設計
- CRONTAB呼叫的備份指令碼指令碼
- crontab排程Python指令碼Python指令碼
- 後臺跑指令碼替代crontab指令碼
- [Shell] Shell 生成 HTML指令碼HTML指令碼
- Shell程式設計-01-Shell指令碼初步入門程式設計指令碼
- Linux Shell程式設計(3)——執行shell指令碼Linux程式設計指令碼
- 10 個實戰及面試常用 Shell 指令碼編寫面試指令碼
- 34 個 常用 Linux Shell 指令碼,運維必備!Linux指令碼運維