阿里云服务器挂载脚本

本脚本是2.6.6环境下使用的~

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
####################################################################################
#coding=utf-8                                     
#脚本用途:自动挂载数据盘脚本                              
#编写时间:2016年8月30日                               
#脚本作者:乐橙运维组                                 
####################################################################################
#!/usr/bin/env python
 
#载入模块
import  os
import  time
from  subprocess  import  Popen, PIPE, STDOUT
 
#判断磁盘是否存在并开始分区
def  fdisk():
         AAA = os.path.exists( "/dev/xvdb" )
         if  AAA  = =  True :
                 print  "/dev/xvdb存在。"
                 print  "开始制作分区..."
                 time.sleep( 5 )
                 p = Popen([ 'fdisk' '/dev/xvdb' ],stdout = PIPE,stdin = PIPE,stderr = STDOUT)
                 output  =  p.communicate( input = "n\np\n1\n\n\np\nw\n" )
         else :
                 print  "/dev/xvdb不存在,程序将退出。"
                 exit()
#格式化
def  format ():
         os.system( "mkfs.ext4 /dev/xvdb1" )
#挂载
def  mountopt():
         name  =  input ( '请输入您要挂载的目录,如"/mnt:"' )
         os.environ[ 'name' =  str (name)
         os.system( "mount /dev/xvdb1 $name" )
         print  "/dev/xvdb1 已经挂载到" + str (name) + "下!"
         os.system( "--------------为您显示df -h的结果----------------" )
         os.system( "df -h" )
         
if  __name__  = =  '__main__' :
         fdisk()
         format ()
         mountopt()
print  "整个脚本已经执行完毕,感谢您的使用,下面请根据不同的需求选择下一步P2P的脚本"


这个脚本是面向阿里云的,阿里云初始状态的数据盘就叫/dev/xvdb,金山云好像叫/dev/vdb/,这里可以手动更改。


新的知识点!

由于#fdisk /dev/xvdb这个分区命令需要一次性返回六个值作为交互,所以不能使用传统的方式,这里使用了Popen,话说python的强大和全能在popen这里得到了体现,python果然非常的叼爆。


popen的几个说明文档:Interactive input/output using python
Python subprocess and user interaction
Python - How do I pass a string into subprocess.Popen (using the stdin argument)?


补充一下,如果要是仅仅是一个值的交互,比如说需要多次回车确认:

#echo -e "\n" | ./build-key-server 或者  #echo y | rm file就可以了,也可以把回车神马的写进一个脚本,然后调用这个脚本。

#!/bin/bash

fdisk /dev/xvdb << End

n

p

1



p

w

End


这个就是shell下一次性执行fdisk /dev/xvdb的脚本。


在下面涉及到了python的变量与shell变量的统一,所以使用了

1
os.environ[ 'name' =  str (name)

把name这个变量在两个程序之间传递了一下。



其实这种自动挂载的脚本很多,但是很多都是用shell写的,估计除了我们这个变态主管之外,没人会硬性要求用python写这玩意。



 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1844480

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值