Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 1245|回复: 0

Python备份www网站脚本

[复制链接]

217

主题

331

帖子

4642

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4642
QQ
发表于 2015-4-4 22:17:09 | 显示全部楼层 |阅读模式
随着目前IT迅猛的发展,自动化运维对于Linux运维人员也越来越重要,传统的运维方式靠大量的人力,现在也逐渐转向自动化运维,我们常见的跟自动化有关的软件有哪些呢~~~~~~~~~~~~~~~~
今天我们来简单列举一下:kickistart、puppet、cobbler、chef、func、shell命令自动化等等各种自动化工具,今天我们来研究一下使用Python来编写自动化脚本,那python设计的目标是什么呢?
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。
Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”,Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和惊喜。
下面直接上脚本如下:(我也参考的网上的文章,自己根据实际情况修改,希望大家一起来交流)
  1. #!/usr/bin/python
  2. #Filename: Auto Backup root DIR and file
  3. #write wugk 2013-11-07
  4. import  os
  5. import  time
  6. #Define SOURCE and TARGET DIR
  7. SOURCE = ['/root','/var/www/html','/etc']
  8. TARGET_DIR = '/data/backup/'
  9. NAME_FILE = 'System_bak'
  10. today = TARGET_DIR + time.strftime('%Y%m%d')
  11. TARGET = TARGET_DIR + time.strftime('%Y%m%d') + "/" + NAME_FILE + '.zip'
  12. zip_command = "zip -qr '%s' %s " % (TARGET, ' '.join(SOURCE))
  13. #Scripts Exec process Start
  14. print '-------------------------------------------------'
  15. print "The Scripts Backup Starting,Please waiting ......"
  16. print
  17. #Judge today DIR
  18. if not os.path.exists(today):
  19.                                                                                                                               
  20.     os.mkdir(today) # make DIRectory
  21.         print 'Successfully created Directory', today
  22. #Exec Zip Command to Dir or file
  23. if os.system(zip_command) == 0:
  24.     print 'Successful backup to', TARGET
  25. else:
  26.     print 'Backup Failed !'
  27. #print Backup end info
  28. print
  29. os.system('sleep 2')
  30. print '--------------- The scripts Exec Done ------------------'
复制代码
此脚本后期会优化,后期不断的更新,欢迎大家拍砖!上面的脚本用的打包命令是zip,如果觉得效率不高,还可以用tar命令,把zip_command那一段后面改成如下:
zip_command = "tar -czvf '%s' %s " % (TARGET, ' '.join(SOURCE)) 这样也OK!。
最新修改脚本内容如下:
  1. #!/usr/bin/env python
  2. #auto backup system files
  3. #by wugk 2014-06-24
  4. import os,sys,time
  5. date = time.strftime('%Y%m%d')
  6. source = ['/boot','/etc','/var/log/']
  7. dir = '/data/backup/'
  8. r_dir = dir + date + '/'
  9. f_name = 'system_bak.tar.gz'
  10. r_name = r_dir + f_name

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

  16. time.sleep(2)

  17. def all_bak():

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

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

  24.     if os.system(tar_cmd) == 0:

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

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

  28. try:

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

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

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

  42. try:
  43.     if len(sys.argv[1]) == 0:
  44.         print '\033[31m-------------------------------------------------\033[0m'
  45.         print "\033[31mUsage: {%s all_bak|help}\033[0m" %  sys.argv[0]
  46. except IndexError:
  47.     pass
复制代码
附一张图:
2.png
Tar备份脚本如下:
3.jpg
京峰Linux教育创始人之一,只为有梦想的人!任何事情只要去行动,就会收获结果!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2019-1-22 22:10 , Processed in 0.042092 second(s), 23 queries , Apc On.

快速回复 返回顶部 返回列表