Ubuntu默认不自动挂载磁盘.

只是学习Bash使用,需优化如使用

# file: mountAll.sh
# include color support
# a list of variables containing color code in xterm256
. bash.colors # check if
function isMounted {
disk=$1
for d in `mount -l | awk '{print $1}' | sort |uniq`;do
if test "x$disk" = "x$d" ;then
# use `=' for string comparison, and `-eq' for numbers in SHELL
# in Perl5, string comparison is `eq' while numeric comparison is `='
# I prefer the Perl way
echo 1
# mounted
return
fi
# Note
# the `commands` capture data from stand out or function return value
done
echo 0
# not mounted
return
} function isAllMounted(){
# check if there is disk not mounted
for disk in '/dev/sdb1' '/dev/sdc1' '/dev/sdc2';do
if test `isMounted $disk` -eq 0;then
# 0 not mounted, 1 mounted
echo 0
return
fi
done
echo 1
# 1 all mounted, 0 at least 1 disk not mounted
return
}
mount3IfThereIsNotMounted(){
if [ `isMounted '/dev/sdb1'` -eq 0 ];then
sudo /bin/mount /dev/sdb1 /mnt/data1 2>/dev/null
fi
if [ `isMounted '/dev/sdc1'` -eq 0 ];then
sudo /bin/mount /dev/sdc1 /mnt/data2 2>/dev/null
fi
if [ `isMounted '/dev/sdc2'` -eq 0 ];then
sudo /bin/mount /dev/sdc2 /mnt/data3 2>/dev/null
fi
}
if [ -x /usr/bin/sudo ];then
# check that the sudo is visible to the current login user
case " $(groups) " in
# if $USER is in the adm group
*\ adm\ *)
if [ `isAllMounted` -eq 0 ];then
# at least one disk not mounted
mount3IfThereIsNotMounted
if [ `isAllMounted` -eq 1 ];then
echo -e "${green}adm:Disks prepared\033[00m"
else
echo -e "${red}adm:Not all disks prepared\033[00m"
fi
else
echo -e "${blue}adm:Disks prepared\033[00m"
fi;;
*\ sudo\ *)
# if $USER is in the adm group
if [ !`isAllMounted` ];then
mount3IfThereIsNotMounted
if [ `isAllMounted` -eq 1 ];then
echo -e "${green}sudo:Disks prepared$endc"
else
echo -e "${red}sudo:Not all disks prepared$endc"
fi
else
echo -e "${blue}sudo:Disks prepared$endc"
fi;;
*)
if [ `isAllMounted` -eq 1 ];then
echo -e "${blue}Disks prepared$endc"
else
echo -e "${red}Not all disks prepared$endc"
fi;;
esac
fi

如果没挂载要输入密码,可以把密码embeded到expect脚本中

# file mountSilent
#!/usr/bin/expect
spawn bash mountAll.sh
expect "password\r"
send "********"
interact

Color 8

#file: bash.colors
prefix='\033[01;'
endc='\033[00m'
black=$prefix"30m"
red=$prefix"31m"
green=$prefix"32m"
yellow=$prefix"33m"
blue=$prefix"34m"
fuchsia=$prefix"35m"
ultramarine=$prefix"36m"
white=$prefix"37m" bg_black=$prefix"40m"
bg_red=$prefix"41m"
bg_green=$prefix"42m"
bg_yellow=$prefix"44m"
bg_blue=$prefix"44m"
bg_fuchsia=$prefix"45m"
bg_ultramarine=$prefix"46m"
bg_white=$prefix"47m"

Ubuntu检测磁盘是否挂载的更多相关文章

  1. ubuntu中磁盘挂载与卸载

      问题描述:          ubuntu中磁盘的挂载和卸载     问题解决:          (1)ubuntu中磁盘挂载        注:    如上所示,使用命令df查看磁盘使用情况 ...

  2. linux下磁盘的挂载与卸载

    Linux下每个文件系统都有独立的inode,block,super block等信息,这个文件系统要挂载到目录树才可以使用,将文件系统与目录树结合的操作称为挂载,反之则为卸载. 也就是说,挂载点一定 ...

  3. 检测磁盘驱动的健康程度SMART

    在linux中,工具包的名字为smartmontools 在CentOS中可以使用 yum install smartmontools来安装工具 首先通过smartctl -i /dev/sda 来检 ...

  4. Ubuntu 将其他盘挂载到/home的子目录下

    Ubuntu 14.04 将其他盘挂载到/home的子目录下当安装完Ubuntu系统,由于当时没有注意,分配的分区空间太小.经过一段时间安装了各式各样的软件后,常常会遇到/home目录下空间不够的情况 ...

  5. aix磁盘分区挂载问题

    aix在进行磁盘分区挂载时,可能会报错

  6. VMwave下Ubuntu扩展磁盘空间

    VMwave下Ubuntu扩展磁盘空间 Ubuntu原预装磁盘空间20G,随着系统安装软件越来越多,空间慢慢不够用. 打算安装DB2,许扩展磁盘空间. 环境: No LSB modules are a ...

  7. Linux系统格式化新磁盘并挂载分区

    Linux系统格式化新磁盘并挂载分区 在虚拟机的设置界面中,我们可以选择添加硬盘 添加好硬盘后,我们输入命令fdisk -l 看到有一个未经分区的硬盘 Fdisk命令编辑这个硬盘 输入n创建分区,p选 ...

  8. CentOS 7 增加磁盘分区挂载(lvm)

    1.查看主机现有磁盘情况 # fdisk -l 现在主机中存在一块8G的磁盘sdb,尚未分区挂载,所以需将磁盘进行分区挂载. 2.对磁盘进行分区 # fdisk /dev/sdb   (选择要操作分区 ...

  9. xenserver添加磁盘后挂载为本地存储库并且删除

    方法一: 1.1:查看磁盘列表 fdisk -l [root@xenserver ~]# fdisk -l Disk /dev/sdb: 7999.4 GB, 7999376588800 bytes, ...

随机推荐

  1. C语言:其他进制转换为十进制(方法二)

    #include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> //其他 ...

  2. Android -- Looper.prepare()和Looper.loop() —深入版

    Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理.handler其实可以看做是一个工具类,用来向消息队列中插入消息的. (1) Loope ...

  3. AbsListView.OnScrollListener

    public static interface AbsListView.OnScrollListener   android.widget.AbsListView.OnScrollListener 类 ...

  4. 复制中的NOT FOR REPLICATION

    错误#1 10:51 2012-9-4sp_MSget_repl_commands 重复键插入解答#1 修改distribution库下sp_MSget_repl_commands 存储过程decla ...

  5. [ROS] slam_gmapping

    slam_gmapping节点 1)slam_gmapping 节点在sensor_msgs/LaserScan消息内获取数据并建立地图 map(nav_msgs/OccupancyGrid).该地图 ...

  6. javaScript常用工具库

    对应于百度前端技术学院2015年春季的课程2相关内容 https://github.com/baidu-ife/ife/tree/master/2015_spring/task/task0002 ht ...

  7. Android中ScrollView嵌套GridView,解决GridView显示不全的问题

    /** * 自定义gridview,解决ScrollView中嵌套gridview显示不正常的问题(1行半) * */ public class MyGridView extends GridView ...

  8. Java基础之处理事件——应用程序中的语义事件监听器(Sketcher 5 with element color listeners)

    控制台程序. 为了标识元素的类型,可以为菜单已提供的4中元素定义常量,用作ID.这有助于执行菜单项监听器的操作,还提供了一种标识颜色类型的方式.我们会累积许多应用程序范围的常量,所以把它们定义为可以静 ...

  9. Request、Servlet及其子接口

    最近看tomcat源码,这类接口多的有点眩,整理出来看一下.(基于tomcat4) javax.servlet.ServletRequset接口,和org.apache.catalina.Reques ...

  10. Velocity(1)——注释

    Velocity的单行注释,使用## 多行注释使用#* cooments *#