脚本介绍:
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 --> '</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 --> '</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