随着目前IT迅猛的发展,自动化运维对于Linux运维人员也越来越重要,传统的运维方式靠大量的人力,现在也逐渐转向自动化运维,我们常见的跟自动化有关的软件有哪些呢。
今天我们来简单列举一下:kickistart、puppet、cobbler、chef、func、shell命令自动化等等各种自动化工具,今天我们来研究一下使用Python来编写自动化脚本,那python设计的目标是什么呢?
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。
Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和惊喜。
下面直接上脚本如下:(我也参考的网上的文章,自己根据实际情况修改,希望大家一起来交流)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#!/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!。
最新修改脚本内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#!/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
|
附一张图:
Tar备份脚本如下:
本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1321851