thedaythegirl 发表于 2007-8-24 11:50:06

写个简单linux脚本自动安装卸载mysql

在讲测试过程中适合做自动化操作的阶段时,我们说测试环境搭建也可以考虑自动化,给大家举个简单例子,linux环境下的mysql的自动安装卸载,vi myfile

#!/bin/sh

echo "begin to uninstall mysql"
rpm -e MySQL-server-community-5.0.37-0.rhel4.i386
rpm -e MySQL-client-community-5.0.37-0.rhel4.i386
rpm -e MySQL-devel-community-5.0.37-0.rhel4.i386
echo "uninstall successful"

echo "begin to install mysql"
rpm -ivh MySQL-server-community-5.0.37-0.rhel4.i386.rpm
rpm -ivh MySQL-client-community-5.0.37-0.rhel4.i386.rpm
rpm -ivh MySQL-devel-community-5.0.37-0.rhel4.i386.rpm
echo "install successful"


以上语句放在某个文件中,将该文件权限修改成可执行
执行./myfile
然后输入mysql进行验证

[ 本帖最后由 thedaythegirl 于 2007-8-24 11:59 编辑 ]

sanmujuno 发表于 2007-8-24 19:07:18

Good idea!sdlkfj3

linwenyan 发表于 2007-8-24 20:59:49

老师:
      #!/bin/sh只是起到注释作用吗?用shell语言编写的脚本都可以写上吗?
       sh和bsh文件一样吗?老师上课的时候后来写的是bsh。
       卸载时执行了rm -rf /var/lib/mysql后再安装,要重启才能使用mysql。如果卸载后重新安装的是同一个版本是不是就不用执行这条命令了。

[ 本帖最后由 linwenyan 于 2007-8-24 21:00 编辑 ]

yang119345 发表于 2007-8-26 05:26:22

原帖由 linwenyan 于 2007-8-24 20:59 发表 http://bbs.51testing.com/images/common/back.gif
老师:
      #!/bin/sh只是起到注释作用吗?用shell语言编写的脚本都可以写上吗?
       sh和bsh文件一样吗?老师上课的时候后来写的是bsh。
         卸载时执行了rm -rf /var/lib/mysql后再安装,要重启才能使用mysql。如果卸载后重新安装的是同一个版本是不是就不用执行这条命令了。



1 #!开头的东西不是注释,该行一般写在shell程序源代码的第一行,作用是制定该shell的解释器
2 sh和bsh是两种不同的shell,sh是Bourne shell,bsh是beanshell,不过linux下常用的还是sh和bash两种shell。
3 rm -rf /var/lib/mysql是强行删除/var/lib/mysql目录以及其子目录和子目录里面的所有文件,慎用 rm的rf参数哦:)。mysql安装好后一般直接打开mysql的运行脚本或者以服务方式开启mysql就可以了。


sdlkfj1 写的不对的地方还望老师纠正和补充:)

[ 本帖最后由 yang119345 于 2007-8-26 05:29 编辑 ]

linwenyan 发表于 2007-8-26 11:00:31

原帖由 yang119345 于 2007-8-26 05:26 发表 http://bbs.51testing.com/images/common/back.gif



1 #!开头的东西不是注释,该行一般写在shell程序源代码的第一行,作用是制定该shell的解释器
2 sh和bsh是两种不同的shell,sh是Bourne shell,bsh是beanshell,不过linux下常用的还是sh和bash两种shell。 ...

sdlkfj2 谢谢!可是我把#!/bin/sh 去掉以后脚本同样可以运行,结果也一样啊。

[ 本帖最后由 linwenyan 于 2007-8-26 11:34 编辑 ]

yang119345 发表于 2007-8-26 16:27:32

原帖由 linwenyan 于 2007-8-26 11:00 发表 http://bbs.51testing.com/images/common/back.gif


sdlkfj2 谢谢!可是我把#!/bin/sh 去掉以后脚本同样可以运行,结果也一样啊。


当前用户可能就是这个shell,还有可能这个shell脚本体现不出shell之间的差异,有些shell之间大部分是一样的。

linwenyan 发表于 2007-8-26 17:39:47

谢谢!sdlkfj2

thedaythegirl 发表于 2007-8-27 12:23:54

周末重装了机器,没有看到帖子,呵呵

linux文件中的#是表示注释的意思
但#! 用法不表示注释,用来通知系统使用什莫类型的shell解释器
我们使用的linux默认的shell是bash,可以用命令echo $SHELL查看
没有#!/bin/bash   系统也会按照这个默认得shell类型来解释执行这个文件,但建议养成写这句话的习惯,不同的shell类型规则有一点不一样,如果当前的默认shell类型修改成别的,而你的可执行文件必须通过bash来解释的话,你就不得不加上这句话。
sh 是bounre shell,在有些unix系统上,也会用bsh这个简写,我们以前常写这个,这也是为什莫我在黑板上写这个的原因,呵呵
bash 是bounre Again shell
在咱们的linux上,你就用#!/bin/sh好了
以上脚本执行后,mysql和你手工安装的效果是一样的。
有问题的话,把你的操作过程和脚本一起发给我。

[ 本帖最后由 thedaythegirl 于 2007-8-27 12:25 编辑 ]

linwenyan 发表于 2007-8-27 21:27:30

知道了,谢谢老师。sdlkfj2

red-hat 发表于 2007-8-28 11:20:45

原帖由 linwenyan 于 2007-8-24 20:59 发表 http://bbs.51testing.com/images/common/back.gif
老师:
      #!/bin/sh只是起到注释作用吗?用shell语言编写的脚本都可以写上吗?
       sh和bsh文件一样吗?老师上课的时候后来写的是bsh。
       卸载时执行了rm -rf /var/lib/mysql后再安装,要重启才 ...

#!/bin/sh的作用或含义是指该shell脚本是由/bin/sh这个shell去解释执行的,如果你想换其他的shell去解释执行,那就相应的写其他的shell的名字即可

red-hat 发表于 2007-8-28 11:21:30

原帖由 yang119345 于 2007-8-26 05:26 发表 http://bbs.51testing.com/images/common/back.gif



1 #!开头的东西不是注释,该行一般写在shell程序源代码的第一行,作用是制定该shell的解释器
2 sh和bsh是两种不同的shell,sh是Bourne shell,bsh是beanshell,不过linux下常用的还是sh和bash两种shell。 ...


楼上的,是"指定",不是"制定"

red-hat 发表于 2007-8-28 11:24:08

在root用户权限下,敲如下的命令#echo $SHELL,列出当前系统可用的shell

satanbond 发表于 2007-8-29 13:07:45

终于找到了,不容易啊,

yang119345 发表于 2007-8-29 23:57:48

原帖由 red-hat 于 2007-8-28 11:21 发表 http://bbs.51testing.com/images/common/back.gif



楼上的,是"指定",不是"制定"





这个纯粹打字失误,呵呵。谢谢指出
页: [1]
查看完整版本: 写个简单linux脚本自动安装卸载mysql