腳本介紹:
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