用Python编写脚本进行软件自动安装配置
测试路径:/home/sonky
【脚本1】:使用exec*()系列函数,在python里面,os.exec*()系列命令会完全代替python解释器,如果执行os.exec*()函数,则python解释器和脚本将在os.exec*()执行之后终止。如果如果想继续执行,必须
使用os.fork()函数来启动一个新子进程。【建立.py文件后,用chmod a+u *.py命令修改文件属性后,./*.py可以运行脚本】
#! /usr/bin/env python
import os,glob
cmd = [ '/bin/tar',
tar_file_list = glob.glob('*.tar.gz')
for tar_file in tar_file_list:
print "install MPICH2..."
configure = ['./configure','--prefix=/home/sonky/MPICH2']
make = ['/usr/bin/make']
install = ['/usr/bin/make','install']
os.chdir('/home/sonky/mpich2-1.0.6')
i=os.fork()
if i!=0:
else:
【脚本2-mpich.py】:在linux(unix),可以使用os.spawn*()系列函数,该函数功能类似于os.exec*(),
但它们可以通过参数(P_WAIT,P_NOWAIT等)来实现是否继续执行还是终止脚本,其中sleep 3只是为了调试的时候暂停一下可以看到那一步已经完成。
#!/usr/bin/python
import os,glob
tar = [ '/bin/tar','-xzf',]
print “======Unzip source file======”
tar_file_list = glob.glob('*.tar.gz')
for tar_file in tar_file_list:
print "======Install MPICH======"
sleep = ['/bin/sleep','3']
os.spawnv(os.P_WAIT,sleep[0],sleep)
configure = ['./configure','--prefix=/home/sonky/MPICH2']
make = ['/usr/bin/make']
install = ['/usr/bin/make','install']
os.chdir('/home/sonky/mpich2-1.0.6')
os.spawnv(os.P_WAIT,configure[0],configure)
print "Step1:configure done!"
os.spawnv(os.P_WAIT,sleep[0],sleep)
os.spawnv(os.P_WAIT,make[0],make)
print "Step2:make done!"
os.spawnv(os.P_WAIT,sleep[0],sleep)
os.spawnv(os.P_WAIT,install[0],install)
print "Step3:install done!"
【脚本3】更加完善的脚本,加入配置文件功能
#! /usr/bin/python
from os.path import walk, join, normpath
from os import chdir
import os,time
def install(sourceFile, dirname,installDir):
def scan(arg,dirname, names):
def configPATH(cfgFile, installDir):
def configNodes(nodeFile):
if __name__== "__main__":
!!!问题:为什么python中要有这么多功能类似的函数?有什么区别?继续学习。
更多推荐
所有评论(0)