我是一名新手服务器管理员,最近从 Slicehost.com 购买了一个帐户,并使用它来托管一些个人网站,这样我就可以学习更多知识(我主要是一名 Web 开发人员)。
几年前,我记得在 Windows 上使用过批处理脚本,它可以让我自动执行某些基本操作。Unix 上是否存在类似的东西?
我想在 Apache2 中自动设置新域,因此基本上创建目录、设置权限、在 sites-available 中创建配置文件,然后运行 a2ensite 命令并最后重新启动 Apache。
我可以通过从命令行运行的基本脚本来实现这一点吗?如果您能提供任何基本提示和指导,我将不胜感激。
谢谢!
答案1
我建议你阅读一下 bash 脚本。
一些好的链接:
- http://www.linuxconfig.org/Bash_scripting_Tutorial
- http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
- http://tldp.org/LDP/abs/html/
Bash 比批处理文件强大得多:)
答案2
这绝对是可行的。任何可以通过命令行上的一系列命令完成的事情都可以放入 bash 脚本并从那里运行。
脚本以 #!/bin/bash 或 #!/bin/sh 开头(表示 sh 而不是 bash)之后,# 开始注释行 $VARIABLE_NAME 可用于引用由 VARIABLE_NAME=foo 设置的变量
命令行参数可以从 $1 开始获取($0 是被调用程序的名称)。
因此,如果你想调用 script.sh new_site 脚本
你可以让 script.sh 看起来像这样
/bin/sh #!/bin/sh 复制代码
mkdir /var/www/htdocs/new_site chmod 755 /var/www/htdocs/new_site... apachectl 重启
然后您只需以足够的权限运行脚本即可实际执行所有运行的命令。
使用 sh -x 进行调试(它将逐步执行脚本并输出大量输出,以便您了解实际发生的情况)。
答案3
您也可以研究一下 puppet。对于单个服务器来说,它有点大材小用,但绝对是为处理这种事情而设计的。