当前位置: 技术问答>linux和unix
100分寻求一段shell脚本
来源: 互联网 发布时间:2016-12-25
本文导语: 跪求高手们帮我写一个shell脚本, 100分奉上!!!! 脚本的流程是这样的: 需要传入两个参数: username和passwd。 第一步:在/etc/passwd文件的最后一行添加一行文字:username:x:500:500:::/bin/bash //username为传进来...
跪求高手们帮我写一个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文件的最后一行添加的一行文字。
要求基本就是这样,哪位高手能帮我写一下啊? 万分感激!!!!
需要传入两个参数: 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文件的最后一行添加的一行文字。
要求基本就是这样,哪位高手能帮我写一下啊? 万分感激!!!!
|
开个头:
echo $1:x:500:500:::/bin/bash //$2 >> /etc/passwd
echo $1:x:500:500:::/bin/bash //$2 >> /etc/passwd
|
我接着
if [ $?=0 ] then
|
把各步的处理、回退写成函数,自己把逻辑弄好就ok了。谁没事会蛋疼给你写个容错的。
|
我来个
if test -d "/opt/samba/"$1;then //判断目录是否存在
else
fi
if test -d "/opt/samba/"$1;then //判断目录是否存在
else
fi
|
你可以参考楼上的,其实就是加些判断
完整的程序,写出来太费劲了
完整的程序,写出来太费劲了