天天看点

python oracle数据库备份脚本

学习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,如需转载请自行联系原作者