要求:寫乙個shell指令碼,能夠事項一鍵安裝並配置samba服務,執行該指令碼時需要歹意個路徑(格式$0 $1) /opt/samba.sh /opt/samba 目錄若存在,則自動建立。(任何人都可以訪問,並且不需要密碼,並且是唯讀的)
【shell分析】
1.需要判斷的使用者給出的目錄是不是絕對路徑,即是否以『/』開頭
2.指令碼需要判斷samba 服務是否已經安裝,若已經安裝了就不需要執行yum -y install samba 了
3.配置檔案可以使用sed -i 也可以使用cat >> $dirconf << eof
4.samba配置可以參考http://www/apelearn.com/study_v2/chapter24.html#id1其中在centos7上的新samba配置稍微有點差異,本題要求的任何人都可以訪問,不需要修改security這一專案,保持預設即可。
vi samba.sh ###進入vi編輯器編輯samba.sh指令碼 *
#!/bin/bash
#一鍵安裝配置samba服務
if [ 「$#」 -ne 1 ]
then
echo 「執行指令碼的格式為:$0 /dir/」
exit 1
else
if ! echo $1 | grep -q 『^/.*』
then
echo 「請提供乙個絕對路徑」
exit 1
fifi
if ! rpm -q samba > /dev/null
then
echo 「將要安裝samba」
sleep 1
yum install -y samba
if [ $? -ne 0 ]
then
echo 「samba安裝失敗」
exit 1
fifi
dirconf="/etc/samba/smb.conf"
cat >> $dirconf << eof
[share]
comment = share all
path = $1
browseable = yes
public = yes
writable = no
eofif [ ! -d $1 ]
then
mkdir -p $1
fichmod 777 $1
echo 「test」 > $1/test.txt
systemctl start smb
if [ $? -ne 0 ]
then
echo 「samba服務啟動失敗,請檢查配置檔案是否正確」
else
echo 「samba配置完畢,請驗證」
fi新增執行許可權:
#chmod +x samba.sh
#./samba.sh
執行指令碼的格式為:./samba.sh /dir/
#./samba.sh /dir/
將要安裝samba
【shell解析】
1.if [ $ # -ne 1 ];then
這段命令是用於判斷引數的個數是否為1,不是則進行then的邏輯處理,其中$#表示引數個數,-ne是 不等於判斷引數個數。
if [ $# -ne 1 ];then
echo 「引數個數不為1」
exit
else
echo 「引數個數為1」
fi./samba.sh /opt ###表示1個引數
./samba.sh ####表示沒引數
./samba.sh /opt /mnt ###表示多個引數
2.判斷使用者輸入的引數是不是以『/』開頭,因為絕對路徑是以『/』開頭,如果不是絕對路徑,後面針對該路徑不好操作。
3.判斷是否安裝過samba包,rpm -q samba ,命令執行後,如果是沒安裝,則會提示未安裝,返回值為非0值,用這個作為判斷條件就可以了。
4,如果沒安裝,則用yum安裝samba,判斷返回值是否為0,如果不能正常安裝samba包應該退出指令碼。
5.用cat >> $dirconf << eof 將配置追加到配置檔案裡面。
6.在centos 7上啟動服務命令為systemctl start smb ,在centos 6 上啟動是/etc/init,d/smb start
shell指令碼一鍵部署LNMP
author create date 2020 07 15 01 52 version mail description bin bash mysql的原始碼安裝 read p 即將進行mysql原始碼安裝,請問是否進行 y n speed case speed in y mysqld yes my...
一鍵部署Shell指令碼解析
1 定位指令碼所在的絕對路徑 bin bash shell dir cd dirname 0 pwd 其中,dirname 0,獲取當前指令碼所在絕對目錄cd dirname 0 進入這個目錄 切換當前工作目錄 pwd,顯示切換後指令碼所在的工作目錄2 讀取引數檔案並執行命令 source是bash...
shell指令碼一鍵部署LAMP架構
一 部署lamp基本架構 1.l linux a apache m mysql p php 2.穩定版本 mysql5.1,php5.3,apache2.2 3.安裝順序,apache mysql php 4.將所需的壓縮包 放指定目錄 本人的壓縮包放在虛擬機器 mnt目錄中 1 編譯原理 主要為了...