编写一个脚本判断防火墙是否启动,如果启动则关闭,如果未启动则输出“未启动” 追加一条命令 永久关闭
时间: 2023-09-18 07:05:32 浏览: 178
### 回答1:
可以使用以下命令来实现:1. 先检查防火墙状态:`sudo ufw status`
2. 如果已经启动,则关闭防火墙:`sudo ufw disable`
3. 如果未启动,输出“未启动”:`echo "未启动"`
4. 永久关闭防火墙:`sudo ufw --force disable`
### 回答2:
编写一个脚本判断防火墙是否启动,如果启动则关闭,如果未启动则输出“未启动”并追加一条命令永久关闭。
```
#!/bin/bash
# 判断防火墙是否启动
if systemctl is-active --quiet firewalld; then
# 如果启动,则关闭防火墙
systemctl stop firewalld
echo "防火墙已关闭"
# 追加一条命令永久关闭防火墙
systemctl disable firewalld
else
# 如果未启动,则输出"未启动"
echo "防火墙未启动"
fi
```
这个脚本使用了系统命令`systemctl`来判断防火墙是否启动,并通过`is-active`命令来检查防火墙的状态。如果防火墙启动,则使用`stop`命令关闭防火墙,并输出"防火墙已关闭"的信息。然后使用`disable`命令来永久关闭防火墙。如果防火墙未启动,则直接输出"防火墙未启动"的信息。
### 回答3:
编写一个脚本可以用来判断防火墙是否启动并进行相应的操作。以下是一个简单的脚本示例:
```shell
#!/bin/bash
firewall_status=$(systemctl is-active firewalld)
if [ "$firewall_status" = "active" ]; then
echo "防火墙已启动,即将关闭..."
systemctl stop firewalld
echo "防火墙已关闭。"
else
echo "防火墙未启动。"
fi
# 永久关闭防火墙的命令(仅适用于CentOS 7及以上版本)
systemctl disable firewalld
```
这个脚本首先使用 `systemctl is-active firewalld` 命令来检查防火墙的状态,将结果保存在变量 `firewall_status` 中。如果防火墙状态为 "active",则输出提示信息并关闭防火墙;如果防火墙状态不是 "active",则输出 "防火墙未启动"。最后使用 `systemctl disable firewalld` 命令来永久关闭防火墙。
请注意,为了运行这个脚本,你需要有足够的权限。仅在确保了解脚本的操作并在适当的环境中运行时使用。
阅读全文