Ubuntu系统写一个能ping通百度就重启的脚本
时间: 2024-12-11 18:29:20 浏览: 9
在Ubuntu系统中,你可以创建一个shell脚本来检查网络连接是否可以ping通百度服务器,如果成功,则触发系统重启。这里是一个简单的bash脚本示例:
```bash
#!/bin/bash
# 检查是否可以ping通百度
PING_URL="http://www.baidu.com"
if ping -c 1 $PING_URL &>/dev/null; then
echo "Ping to Baidu successful, system will restart now..."
# 使用sudo确保有足够的权限执行重启命令
sudo reboot
else
echo "Failed to ping Baidu, check your network connection."
fi
```
这个脚本首先设置了一个URL(`$PING_URL`),然后使用`ping`命令尝试连接百度一次。如果连接成功(返回码为0),脚本会打印一条消息并重启系统;如果失败,它将显示错误信息。
保存此脚本到一个文件(例如`check_baidu.sh`),然后赋予执行权限:
```bash
chmod +x check_baidu.sh
```
最后,你可以通过定时任务或者计划任务(如cron)让它定期运行,比如每分钟检查一次。
相关问题
Ubuntu系统写一个能ping通百度就重启的脚本,美5秒循环一次
当然可以。在Ubuntu系统中,你可以创建一个bash shell脚本来定期ping百度并检查响应,如果ping成功则重启机器。下面是一个简单的脚本示例,每五秒钟执行一次检查:
```bash
#!/bin/bash
# 定义ping百度的命令
PING_CMD="ping -c 1 www.baidu.com"
# 循环函数,每隔5秒运行一次
function check_ping {
result=$(eval $PING_CMD)
if [[ $result =~ "0 packets transmitted" ]]; then
# 如果ping失败(返回码非零),执行重启操作
echo "Ping to Baidu failed, restarting the system..."
sudo reboot
else
echo "Ping successful."
fi
}
# 每5秒执行check_ping
while true; do
check_ping
sleep 5
done
# 将脚本设为开机启动
sudo systemctl enable -f your_script_name.sh
```
将上述代码保存到一个文件(例如`your_script_name.sh`),然后赋予执行权限:
```sh
chmod +x your_script_name.sh
```
最后,在终端中运行`./your_script_name.sh`启动脚本,它会开始按5秒间隔检测网络连接,并在ping不通百度时自动重启。
如何编写一个Ubuntu16.04 shell脚本,使得系统连续自动重启100次,在每次重启后执行ip a命令并将输出保存到指定文件中?
你可以创建一个名为`reboot_and_ipa.sh`的bash shell脚本来实现这个功能。下面是一个示例脚本,它会循环重启系统100次,每次重启后运行`ip a`命令并把结果追加到`ip_addresses.txt`文件中:
```bash
#!/bin/bash
# 设置重试次数
MAX_RESTARTS=100
# 初始化计数器
count=0
# 循环直到达到最大重试次数
while [ $count -lt $MAX_RESTARTS ]; do
# 重启系统(这里只是一个示例,实际操作时可能需要考虑安全性和日志记录)
reboot
# 检查系统是否已经重启成功,如果未成功则退出循环
while ! ping -c 1 localhost; do
sleep 10
done
# 运行ip a命令并将输出追加到文件
ip_address=$(ip a)
echo "$ip_address" >> /path/to/ip_addresses.txt
# 增加计数器
count=$((count + 1))
done
echo "Restarted system $MAX_RESTARTS times and saved IP addresses to /path/to/ip_addresses.txt."
```
确保替换`/path/to/ip_addresses.txt`为你想要保存结果的实际路径。
阅读全文