+ -
当前位置:首页 → 问答吧 → 100分寻求一段shell脚本

100分寻求一段shell脚本

时间:2011-08-25

来源:互联网

跪求高手们帮我写一个shell脚本, 100分奉上!!!! 脚本的流程是这样的:

需要传入两个参数: username和passwd。
 
第一步:在/etc/passwd文件的最后一行添加一行文字:username:x:500:500:::/bin/bash //username为传进来的那个参数。

第二步:以参数username为用户名,参数passwd为密码添加一个samba用户。
注:添加samba用户的命令为:smbpasswd -a 用户名  
然后会提示输入密码, 按照它的提示输入参数passwd的值并确认输入即可。
删除samba用户的命令为 :smbpasswd -x 用户名

第三步:在/opt/samba目录下面创建一个以该用户名命名的文件夹。

第四步:然后将下面一段文字写入/etc/samba/smb.conf文件的末尾:
[username]
  path = /opt/samba/username  
  writeable = yes
  browseable = yes
  public = no
  valid users = username
注: 红色的文字username为传进来的参数

第五步: 执行/etc/init.d/smb restart命令来重启samba服务。


以上是这个脚本需要执行的工作,要求具有容错功能,不要堆叠命令, 如果用堆叠命令的方式就不用麻烦各位了,我自己就会。关键是不会写容错。另外还有一个非常重要的要求是当后续步骤出错时,前面执行的操作需要回滚。譬如:在第3步创建文件夹失败的话,需要删除第2步添加的samba用户和第一步中在/etc/passwd文件的最后一行添加的一行文字。

要求基本就是这样,哪位高手能帮我写一下啊? 万分感激!!!!

作者: linux_6   发布时间: 2011-08-25

应该不是很麻烦吧,我对shell脚本编程不太熟,只会堆叠shell命令,不会做容错判断,请群里的高手们帮一下忙。

作者: linux_6   发布时间: 2011-08-25

开个头:
echo $1:x:500:500:::/bin/bash //$2 >> /etc/passwd

作者: zmlovelx   发布时间: 2011-08-25

引用 2 楼 zmlovelx 的回复:

开个头:
echo $1:x:500:500:::/bin/bash //$2 >> /etc/passwd


呵呵, 你这个我会的, 但是没有判断是否成功啊

作者: linux_6   发布时间: 2011-08-25

作者: linux_6   发布时间: 2011-08-25

引用 3 楼 linux_6 的回复:
引用 2 楼 zmlovelx 的回复:

开个头:
echo $1:x:500:500:::/bin/bash //$2 >> /etc/passwd


呵呵, 你这个我会的, 但是没有判断是否成功啊

我接着

if [ $?=0 ] then 

作者: rucypli   发布时间: 2011-08-25

我帮顶了....

作者: jianzhibeihang   发布时间: 2011-08-25

把各步的处理、回退写成函数,自己把逻辑弄好就ok了。谁没事会蛋疼给你写个容错的。

作者: yyysss520   发布时间: 2011-08-25

引用 7 楼 yyysss520 的回复:

把各步的处理、回退写成函数,自己把逻辑弄好就ok了。谁没事会蛋疼给你写个容错的。


汗!!! 我说的容错也就是判断文件是否存在, 命令是否成功之类的, 要是我会的话还蛋疼的在这里发帖???

作者: linux_6   发布时间: 2011-08-25