首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python自动化备份系统及网站

Python自动化备份系统及网站

作者头像
py3study
发布2020-01-07 14:38:07
8170
发布2020-01-07 14:38:07
举报
文章被收录于专栏:python3python3

随着目前IT迅猛的发展,自动化运维对于Linux运维人员也越来越重要,传统的运维方式靠大量的人力,现在也逐渐转向自动化运维,我们常见的跟自动化有关的软件有哪些呢。

今天我们来简单列举一下:kickistart、puppet、cobbler、chef、func、shell命令自动化等等各种自动化工具,今天我们来研究一下使用Python来编写自动化脚本,那python设计的目标是什么呢?

Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。

Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和惊喜。

下面直接上脚本如下:(我也参考的网上的文章,自己根据实际情况修改,希望大家一起来交流)

#!/usr/bin/python
#Filename: Auto Backup root DIR and file
#write wugk 2013-11-07
import  os
import  time
#Define SOURCE and TARGET DIR
SOURCE = ['/root','/var/www/html','/etc']
TARGET_DIR = '/data/backup/'
NAME_FILE = 'System_bak'
today = TARGET_DIR + time.strftime('%Y%m%d')
TARGET = TARGET_DIR + time.strftime('%Y%m%d') + "/" + NAME_FILE + '.zip'
zip_command = "zip -qr '%s' %s " % (TARGET, ' '.join(SOURCE))
#Scripts Exec process Start
print '-------------------------------------------------'
print "The Scripts Backup Starting,Please waiting ......"
print
#Judge today DIR
if not os.path.exists(today):
                                                                                                                               
    os.mkdir(today) # make DIRectory
        print 'Successfully created Directory', today
#Exec Zip Command to Dir or file
if os.system(zip_command) == 0:
    print 'Successful backup to', TARGET
else:
    print 'Backup Failed !'
#print Backup end info
print
os.system('sleep 2')
print '--------------- The scripts Exec Done ------------------'

此脚本后期会优化,后期不断的更新,欢迎大家拍砖!上面的脚本用的打包命令是zip,如果觉得效率不高,还可以用tar命令,把zip_command那一段后面改成如下:

zip_command = "tar -czvf '%s' %s " % (TARGET, ' '.join(SOURCE)) 这样也OK!。

最新修改脚本内容如下:

#!/usr/bin/env python
#auto backup system files
#by wugk 2014-06-24
import os,sys,time
date = time.strftime('%Y%m%d')
source = ['/boot','/etc','/var/log/']
dir = '/data/backup/'
r_dir = dir + date + '/'
f_name = 'system_bak.tar.gz'
r_name = r_dir + f_name

print '''
\033[32m+++++++++++Welcome to use python backup scripts for Linux ++++++++++
++++++++++++Now Time is bei jing date %s +++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
\033[0m''' % date

time.sleep(2)

def all_bak():

    if os.path.exists(r_dir) == False:        
        
        os.makedirs(r_dir)
    else:
        print 'This DIR %s is exists!' % r_dir

    tar_cmd = 'tar -czvf %s %s ' % (r_name,' '.join(source))

    if os.system(tar_cmd) == 0:

        print 'This Backup System Files %s success !' % r_name
    else:

        print "This Backup system Files %s Failed  !" %  r_name

try:

    if sys.argv[1] == 'all_bak':

        print 'Please waiting executing Command ......'
        all_bak()
except IndexError:
    print '\033[31m-------------------------------------------------\033[0m'
    print "\033[31mUsage: {%s all_bak|help}\033[0m" %  sys.argv[0]
##Define add backup 

try:
    if sys.argv[1] == 'help':
        print '\033[31m-------------------------------------------------\033[0m'
        print "\033[31mUsage: {%s all_bak|help}\033[0m" %  sys.argv[0]
except IndexError:
    pass

try:
    if len(sys.argv[1]) == 0:
        print '\033[31m-------------------------------------------------\033[0m'
        print "\033[31mUsage: {%s all_bak|help}\033[0m" %  sys.argv[0]
except IndexError:
    pass

附一张图:

114235475.png
114235475.png

Tar备份脚本如下:

wKioL1MW3TTz4hd1AAJ7y4M14iA203.jpg
wKioL1MW3TTz4hd1AAJ7y4M14iA203.jpg
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档