想学shell就来看看,shell一键安装samba

【shell要求】

写一个shell脚本,能够实现一键安装并配置samba服务,执行该脚本是需要带一个路劲 /opt/samba.sh , 如/opt/samba目录若不存在,则自动创建。
要求,任何人都可以访问,并且不需要密码,只能读

【shell分析】

1.需要判断用户输入的目录是不是绝对路径,即是否以“/”开头
2.脚本需要判断samba服务是否已经安装,若已经安装就需要执行yum -y install samba 了
3.配置文件可以使用sed -i 也可以使用cat >> $dirconf << EOF

[root@localhost opt]# vi ./smb2.sh

#!/bin/bash
yum -y install smb > /dev/null && echo “正在安装”|| echo “已经安装无需重新安装”
// 安装一个smb 服务 并且把交互信息输出到黑洞 ,如果能正常执行输出 正在安装或者安装成功无需重新安装

echo $2 |grep "^/.*"   //输出位置2的参数过滤出以/号键开头的所有信息
if [ $? = 0 ]           //用$?号返回值0和非0来判断是否正确
then
echo  " 输入格式正确"            
else
echo "文件路径错误,要求绝对路径"
exit               //如果格式错误,直接退出不在往下执行
fi

if [ -d $2 ];then         //判断/opt/samba是否是目录,因为在系统的本身是没有这个目录的
echo "目录已经存在"
else                      //否则
mkdir /opt/samba            ///创建一个samba的目录
fi

sed -i '/\[global\]/a\\tmap to guest '=' bad user' /etc/samba/smb.conf    // sed -i 是直接修改目标文本文件 ,“/  /”表示包含,“\”表示转义字符,“=”号在有些场合有特殊的行业用’ ’用上引号括起来就是去掉特殊含义,只是等于字符本身的意思 (可以看下图一,是执行完后的效果)
echo -e "[$1]\n\tcomment = Samba\n\tpath = $2\n\tpublic = yes\n\twritable = yes" >> /etc/samba/smb.conf        // echo  -e 是输出转义字符的意思,$1指的是组的名字,\n表示换行,\t是表示横向制表符(top键)这些特殊行业的符号都是必须要用echo -e输出
           
systemctl start smb && echo "共享开启成功" || echo>“共享开启失败”
chmod =rx $2      // 给其他人访问肯定是要给其权限的,因为点开目录需要有执行的权限,所以必须要有读(r)执行(x)的权限才行

[root@localhost opt]# chmod +x smb2.sh //给文本一个执行的权限
[root@localhost opt]# ./smb2.sh jkg /opt/samba //开始执行该文本 (请看图三返回信息)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
那我们操作好之后看一下效果,点开真机左下角搜索,输入虚拟机的ip
在这里插入图片描述
回车
在这里插入图片描述
红色箭头处执行文本时创建的一个目录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值