bash-检查设备是否能够联网
以下是一个Bash脚本示例,它定义了一个函数来检查小米WiFi插座是否在线。如果插座不在线,脚本将等待4分钟后再次检查。如果插座仍然不在线,脚本将记录当前时间到一个日志文件,并关闭系统。请确保在运行此脚本之前,你有足够的权限来执行关闭系统的操作。
#!/bin/bash
# 定义检查WiFi插座在线状态的函数
check_xiaomi_wifi_socket() {
# 设备的IP地址,替换为你的小米WiFi插座的实际IP地址
local DEVICE_IP="192.168.1.2"
# 尝试ping设备,如果成功则返回0,失败则返回非0值
ping -c 1 $DEVICE_IP &> /dev/null
# 检查ping命令的退出状态码
if [ $? -eq 0 ]; then
echo "小米WiFi插座在线"
else
echo "小米WiFi插座不在线,等待4分钟后再次检查..."
sleep 240 # 等待4分钟(240秒)
# 再次检查
ping -c 1 $DEVICE_IP &> /dev/null
if [ $? -eq 0 ]; then
echo "小米WiFi插座现在在线"
else
# 如果插座仍然不在线,记录关闭时间到日志文件
local LOG_FILE="/home/username/xiaomi_wifi_socket.log" # 替换为实际的日志文件路径
local CURR_TIME=$(date "+%Y-%m-%d %H:%M:%S") # 获取当前时间
echo "$CURR_TIME - 小米WiFi插座不在线,系统即将关闭" >> $LOG_FILE
echo "小米WiFi插座不在线,系统将在5秒后关闭。"
sleep 5 # 等待5秒,给用户时间保存工作
shutdown -h now # 关闭系统
fi
fi
}
# 调用函数
check_xiaomi_wifi_socket
在运行这个脚本之前,请确保替换 DEVICE_IP 为你的小米WiFi插座的实际IP地址,并且 LOG_FILE 路径指向你希望日志文件存储的位置。此外,确保你有权限写入日志文件和执行 shutdown 命令。
请注意,这个脚本在检测到WiFi插座不在线时会立即关闭系统,这可能会导致数据丢失。在实际部署之前,请确保这是一个可接受的行为,并且你已经备份了所有重要数据。












网友评论