用 Siri 来控制虚拟机开启和关闭

我有下载专用的虚拟机和游戏专用的虚拟机,每次打开使用,都要通过 SSH 进去执行命令,或者用 cockpit 网页进行开关, 最近发现 iOS 快捷指令可以执行 SSH 命令,配置一个快捷指令,就可以通过 Siri 进行控制了。

控制脚本

#!/bin/bash

# 检查是否提供了参数
if [ $# -ne 2 ]; then
    echo "用法: $0 <start/shutdown> <虚拟机名称>"
    exit 1
fi

OP="$1"
VM_NAME="$2"

# 检查虚拟机是否存在
if ! sudo virsh dominfo "$VM_NAME" &>/dev/null; then
    echo "错误: 虚拟机 '$VM_NAME' 不存在"
    exit 2
fi

case "$OP" in
    "shutdown")
        echo "正在关闭虚拟机 '$VM_NAME'..."
        sudo virsh shutdown "$VM_NAME"
        ;;
    "start")
        echo "正在启动虚拟机 '$VM_NAME'..."
        sudo virsh start "$VM_NAME"
        ;;
    *)
        echo "虚拟机 '$VM_NAME' 处于未知状态: $VM_STATE"
        echo "请手动检查状态"
        exit 3
        ;;
esac

将文件内容保存到 /usr/local/bin/vmctl.sh,并设置执行权限

配置 sudo 免密执行该脚本

新增文件 /etc/sudoers.d/vmctl,内容如下:

# 允许用户无需密码执行vmctl
jiajun ALL=(ALL) NOPASSWD: /usr/local/bin/vmctl.sh *

配置快捷指令

在 Siri 设置中,点击左上角的添加按钮,搜索SSH,然后配置好用户名、IP、证书、命令,然后就可以通过Siri来控制虚拟机开启关闭, 非常方便。