游文鸿 發表於 2024-3-13 00:00:00

Linux 自动分区、格式化、挂载脚本详解

<p>
        <strong>自动分区、格式化、挂载脚本</strong></p>
<p>
        <span>功能:自动检测是否有尚未分区的数据盘,格式化新的数据盘并自动挂载</span></p>
<p>
        <strong>解决了什么问题</strong>:一键式检测是否有尚未分区的数据盘,并能对其格式化和自动挂载,省去了复杂的命令和步骤</p>
<p>
        执行方法:以root身份执行命令</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_939121">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">wget http:</code><code class="bash plain">//mirrors</code><code class="bash plain">.linuxeye.com</code><code class="bash plain">/scripts/auto_fdisk</code><code class="bash plain">.sh</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">chmod</code> <code class="bash plain">+x auto_fdisk.sh</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">.</code><code class="bash plain">/auto_fdisk</code><code class="bash plain">.sh</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <strong>结果:</strong>出现如下即自动分区、格式化、挂载成功:</p>
<p>
        <img title="Linux 自动分区、格式化、挂载脚本详解" alt="Linux 自动分区、格式化、挂载脚本详解" src="https://zhuji.jb51.net/uploads/img/202305/741f23ee59c27b18041bf5209a079c1b.jpg"></p>
<p>
        脚本内容如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_765777">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                        <div class="line number19 index18 alt2">
                                                                19</div>
                                                        <div class="line number20 index19 alt1">
                                                                20</div>
                                                        <div class="line number21 index20 alt2">
                                                                21</div>
                                                        <div class="line number22 index21 alt1">
                                                                22</div>
                                                        <div class="line number23 index22 alt2">
                                                                23</div>
                                                        <div class="line number24 index23 alt1">
                                                                24</div>
                                                        <div class="line number25 index24 alt2">
                                                                25</div>
                                                        <div class="line number26 index25 alt1">
                                                                26</div>
                                                        <div class="line number27 index26 alt2">
                                                                27</div>
                                                        <div class="line number28 index27 alt1">
                                                                28</div>
                                                        <div class="line number29 index28 alt2">
                                                                29</div>
                                                        <div class="line number30 index29 alt1">
                                                                30</div>
                                                        <div class="line number31 index30 alt2">
                                                                31</div>
                                                        <div class="line number32 index31 alt1">
                                                                32</div>
                                                        <div class="line number33 index32 alt2">
                                                                33</div>
                                                        <div class="line number34 index33 alt1">
                                                                34</div>
                                                        <div class="line number35 index34 alt2">
                                                                35</div>
                                                        <div class="line number36 index35 alt1">
                                                                36</div>
                                                        <div class="line number37 index36 alt2">
                                                                37</div>
                                                        <div class="line number38 index37 alt1">
                                                                38</div>
                                                        <div class="line number39 index38 alt2">
                                                                39</div>
                                                        <div class="line number40 index39 alt1">
                                                                40</div>
                                                        <div class="line number41 index40 alt2">
                                                                41</div>
                                                        <div class="line number42 index41 alt1">
                                                                42</div>
                                                        <div class="line number43 index42 alt2">
                                                                43</div>
                                                        <div class="line number44 index43 alt1">
                                                                44</div>
                                                        <div class="line number45 index44 alt2">
                                                                45</div>
                                                        <div class="line number46 index45 alt1">
                                                                46</div>
                                                        <div class="line number47 index46 alt2">
                                                                47</div>
                                                        <div class="line number48 index47 alt1">
                                                                48</div>
                                                        <div class="line number49 index48 alt2">
                                                                49</div>
                                                        <div class="line number50 index49 alt1">
                                                                50</div>
                                                        <div class="line number51 index50 alt2">
                                                                51</div>
                                                        <div class="line number52 index51 alt1">
                                                                52</div>
                                                        <div class="line number53 index52 alt2">
                                                                53</div>
                                                        <div class="line number54 index53 alt1">
                                                                54</div>
                                                        <div class="line number55 index54 alt2">
                                                                55</div>
                                                        <div class="line number56 index55 alt1">
                                                                56</div>
                                                        <div class="line number57 index56 alt2">
                                                                57</div>
                                                        <div class="line number58 index57 alt1">
                                                                58</div>
                                                        <div class="line number59 index58 alt2">
                                                                59</div>
                                                        <div class="line number60 index59 alt1">
                                                                60</div>
                                                        <div class="line number61 index60 alt2">
                                                                61</div>
                                                        <div class="line number62 index61 alt1">
                                                                62</div>
                                                        <div class="line number63 index62 alt2">
                                                                63</div>
                                                        <div class="line number64 index63 alt1">
                                                                64</div>
                                                        <div class="line number65 index64 alt2">
                                                                65</div>
                                                        <div class="line number66 index65 alt1">
                                                                66</div>
                                                        <div class="line number67 index66 alt2">
                                                                67</div>
                                                        <div class="line number68 index67 alt1">
                                                                68</div>
                                                        <div class="line number69 index68 alt2">
                                                                69</div>
                                                        <div class="line number70 index69 alt1">
                                                                70</div>
                                                        <div class="line number71 index70 alt2">
                                                                71</div>
                                                        <div class="line number72 index71 alt1">
                                                                72</div>
                                                        <div class="line number73 index72 alt2">
                                                                73</div>
                                                        <div class="line number74 index73 alt1">
                                                                74</div>
                                                        <div class="line number75 index74 alt2">
                                                                75</div>
                                                        <div class="line number76 index75 alt1">
                                                                76</div>
                                                        <div class="line number77 index76 alt2">
                                                                77</div>
                                                        <div class="line number78 index77 alt1">
                                                                78</div>
                                                        <div class="line number79 index78 alt2">
                                                                79</div>
                                                        <div class="line number80 index79 alt1">
                                                                80</div>
                                                        <div class="line number81 index80 alt2">
                                                                81</div>
                                                        <div class="line number82 index81 alt1">
                                                                82</div>
                                                        <div class="line number83 index82 alt2">
                                                                83</div>
                                                        <div class="line number84 index83 alt1">
                                                                84</div>
                                                        <div class="line number85 index84 alt2">
                                                                85</div>
                                                        <div class="line number86 index85 alt1">
                                                                86</div>
                                                        <div class="line number87 index86 alt2">
                                                                87</div>
                                                        <div class="line number88 index87 alt1">
                                                                88</div>
                                                        <div class="line number89 index88 alt2">
                                                                89</div>
                                                        <div class="line number90 index89 alt1">
                                                                90</div>
                                                        <div class="line number91 index90 alt2">
                                                                91</div>
                                                        <div class="line number92 index91 alt1">
                                                                92</div>
                                                        <div class="line number93 index92 alt2">
                                                                93</div>
                                                        <div class="line number94 index93 alt1">
                                                                94</div>
                                                        <div class="line number95 index94 alt2">
                                                                95</div>
                                                        <div class="line number96 index95 alt1">
                                                                96</div>
                                                        <div class="line number97 index96 alt2">
                                                                97</div>
                                                        <div class="line number98 index97 alt1">
                                                                98</div>
                                                        <div class="line number99 index98 alt2">
                                                                99</div>
                                                        <div class="line number100 index99 alt1">
                                                                100</div>
                                                        <div class="line number101 index100 alt2">
                                                                101</div>
                                                        <div class="line number102 index101 alt1">
                                                                102</div>
                                                        <div class="line number103 index102 alt2">
                                                                103</div>
                                                        <div class="line number104 index103 alt1">
                                                                104</div>
                                                        <div class="line number105 index104 alt2">
                                                                105</div>
                                                        <div class="line number106 index105 alt1">
                                                                106</div>
                                                        <div class="line number107 index106 alt2">
                                                                107</div>
                                                        <div class="line number108 index107 alt1">
                                                                108</div>
                                                        <div class="line number109 index108 alt2">
                                                                109</div>
                                                        <div class="line number110 index109 alt1">
                                                                110</div>
                                                        <div class="line number111 index110 alt2">
                                                                111</div>
                                                        <div class="line number112 index111 alt1">
                                                                112</div>
                                                        <div class="line number113 index112 alt2">
                                                                113</div>
                                                        <div class="line number114 index113 alt1">
                                                                114</div>
                                                        <div class="line number115 index114 alt2">
                                                                115</div>
                                                        <div class="line number116 index115 alt1">
                                                                116</div>
                                                        <div class="line number117 index116 alt2">
                                                                117</div>
                                                        <div class="line number118 index117 alt1">
                                                                118</div>
                                                        <div class="line number119 index118 alt2">
                                                                119</div>
                                                        <div class="line number120 index119 alt1">
                                                                120</div>
                                                        <div class="line number121 index120 alt2">
                                                                121</div>
                                                        <div class="line number122 index121 alt1">
                                                                122</div>
                                                        <div class="line number123 index122 alt2">
                                                                123</div>
                                                        <div class="line number124 index123 alt1">
                                                                124</div>
                                                        <div class="line number125 index124 alt2">
                                                                125</div>
                                                        <div class="line number126 index125 alt1">
                                                                126</div>
                                                        <div class="line number127 index126 alt2">
                                                                127</div>
                                                        <div class="line number128 index127 alt1">
                                                                128</div>
                                                        <div class="line number129 index128 alt2">
                                                                129</div>
                                                        <div class="line number130 index129 alt1">
                                                                130</div>
                                                        <div class="line number131 index130 alt2">
                                                                131</div>
                                                        <div class="line number132 index131 alt1">
                                                                132</div>
                                                        <div class="line number133 index132 alt2">
                                                                133</div>
                                                        <div class="line number134 index133 alt1">
                                                                134</div>
                                                        <div class="line number135 index134 alt2">
                                                                135</div>
                                                        <div class="line number136 index135 alt1">
                                                                136</div>
                                                        <div class="line number137 index136 alt2">
                                                                137</div>
                                                        <div class="line number138 index137 alt1">
                                                                138</div>
                                                        <div class="line number139 index138 alt2">
                                                                139</div>
                                                        <div class="line number140 index139 alt1">
                                                                140</div>
                                                        <div class="line number141 index140 alt2">
                                                                141</div>
                                                        <div class="line number142 index141 alt1">
                                                                142</div>
                                                        <div class="line number143 index142 alt2">
                                                                143</div>
                                                        <div class="line number144 index143 alt1">
                                                                144</div>
                                                        <div class="line number145 index144 alt2">
                                                                145</div>
                                                        <div class="line number146 index145 alt1">
                                                                146</div>
                                                        <div class="line number147 index146 alt2">
                                                                147</div>
                                                        <div class="line number148 index147 alt1">
                                                                148</div>
                                                        <div class="line number149 index148 alt2">
                                                                149</div>
                                                        <div class="line number150 index149 alt1">
                                                                150</div>
                                                        <div class="line number151 index150 alt2">
                                                                151</div>
                                                        <div class="line number152 index151 alt1">
                                                                152</div>
                                                        <div class="line number153 index152 alt2">
                                                                153</div>
                                                        <div class="line number154 index153 alt1">
                                                                154</div>
                                                        <div class="line number155 index154 alt2">
                                                                155</div>
                                                        <div class="line number156 index155 alt1">
                                                                156</div>
                                                        <div class="line number157 index156 alt2">
                                                                157</div>
                                                        <div class="line number158 index157 alt1">
                                                                158</div>
                                                        <div class="line number159 index158 alt2">
                                                                159</div>
                                                        <div class="line number160 index159 alt1">
                                                                160</div>
                                                        <div class="line number161 index160 alt2">
                                                                161</div>
                                                        <div class="line number162 index161 alt1">
                                                                162</div>
                                                        <div class="line number163 index162 alt2">
                                                                163</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash preprocessor bold">#!/bin/bash</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># author: yeho &lt;lj2007331 at gmail.com&gt;</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments"># blog: https://blog.linuxeye.com</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash comments">#</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash comments"># notes: oneinstack for centos/radhat 5+ debian 6+ and ubuntu 12+</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash comments">#</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash comments"># project home page:</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash comments">#    http://oneinstack.com</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash comments">#    https://github.com/lj2007331/oneinstack</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash functions">export</code> <code class="bash plain">path=</code><code class="bash plain">/usr/local/sbin</code><code class="bash plain">:</code><code class="bash plain">/usr/local/bin</code><code class="bash plain">:</code><code class="bash plain">/sbin</code><code class="bash plain">:</code><code class="bash plain">/bin</code><code class="bash plain">:</code><code class="bash plain">/usr/sbin</code><code class="bash plain">:</code><code class="bash plain">/usr/bin</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash functions">clear</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="bash functions">printf</code> <code class="bash plain">"</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="bash comments">#######################################################################</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="bash comments">#    oneinstack for centos/radhat 5+ debian 6+ and ubuntu 12+   #</code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="bash comments">#               auto fdisk               #</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="bash comments">#    for more information please visit http://oneinstack.com    #</code>
</div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="bash comments">#######################################################################</code>
</div>
                                                                <div class="line number18 index17 alt1">
                                                                        <code class="bash plain">"</code>
</div>
                                                                <div class="line number19 index18 alt2">
                                                                        <code class="bash functions">echo</code><code class="bash plain">=</code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number20 index19 alt1">
                                                                        <code class="bash keyword">for</code> <code class="bash plain">cmd </code><code class="bash keyword">in</code> <code class="bash functions">echo</code> <code class="bash plain">/bin/echo</code><code class="bash plain">; </code><code class="bash keyword">do</code>
</div>
                                                                <div class="line number21 index20 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">$cmd &gt;</code><code class="bash plain">/dev/null</code> <code class="bash plain">2&gt;&amp;1 || </code><code class="bash keyword">continue</code>
</div>
                                                                <div class="line number22 index21 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">if</code> <code class="bash plain">! $cmd -e </code><code class="bash string">""</code> <code class="bash plain">| </code><code class="bash functions">grep</code> <code class="bash plain">-qe </code><code class="bash string">'^-e'</code><code class="bash plain">; </code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number23 index22 alt2">
                                                                        <code class="bash spaces">        </code><code class="bash functions">echo</code><code class="bash plain">=$cmd</code>
</div>
                                                                <div class="line number24 index23 alt1">
                                                                        <code class="bash spaces">        </code><code class="bash keyword">break</code>
</div>
                                                                <div class="line number25 index24 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">fi</code>
</div>
                                                                <div class="line number26 index25 alt1">
                                                                        <code class="bash keyword">done</code>
</div>
                                                                <div class="line number27 index26 alt2">
                                                                        <code class="bash plain">csi=$($</code><code class="bash functions">echo</code> <code class="bash plain">-e </code><code class="bash string">"\033["</code><code class="bash plain">)</code>
</div>
                                                                <div class="line number28 index27 alt1">
                                                                        <code class="bash plain">cend=</code><code class="bash string">"${csi}0m"</code>
</div>
                                                                <div class="line number29 index28 alt2">
                                                                        <code class="bash plain">cdgreen=</code><code class="bash string">"${csi}32m"</code>
</div>
                                                                <div class="line number30 index29 alt1">
                                                                        <code class="bash plain">cred=</code><code class="bash string">"${csi}1;31m"</code>
</div>
                                                                <div class="line number31 index30 alt2">
                                                                        <code class="bash plain">cgreen=</code><code class="bash string">"${csi}1;32m"</code>
</div>
                                                                <div class="line number32 index31 alt1">
                                                                        <code class="bash plain">cyellow=</code><code class="bash string">"${csi}1;33m"</code>
</div>
                                                                <div class="line number33 index32 alt2">
                                                                        <code class="bash plain">cblue=</code><code class="bash string">"${csi}1;34m"</code>
</div>
                                                                <div class="line number34 index33 alt1">
                                                                        <code class="bash plain">cmagenta=</code><code class="bash string">"${csi}1;35m"</code>
</div>
                                                                <div class="line number35 index34 alt2">
                                                                        <code class="bash plain">ccyan=</code><code class="bash string">"${csi}1;36m"</code>
</div>
                                                                <div class="line number36 index35 alt1">
                                                                        <code class="bash plain">csuccess=</code><code class="bash string">"$cdgreen"</code>
</div>
                                                                <div class="line number37 index36 alt2">
                                                                        <code class="bash plain">cfailure=</code><code class="bash string">"$cred"</code>
</div>
                                                                <div class="line number38 index37 alt1">
                                                                        <code class="bash plain">cquestion=</code><code class="bash string">"$cmagenta"</code>
</div>
                                                                <div class="line number39 index38 alt2">
                                                                        <code class="bash plain">cwarning=</code><code class="bash string">"$cyellow"</code>
</div>
                                                                <div class="line number40 index39 alt1">
                                                                        <code class="bash plain">cmsg=</code><code class="bash string">"$ccyan"</code>
</div>
                                                                <div class="line number41 index40 alt2">
                                                                        <code class="bash comments"># check if user is root</code>
</div>
                                                                <div class="line number42 index41 alt1">
                                                                        <code class="bash plain">[ $(</code><code class="bash functions">id</code> <code class="bash plain">-u) != </code><code class="bash string">"0"</code> <code class="bash plain">] &amp;&amp; { </code><code class="bash functions">echo</code> <code class="bash string">"${cfailure}error: you must be root to run this script${cend}"</code><code class="bash plain">; </code><code class="bash functions">exit</code> <code class="bash plain">1; }</code>
</div>
                                                                <div class="line number43 index42 alt2">
                                                                        <code class="bash plain">mount_dir=</code><code class="bash plain">/data</code>
</div>
                                                                <div class="line number44 index43 alt1">
                                                                        <code class="bash plain">fstab_file=</code><code class="bash plain">/etc/fstab</code>
</div>
                                                                <div class="line number45 index44 alt2">
                                                                        <code class="bash plain">count=0</code>
</div>
                                                                <div class="line number46 index45 alt1">
                                                                        <code class="bash plain">tmp1=</code><code class="bash plain">/tmp/</code><code class="bash plain">.tmp1</code>
</div>
                                                                <div class="line number47 index46 alt2">
                                                                        <code class="bash plain">tmp2=</code><code class="bash plain">/tmp/</code><code class="bash plain">.tmp2</code>
</div>
                                                                <div class="line number48 index47 alt1">
                                                                        <code class="bash plain">&gt; $tmp1</code>
</div>
                                                                <div class="line number49 index48 alt2">
                                                                        <code class="bash plain">&gt; $tmp2</code>
</div>
                                                                <div class="line number50 index49 alt1">
                                                                        <code class="bash comments"># check lock file, one time only let the script run one time </code>
</div>
                                                                <div class="line number51 index50 alt2">
                                                                        <code class="bash plain">lockfile=</code><code class="bash plain">/tmp/</code><code class="bash plain">.$(</code><code class="bash functions">basename</code> <code class="bash plain">$0)</code>
</div>
                                                                <div class="line number52 index51 alt1">
                                                                        <code class="bash keyword">if</code> <code class="bash plain">[ -f </code><code class="bash string">"$lockfile"</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number53 index52 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number54 index53 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code> <code class="bash string">"${cwarning}the script is already exist, please next time to run this script${cend}"</code>
</div>
                                                                <div class="line number55 index54 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number56 index55 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash functions">exit</code>
</div>
                                                                <div class="line number57 index56 alt2">
                                                                        <code class="bash keyword">else</code>
</div>
                                                                <div class="line number58 index57 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number59 index58 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code> <code class="bash string">"${cmsg}step 1.no lock file, begin to create lock file and continue${cend}"</code>
</div>
                                                                <div class="line number60 index59 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number61 index60 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">touch</code> <code class="bash plain">$lockfile</code>
</div>
                                                                <div class="line number62 index61 alt1">
                                                                        <code class="bash keyword">fi</code>
</div>
                                                                <div class="line number63 index62 alt2">
                                                                        <code class="bash comments"># check disk partition</code>
</div>
                                                                <div class="line number64 index63 alt1">
                                                                        <code class="bash plain">check_disk() {</code>
</div>
                                                                <div class="line number65 index64 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">&gt; $lockfile</code>
</div>
                                                                <div class="line number66 index65 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">for</code> <code class="bash plain">i </code><code class="bash keyword">in</code> <code class="bash plain">`</code><code class="bash functions">fdisk</code> <code class="bash plain">-l | </code><code class="bash functions">grep</code> <code class="bash string">"disk"</code> <code class="bash plain">| </code><code class="bash functions">grep</code> <code class="bash string">"/dev"</code> <code class="bash plain">| </code><code class="bash functions">awk</code> <code class="bash string">'{print $2}'</code> <code class="bash plain">| </code><code class="bash functions">awk</code> <code class="bash plain">-f: </code><code class="bash string">'{print $1}'</code> <code class="bash plain">| </code><code class="bash functions">grep</code> <code class="bash string">"vd"</code><code class="bash plain">`</code>
</div>
                                                                <div class="line number67 index66 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">do</code>
</div>
                                                                <div class="line number68 index67 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">device_count=$(</code><code class="bash functions">fdisk</code> <code class="bash plain">-l $i | </code><code class="bash functions">grep</code> <code class="bash string">"$i"</code> <code class="bash plain">| </code><code class="bash functions">awk</code> <code class="bash string">'{print $2}'</code> <code class="bash plain">| </code><code class="bash functions">awk</code> <code class="bash plain">-f: </code><code class="bash string">'{print $1}'</code> <code class="bash plain">| </code><code class="bash functions">wc</code> <code class="bash plain">-l)</code>
</div>
                                                                <div class="line number69 index68 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">new_mount=$(</code><code class="bash functions">df</code> <code class="bash plain">-h)</code>
</div>
                                                                <div class="line number70 index69 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">if</code> <code class="bash plain">[ $device_count -lt 2 ];</code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number71 index70 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash keyword">if</code> <code class="bash plain">[ -n </code><code class="bash string">"$(echo $new_mount | grep -w "</code><code class="bash plain">$i</code><code class="bash string">")"</code> <code class="bash plain">-o </code><code class="bash string">"$(grep -v '^#' $fstab_file | grep -v ^$ | awk '{print $1,$2,$3}' | grep -w "</code><code class="bash plain">$i</code><code class="bash string">" | awk '{print $2}')"</code> <code class="bash plain">== </code><code class="bash string">'/'</code> <code class="bash plain">-o </code><code class="bash string">"$(grep -v '^#' $fstab_file | grep -v ^$ | awk '{print $1,$2,$3}' | grep -w "</code><code class="bash plain">$i</code><code class="bash string">" | awk '{print $3}')"</code> <code class="bash plain">== </code><code class="bash string">'swap'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number72 index71 alt1">
                                                                        <code class="bash spaces">        </code><code class="bash functions">echo</code> <code class="bash string">"${cwarning}the $i disk is mounted${cend}"</code>
</div>
                                                                <div class="line number73 index72 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash keyword">else</code>
</div>
                                                                <div class="line number74 index73 alt1">
                                                                        <code class="bash spaces">        </code><code class="bash functions">echo</code> <code class="bash plain">$i &gt;&gt; $lockfile</code>
</div>
                                                                <div class="line number75 index74 alt2">
                                                                        <code class="bash spaces">        </code><code class="bash functions">echo</code> <code class="bash string">"you have a free disk, now will fdisk it and mount it"</code>
</div>
                                                                <div class="line number76 index75 alt1">
                                                                        <code class="bash spaces">      </code><code class="bash keyword">fi</code>
</div>
                                                                <div class="line number77 index76 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">fi</code>
</div>
                                                                <div class="line number78 index77 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">done</code>
</div>
                                                                <div class="line number79 index78 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">disk_list=$(</code><code class="bash functions">cat</code> <code class="bash plain">$lockfile)</code>
</div>
                                                                <div class="line number80 index79 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">if</code> <code class="bash plain">[ </code><code class="bash string">"x$disk_list"</code> <code class="bash plain">== </code><code class="bash string">"x"</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number81 index80 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number82 index81 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash functions">echo</code> <code class="bash string">"${cwarning}no free disk need to be fdisk. exit script${cend}"</code>
</div>
                                                                <div class="line number83 index82 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number84 index83 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash functions">rm</code> <code class="bash plain">-rf $lockfile</code>
</div>
                                                                <div class="line number85 index84 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash functions">exit</code> <code class="bash plain">0</code>
</div>
                                                                <div class="line number86 index85 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">else</code>
</div>
                                                                <div class="line number87 index86 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash functions">echo</code> <code class="bash string">"${cmsg}this system have free disk :${cend}"</code>
</div>
                                                                <div class="line number88 index87 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">for</code> <code class="bash plain">i </code><code class="bash keyword">in</code> <code class="bash plain">`</code><code class="bash functions">echo</code> <code class="bash plain">$disk_list`</code>
</div>
                                                                <div class="line number89 index88 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">do</code>
</div>
                                                                <div class="line number90 index89 alt1">
                                                                        <code class="bash spaces">      </code><code class="bash functions">echo</code> <code class="bash string">"$i"</code>
</div>
                                                                <div class="line number91 index90 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash plain">count=$((count+1))</code>
</div>
                                                                <div class="line number92 index91 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">done</code>
</div>
                                                                <div class="line number93 index92 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">[ $count -gt 1 ] &amp;&amp; { </code><code class="bash functions">echo</code> <code class="bash string">"${cwarning}this system has at least two free disk, you must manually mount it${cend}"</code><code class="bash plain">; </code><code class="bash functions">exit</code> <code class="bash plain">0; }</code>
</div>
                                                                <div class="line number94 index93 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">fi</code>
</div>
                                                                <div class="line number95 index94 alt2">
                                                                        <code class="bash plain">}</code>
</div>
                                                                <div class="line number96 index95 alt1">
                                                                        <code class="bash comments"># check os</code>
</div>
                                                                <div class="line number97 index96 alt2">
                                                                        <code class="bash plain">check_os() {</code>
</div>
                                                                <div class="line number98 index97 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">os_release=$(</code><code class="bash functions">grep</code> <code class="bash string">"aliyun linux release"</code> <code class="bash plain">/etc/issue</code> <code class="bash plain">2&gt;</code><code class="bash plain">/dev/null</code><code class="bash plain">)</code>
</div>
                                                                <div class="line number99 index98 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">os_release_2=$(</code><code class="bash functions">grep</code> <code class="bash string">"aliyun linux release"</code> <code class="bash plain">/etc/aliyun-release</code> <code class="bash plain">2&gt;</code><code class="bash plain">/dev/null</code><code class="bash plain">)</code>
</div>
                                                                <div class="line number100 index99 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">if</code> <code class="bash plain">[ </code><code class="bash string">"$os_release"</code> <code class="bash plain">] &amp;&amp; [ </code><code class="bash string">"$os_release_2"</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number101 index100 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">if</code> <code class="bash functions">echo</code> <code class="bash string">"$os_release"</code> <code class="bash plain">| </code><code class="bash functions">grep</code> <code class="bash string">"release 5"</code> <code class="bash plain">&gt;</code><code class="bash plain">/dev/null</code> <code class="bash plain">2&gt;&amp;1;</code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number102 index101 alt1">
                                                                        <code class="bash spaces">      </code><code class="bash plain">os_release=aliyun5</code>
</div>
                                                                <div class="line number103 index102 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash plain">modify_env</code>
</div>
                                                                <div class="line number104 index103 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">fi</code>
</div>
                                                                <div class="line number105 index104 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">fi</code>
</div>
                                                                <div class="line number106 index105 alt1">
                                                                        <code class="bash plain">}</code>
</div>
                                                                <div class="line number107 index106 alt2">
                                                                        <code class="bash comments"># install ext4</code>
</div>
                                                                <div class="line number108 index107 alt1">
                                                                        <code class="bash plain">modify_env() {</code>
</div>
                                                                <div class="line number109 index108 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">modprobe ext4</code>
</div>
                                                                <div class="line number110 index109 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">yum -y </code><code class="bash functions">install</code> <code class="bash plain">e4fsprogs</code>
</div>
                                                                <div class="line number111 index110 alt2">
                                                                        <code class="bash plain">}</code>
</div>
                                                                <div class="line number112 index111 alt1">
                                                                        <code class="bash comments"># fdisk ,formating and create the file system</code>
</div>
                                                                <div class="line number113 index112 alt2">
                                                                        <code class="bash plain">fdisk_fun() {</code>
</div>
                                                                <div class="line number114 index113 alt1">
                                                                        <code class="bash functions">fdisk</code> <code class="bash plain">-s 56 $1 &lt;&lt; eof</code>
</div>
                                                                <div class="line number115 index114 alt2">
                                                                        <code class="bash plain">n</code>
</div>
                                                                <div class="line number116 index115 alt1">
                                                                        <code class="bash plain">p</code>
</div>
                                                                <div class="line number117 index116 alt2">
                                                                        <code class="bash plain">1</code>
</div>
                                                                <div class="line number118 index117 alt1">
                                                                        <code class="bash plain">wq</code>
</div>
                                                                <div class="line number119 index118 alt2">
                                                                        <code class="bash plain">eof</code>
</div>
                                                                <div class="line number120 index119 alt1">
                                                                        <code class="bash functions">sleep</code> <code class="bash plain">5</code>
</div>
                                                                <div class="line number121 index120 alt2">
                                                                        <code class="bash plain">mkfs.ext4 ${1}1</code>
</div>
                                                                <div class="line number122 index121 alt1">
                                                                        <code class="bash plain">}</code>
</div>
                                                                <div class="line number123 index122 alt2">
                                                                        <code class="bash comments"># make directory</code>
</div>
                                                                <div class="line number124 index123 alt1">
                                                                        <code class="bash plain">make_dir() {</code>
</div>
                                                                <div class="line number125 index124 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code> <code class="bash string">"${cmsg}step 4.begin to make directory${cend}"</code>
</div>
                                                                <div class="line number126 index125 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">[ -d </code><code class="bash string">"$mount_dir"</code> <code class="bash plain">] &amp;&amp; </code><code class="bash functions">mv</code> <code class="bash plain">${mount_dir}{,_bk}</code>
</div>
                                                                <div class="line number127 index126 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">mkdir</code> <code class="bash plain">-p $mount_dir</code>
</div>
                                                                <div class="line number128 index127 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code> <code class="bash string">"$mount_dir"</code> <code class="bash plain">&gt;&gt; $tmp1</code>
</div>
                                                                <div class="line number129 index128 alt2">
                                                                        <code class="bash plain">}</code>
</div>
                                                                <div class="line number130 index129 alt1">
                                                                        <code class="bash comments"># config /etc/fstab and mount device</code>
</div>
                                                                <div class="line number131 index130 alt2">
                                                                        <code class="bash plain">main() {</code>
</div>
                                                                <div class="line number132 index131 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">for</code> <code class="bash plain">i </code><code class="bash keyword">in</code> <code class="bash plain">`</code><code class="bash functions">echo</code> <code class="bash plain">$disk_list`</code>
</div>
                                                                <div class="line number133 index132 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">do</code>
</div>
                                                                <div class="line number134 index133 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number135 index134 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash functions">echo</code> <code class="bash string">"${cmsg}step 3.begin to fdisk free disk${cend}"</code>
</div>
                                                                <div class="line number136 index135 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">[ -n </code><code class="bash string">"`df -h | grep ${i}1`"</code> <code class="bash plain">] &amp;&amp; { </code><code class="bash functions">echo</code> <code class="bash string">"${cfailure}the ${i}1 already mount${cend}"</code><code class="bash plain">; </code><code class="bash functions">echo</code><code class="bash plain">; </code><code class="bash functions">exit</code> <code class="bash plain">0; }</code>
</div>
                                                                <div class="line number137 index136 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">fdisk_fun $i &gt; </code><code class="bash plain">/dev/null</code> <code class="bash plain">2&gt;&amp;1</code>
</div>
                                                                <div class="line number138 index137 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number139 index138 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash functions">echo</code> <code class="bash string">"${i}1"</code> <code class="bash plain">&gt;&gt; $tmp2</code>
</div>
                                                                <div class="line number140 index139 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">done</code>
</div>
                                                                <div class="line number141 index140 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">make_dir</code>
</div>
                                                                <div class="line number142 index141 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">&gt; $lockfile</code>
</div>
                                                                <div class="line number143 index142 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">paste</code> <code class="bash plain">$tmp2 $tmp1 &gt; $lockfile</code>
</div>
                                                                <div class="line number144 index143 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number145 index144 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code> <code class="bash string">"${cmsg}step 5.begin to write configuration to /etc/fstab and mount device${cend}"</code>
</div>
                                                                <div class="line number146 index145 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">while</code> <code class="bash functions">read</code> <code class="bash plain">a b</code>
</div>
                                                                <div class="line number147 index146 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">do</code>
</div>
                                                                <div class="line number148 index147 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">[ -z </code><code class="bash string">"`grep ^${a} $fstab_file`"</code> <code class="bash plain">-a -z </code><code class="bash string">"`grep ${b} $fstab_file`"</code> <code class="bash plain">] &amp;&amp; </code><code class="bash functions">echo</code> <code class="bash string">"${a} $b   ext4  defaults   0 0"</code> <code class="bash plain">&gt;&gt; $fstab_file</code>
</div>
                                                                <div class="line number149 index148 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash keyword">done</code> <code class="bash plain">&lt; $lockfile</code>
</div>
                                                                <div class="line number150 index149 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash functions">mount</code> <code class="bash plain">-a</code>
</div>
                                                                <div class="line number151 index150 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code>
</div>
                                                                <div class="line number152 index151 alt1">
                                                                        <code class="bash plain">}</code>
</div>
                                                                <div class="line number153 index152 alt2">
                                                                        <code class="bash comments"># start script</code>
</div>
                                                                <div class="line number154 index153 alt1">
                                                                        <code class="bash functions">echo</code> <code class="bash string">"${cmsg}step 2.begin to check free disk${cend}"</code>
</div>
                                                                <div class="line number155 index154 alt2">
                                                                        <code class="bash comments">#service mysqld stop</code>
</div>
                                                                <div class="line number156 index155 alt1">
                                                                        <code class="bash comments">#mv /data /root</code>
</div>
                                                                <div class="line number157 index156 alt2">
                                                                        <code class="bash plain">check_os</code>
</div>
                                                                <div class="line number158 index157 alt1">
                                                                        <code class="bash plain">check_disk</code>
</div>
                                                                <div class="line number159 index158 alt2">
                                                                        <code class="bash plain">main</code>
</div>
                                                                <div class="line number160 index159 alt1">
                                                                        <code class="bash functions">df</code> <code class="bash plain">-h</code>
</div>
                                                                <div class="line number161 index160 alt2">
                                                                        <code class="bash comments">#mv /root/data/* /data</code>
</div>
                                                                <div class="line number162 index161 alt1">
                                                                        <code class="bash comments">#service mysqld start</code>
</div>
                                                                <div class="line number163 index162 alt2">
                                                                        <code class="bash functions">rm</code> <code class="bash plain">-rf $lockfile $tmp1 $tmp2</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!</p>
頁: [1]
查看完整版本: Linux 自动分区、格式化、挂载脚本详解