【Shell】Linux中分区脚本

后天要中期答辩了,今天只刷了一个题,还没写出来,但是想更新博客,所以只有把之前写的东西贴出来了。

一个用于分区的shell脚本

 1 #!/bin/bash                            #指定脚本解释器路径
 2 echo "initial a disk……"
 3 echo -e "\033[31mWarning!:\033[0m"     #提醒用户危险操作
 4
 5 fdisk -l 2> /dev/null | grep -o "disk /dev/[sh]d[a-z]" #显示所有分区
 6
 7 read -p "your choice:" partdisk    #读入要操作的分区
 8
 9 if [ $partdisk == "quit" ];then
10     echo "quit"
11     exit 7                  #错误退出,非0
12 fi
13
14 until fdisk -l 2> /dev/null | grep -o "disk /dev/[sh]d[a-z]" | grep "disk $partdisk$" &> /dev/null;do
15     read -p "wrong option,your choice:"partdisk
16 done
17
18 read -p"are you sure?" choice
19
20 until [ $choice==‘y‘ -o $choice ==‘n‘];do
21     read choice
22 done
23
24 if [$choice = n ];then
25     exit 0
26 else
27     dd if=/dev/zero of=$pa partdisk bs=512 count =1          #从设备/dev/zero输出0覆盖所在磁盘的第一个扇区,删除所有分区
28     sync
29     ##删除所有分区
30     echo "partion"        ###
31     sleep 3            #
32     echo ‘n                    #32-45行echo的内容,和命令行中操作步骤一样
33     p                          #
34     1                          #
35                                #
36     +20M                       #
37     n                          #
38     p                          #
39     3                          #
40
41     +128M
42     t
43     3
44     82
45     w‘|fdisk $partition &>/dev/null      #返回消息送入/dev/null 设备
46     sync
47     partprobe $partdisk                  #写入硬盘
48     sync
49     sleep 3                             #同步内容花费时间较长,休眠3s否则下面格式化命令无法执行
50     mke2fs -j ${partdisk}1 &>/dev/null
51     mke2fs -j ${partdisk}2 &>/dev/null    #格式化分区,消息送入/dev/null
52     mkswap ${partdisk}3&>/dev/null        #格式化交换分区
时间: 2024-10-14 11:06:07

【Shell】Linux中分区脚本的相关文章

Linux中执行脚本参数获取

Linux中变量$[#,@,0,1,2,*,$,?]含义 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 [email protected] 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ 是脚本运行的当前进程ID号 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误 区别:[email protected], $* 相同点:都

linux中分区挂载的解释

学习过linux的人在一开始可能都会对linux的分区的认识感觉很复杂,因为习惯了windows下简单明了的c,d,e,f,g盘的表示方法,其实linux的分区看似复杂难懂,但是搞清楚了它的分区解构后,就很好理解,而且这样的分区系统也更加灵活好用.  一.linux下分区的定义 我们都知道,一块新的硬盘买回来后是不能直接使用的,我们需要对他进行分区,这一点对windows和linux是一样的,那么为什么要对硬盘进行分区呢,首先是如果把所有的文件当放在当前的硬盘中,也就是放在一个分区中,那么操作系

Shell - linux中的&& 和 ||

shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中.当 $? == 0 时,表示执行成功:当 $? == 1 时,表示执行失败. www.2cto.com 有时候,下一条命令依赖前一条命令是否执行成功.如:在成功地执行一条命令之后再执行另一条命令,或者在一条命令执行失败后再执行另一条命令等.shell 提供了 && 和 || 来实现命令执行控制的功能,shell 将根据 && 或 || 前面命令的返回值来控制其后面命令的执行. &

linux中分区工具的使用

列出可用的磁盘设备 图形化磁盘管理功能工具:点击"应用程序"->"系统工具"->"磁盘"或执行命令gnome-disks 列出块设备 lsblk 创建分区使用: fdisk创建MBR分区,也支持GPT,对于一块硬盘,最多只能管理15分区 gdisk创建GPT分区 GNU parted高级分区操作(创建.复制.调整大小等等) partprobe-重新设置内存中的内核分区表版本 分区工具fdisk和gdisk fdisk /dev/sdb

linux中分区、格式化文件系统、挂载

以前学linux的时候,毕竟自己没搞运维,就只注重了很多命令的运用,没太在意文件系统这块.买了本linux的书,这部分看了点东西,记个笔记哈哈. 有个场景,比如说我们现在的服务器上存储不够用了,那么当然需要加硬盘了对吧. 在linux上加硬盘,往硬盘上存数据,就会涉及到给硬盘分区.格式化(赋予文件系统).挂载. 步骤是   分区(parted) --->  格式化 (mkfs) ----->挂载(mount) 分区有很多工具.比如说fdisk,parted等等吧,这里需要知道两个分区类型.一种

Linux中bash shell入门

▲初探shell Shell分为图形界面shell(如win中的explorer,linux中的kDE和GNOME)和命令行shell.Shell是一个命令解释器,又分为交互式和非交互式.也可分为登陆式shell(需输入用户名和密码)和非登陆式shell Linux中支持的shell在/etc/shells文件中 Linux使用的默认shell为bash(Bourne Again Shell) ? type [-at] name????显示name是外部命令还是bash内置命令 ????参数-t

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件

linux中shell脚本的学习(一)

linux中shell是一个特殊的应用程序.它介于系统的内核与用户之间.充当命令"解释器"的作用角色.负责接收用户输入的操作指令,并进行解释.将需要执行的操作传递给内核.并输出执行结果: 下面我们来看一下当前系统所支持的shell的种类: 其中/bin/shell 是目前大多数linux中采用的默认shell.我们主要学习bash. 我们来写第一个脚本文件用作测试. vim first.sh cd /boot/ pwd ls -lh * chmod +x first.sh shell脚

shell 脚本实战笔记(4)--linux磁盘分区重新挂载

背景: Hadoop的HDFS文件系统的挂载, 默认指定的文件目录是/mnt/disk{N}. 当运维人员, 不小心把磁盘挂载于其他目录, 比如/mnt/data, /mnt/disk01, /mnt/diska时, HDFS会选择根分区, 当往HDFS里灌数据时, 导致的结果往往是根分区被快速的消耗尽, 而其他分区未见使用. 在CDH版本中, HDFS的配置如下所示: dfs.datanode.data.dir => /mnt/disk{N}/dfs/dn dfs.datanode.data.