學習python,将shell備份腳本改成了python腳本練手.python oracle備份腳本一例如下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<code>#!/usr/bin/env python </code>
<code># -*- coding: utf-8 -*- </code>
<code>import</code> <code>time</code>
<code>import</code> <code>os</code>
<code>#配置oracle環境變量參數</code>
<code>os.environ[</code><code>"NLS_LANG"</code><code>] </code><code>=</code> <code>"Simplified Chinese_china.ZHS16GBK"</code>
<code>os.environ[</code><code>'ORACLE_HOME'</code><code>] </code><code>=</code> <code>'/u01/app/oracle/product/10.2.0/db_1'</code>
<code>os.environ[</code><code>'PATH'</code><code>] </code><code>=</code> <code>"/u01/app/oracle/product/10.2.0/db_1/bin"</code> <code>+</code> <code>":"</code> <code>+</code> <code>os.environ[</code><code>'PATH'</code><code>]</code>
<code>os.environ[</code><code>'ORACLE_SID'</code><code>] </code><code>=</code> <code>"orcl"</code>
<code>os.environ[</code><code>'LANG'</code><code>] </code><code>=</code> <code>"en_US"</code>
<code>#列印提示資訊。</code>
<code>exp_node1 </code><code>=</code> <code>"\n成功備份檔案到目錄...."</code>
<code>exp_node2 </code><code>=</code> <code>"備份失敗"</code>
<code>cls_node1 </code><code>=</code> <code>"資料庫備份資料清除成功,删除語句如下...."</code>
<code>cls_node2 </code><code>=</code> <code>"資料庫備份清除失敗"</code>
<code>#配置導出的資料庫資訊</code>
<code>data_path </code><code>=</code> <code>'/tmp/'</code>
<code>db_username </code><code>=</code> <code>'abc'</code>
<code>db_password </code><code>=</code> <code>'abc'</code>
<code>db_name </code><code>=</code> <code>'abc'</code>
<code>"""</code>
<code>print os.getenv('NLS_LANG')</code>
<code>print os.getenv('ORACLE_HOME')</code>
<code>print os.getenv('ORACLE_SID')</code>
<code>def</code> <code>oracle_exp():</code>
<code> </code><code>exp_command </code><code>=</code> <code>"exp %s/%s file=%s%s_%s-%s-%s_%s%s%s.dmp log=%s%s_%s-%s-%s_%s%s%s.log"</code> <code>%</code> <code>(db_username,db_password,data_path,db_name,time.strftime(</code><code>'%Y'</code><code>),time.strftime(</code><code>'%m'</code><code>),time.strftime(</code><code>'%d'</code><code>),time.strftime(</code><code>'%H'</code><code>),time.strftime(</code><code>'%M'</code><code>),time.strftime(</code><code>'%S'</code><code>),data_path,db_name,time.strftime(</code><code>'%Y'</code><code>),time.strftime(</code><code>'%m'</code><code>),time.strftime(</code><code>'%d'</code><code>),time.strftime(</code><code>'%H'</code><code>),time.strftime(</code><code>'%M'</code><code>),time.strftime(</code><code>'%S'</code><code>))</code>
<code> </code><code>exp_note </code><code>=</code> <code>"資料庫備份執行語句...."</code>
<code> </code><code>print</code> <code>"\033[1;31;40m%s\033[0m"</code> <code>%</code> <code>exp_note</code>
<code> </code><code>print</code> <code>"\033[1;31;40m%s\033[0m"</code> <code>%</code> <code>exp_command</code>
<code> </code><code>if</code> <code>os.system(exp_command) </code><code>=</code><code>=</code> <code>0</code><code>:</code>
<code> </code><code>print</code> <code>"\033[1;32;40m%s\033[0m"</code> <code>%</code> <code>exp_node1</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>print</code> <code>"\033[1;31;40m%s\033[0m"</code> <code>%</code> <code>exp_node2</code>
<code>def</code> <code>backup_clear():</code>
<code> </code><code>cls_command1 </code><code>=</code> <code>'/usr/bin/find %s -mtime +1 -name "*.dmp" -exec rm -rf {} \;'</code> <code>%</code> <code>data_path</code>
<code> </code><code>cls_command2 </code><code>=</code> <code>'/usr/bin/find %s -mtime +1 -name "*.log" -exec rm -rf {} \;'</code> <code>%</code> <code>data_path</code>
<code> </code><code>if</code> <code>os.system(cls_command1) </code><code>=</code><code>=</code> <code>0</code> <code>and</code> <code>os.system(cls_command2) </code><code>=</code><code>=</code> <code>0</code><code>:</code>
<code> </code><code>print</code> <code>"\n\033[1;32;40m%s\033[0m"</code> <code>%</code> <code>cls_node1</code>
<code> </code><code>print</code> <code>"\n\033[1;31;40m%s\033[0m"</code> <code>%</code> <code>cls_node2</code>
<code> </code><code>print</code> <code>"%s"</code> <code>%</code> <code>cls_command1</code>
<code> </code><code>print</code> <code>"%s\n"</code> <code>%</code> <code>cls_command2</code>
<code>def</code> <code>main(): </code>
<code> </code><code>oracle_exp() </code>
<code> </code><code>backup_clear()</code>
<code>if</code> <code>__name__ </code><code>=</code><code>=</code> <code>"__main__"</code><code>: </code>
<code> </code><code>main()</code>
執行結果:
<a href="http://koumm.blog.51cto.com/attachment/201407/15/703525_1405437669ySuu.png" target="_blank"></a>
<a href="http://koumm.blog.51cto.com/attachment/201407/15/703525_1405437675rRk0.png" target="_blank"></a>
本文轉自 koumm 51CTO部落格,原文連結:http://blog.51cto.com/koumm/1438673,如需轉載請自行聯系原作者