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. saltstack之(四)远程执行及常用模块

    前几篇文章已经完成了saltstack的安装.认证,从这篇文章开始学习使用saltstack的远程执行. 1.salt远程执行命令详解Usage: salt [options] '<target ...

  2. iOS UILabel根据文字获取高度及UITableCell动态获取高度(以截取快递信息为例)

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  3. Virtualbox+UbuntuServer+Xshell搭建Linux开发环境

    需求背景 嵌入式开发环境以编译服务器(Linux系统)为核心, 开发人员较多使用Windows系统, 通过若干工具, 可以实现开发人员使用Windows的开发工具,编写代码,然后在Linux系统上编译 ...

  4. my ambition

    学好java基础,不用学swing.学完java之后学my circle,之后学jsp,装好linux系统,天天打代码,在当寒假之前一定要学完并熟练运用java.java scrip,straw pu ...

  5. Java基础之处理事件——applet中语义事件的处理(Lottery 1)

    控制台程序. 语义事件与程序GUI上的组件操作有关.例如,如果选择菜单项或单击按钮,就会生成语义事件. 对组件执行操作时,例如选择菜单项或单击按钮,就会生成ActionEvent事件.在选择或取消选择 ...

  6. java io读书笔记(2)什么是stream

    什么是stream?stream就是一个长度不确定的有序字节序列. Input streams move bytes of data into a Java program from some gen ...

  7. PostgreSQL Replication之第十二章 与Postgres-XC一起工作(4)

    12.4 性能优化 Postgres-XC不是一个奇特的PostgreSQL版本,而是一个真正的分布式系统.这意味这,您不能只存储数据,希望事情超出服务器之外的快速,高效.如果您想优化速度,思考数据是 ...

  8. js字符串转化为方法调用

    function alertFunc(str1,str2,str3){ alert(str1); alert(str2); alert(str3); } function callAlert(func ...

  9. [原创]java WEB学习笔记54:Struts2学习之路--- 编写Struts2 的第一个程序,HelloWord,简述 package ,action,result

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  10. SOL面向对象 五大原则

    单一职责原则SRP(Single Responsibility Principle)是指一个类的功能要单一,不能包罗万象.如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起 ...