对于使用自动化脚本来进行我们的运维工作,可以让我们有更多的时间完成一些复杂的运维部署工作。
#!/bin/bash
# 使用脚本首先要免密码登陆
# 定义三台 LNMP 服务器的 IP 地址
server1="server1-ip"
server2="server2-ip"
server3="server3-ip"
# 启动 Nginx 服务
start_nginx() {
ssh user@$server1 "sudo systemctl start nginx"
ssh user@$server2 "sudo systemctl start nginx"
ssh user@$server3 "sudo systemctl start nginx"
}
# 停止 Nginx 服务
stop_nginx() {
ssh user@$server1 "sudo systemctl stop nginx"
ssh user@$server2 "sudo systemctl stop nginx"
ssh user@$server3 "sudo systemctl stop nginx"
}
# 根据脚本参数执行相应的操作
case "$1" in
start)
start_nginx
;;
stop)
stop_nginx
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
# 这段脚本是一个简单的 Shell 脚本,用于接收一个参数并根据参数的值执行不同的操作。让我们逐步解释这段脚本的各个部分:
#
# 1. `case "$1" in`: 这里的 `$1` 表示接收到的脚本的第一个参数。`case` 是一个条件语句,根据 `$1` 的值执行不同的操作。
#
# 2. `start)`: 如果 `$1` 参数的值是 `start`,则执行 `start_nginx` 函数。
#
# 3. `stop)`: 如果 `$1` 参数的值是 `stop`,则执行 `stop_nginx` 函数。
#
# 4. `*)`: 如果 `$1` 参数的值既不是 `start` 也不是 `stop`,则执行下面的语句。
#
# 5. `echo "Usage: $0 {start|stop}"`: 输出提示信息,告诉用户如何正确使用脚本。`$0` 表示脚本本身的文件名。
#
# 6. `exit 1`: 退出脚本并返回状态码 1,表示脚本执行过程中出现了错误。
#
# 7. `exit 0`: 如果脚本正常执行完毕,返回状态码 0,表示脚本执行成功。
#
# 这段脚本的作用是根据用户传入的参数(`start` 或 `stop`)执行相应的操作(启动或停止 Nginx 服务)。如果用户传入了无效的参数或没有参数,则向用户展示正确的使用方法。这样设计使得脚本可以根据需求执行不同的任务,增强了脚本的灵活性和可重用性。如果您有任何进一步的问题或需要解释,请随时告诉我!🧐👨💻
#