天天看点

python常用的备份脚本

脚本介绍:

1)备份源目录的文件

2)目标文件以tar 和bzip2的方式压缩之后放在当前日期文件夹下

4)备份文件以时间注释和执行脚本的用户命名

3)主要用到了时间模块,系统模块,和getpass模块

4)source 可以修改为想备份的目录,因为备份目录一般不经常变动,所以这里写死了

<code>#!/bin/env python  </code>

<code>import</code> <code>os </code>

<code>import</code> <code>time</code> 

<code>import</code> <code>getpass </code>

<code>source</code> <code>= [</code><code>'/data/mysql'</code><code>, </code><code>'/data/mysql/mysql'</code><code>]  </code>

<code>target_dir = </code><code>'/backup/'</code> 

<code>user = getpass.getuser()  </code>

<code>today = target_dir + </code><code>time</code><code>.strftime(</code><code>'%Y%m%d'</code><code>) </code>

<code>now = </code><code>time</code><code>.strftime(</code><code>'%H%M%S'</code><code>) </code>

<code>comment = raw_input(</code><code>'please input comment --&gt; '</code><code>)  </code>

<code>if</code> <code>len(comment) == 0: </code>

<code>    </code><code>target = today + now + </code><code>'_'</code> <code>+ user + </code><code>'_'</code> <code>+ </code><code>'tar.bz2'</code>  

<code>else</code><code>:  </code>

<code>    </code><code>target = today +  now + </code><code>'_'</code> <code>+ comment + </code><code>'_'</code> <code>+ user + </code><code>'_'</code> <code>+ </code><code>'tar.bz2'</code>  

<code>if</code> <code>not os.path.exists(today):    </code>

<code>    </code><code>os.</code><code>mkdir</code><code>(today)   </code>

<code>    </code><code>print </code><code>'Create folder successfully'</code><code>, today  </code>

<code>else</code><code>:    </code>

<code>    </code><code>print today,</code><code>'Folder already exists'</code>  

<code>time</code><code>.</code><code>sleep</code><code>(5) </code>

<code>zip_command = </code><code>"tar -cjPf '%s' %s"</code> <code>% (target, </code><code>' '</code><code>.</code><code>join</code><code>(</code><code>source</code><code>))  </code>

<code>if</code> <code>os.system(zip_command) == 0:  </code>

<code>    </code><code>print </code><code>' Backup for success:'</code><code>, target  </code>

<code>    </code><code>print </code><code>'Backup for failed'</code> <code>,target</code>

备注:一下是详细解释:

<code>  </code> 

<code>#告诉解释器查找pyton解释器并且使用它 </code>

<code>#_*_encoding:utf8_*_  </code>

<code>#指定编码为utf8编码 </code>

<code>#导入系统模块  </code>

<code>#导入时间模块  </code>

<code>#导入获取用户模块  </code>

<code>#定义备份源目录 </code>

<code>#定义备份目标目录  </code>

<code>user = getpass.getuser() </code>

<code>#定义使用备份脚本的用户  </code>

<code>#定义今日的日期 </code>

<code>#定义现在的时间  </code>

<code>comment = raw_input(</code><code>'please input text --&gt; '</code><code>)  </code>

<code>#定义注释为输入的字符串 </code>

<code>#检查输入的注释是否为空  </code>

<code>#如果注释为空,备份文件的文件名为日期时间运行脚本用户  </code>

<code>#如果非空,则使用日期时间注释用户为文件名 </code>

<code>if</code> <code>not os.path.exists(today):  </code>

<code>#检查备份目录下的时间目录是否不存在 </code>

<code> </code> 

<code>    </code><code>os.</code><code>mkdir</code><code>(today)  </code>

<code>#如果不存在创建文件夹 </code>

<code>#存在,则打印 </code>

<code>#暂停五秒  </code>

<code>#定义本备份命令 </code>

<code>#使用系统环境(相当于shell执行备份命令,如果成功返回0) </code>

<code>    </code><code>print </code><code>' 成功备份为:'</code><code>, target  </code>

<code>    </code><code>print </code><code>'备份失败'</code> <code>,target</code>

2,查找某个目录下N天以前的以log结尾的文件并移动到/tmp下

<code>[root@zabbix log]</code><code># find /data/nginx/log  -type f -name "*.log" -mtime +114 -exec mv {} /tmp \;</code>

本文转自 lqbyz 51CTO博客,原文链接:http://blog.51cto.com/liqingbiao/1749996