如何在 shell 脚本中自动执行此操作?

如何在 shell 脚本中自动执行此操作?

我正在使用该应用程序丛连接在我的家庭服务器(无头 OSX 机器)上,我必须(从 iMac)通过 ssh 登录并有时使用以下命令手动终止 Python 进程:

ssh 192.168.0.7

ENTER PASSWORD

sudo launchctl unload /Library/LaunchDaemons/com.plex.plexconnect.bash.plist

ENTER PASSWORD AGAIN

sudo lsof -i ':80'

sudo kill -9 [PID OF PYTHON PROCESS]

sudo launchctl load /Library/LaunchDaemons/com.plex.plexconnect.bash.plist

我对此没有任何问题,但我的妻子不太熟悉命令行。有什么方法可以在我的 iMac 上创建一些东西,她可以双击来完成整个事情吗?

答案1

因此,在 sudoers 文件中设置 SSH 密钥和 NOPASSWD 条目后,您可以执行类似的操作

#!/bin/bash

if [[ ${UID} -ne 0 ]] ; then
    echo "Must run script as root" >&2
    exit 1
fi

launchctl unload /Library/LaunchDaemons/com.plex.plexconnect.bash.plist

#check what is running on port 80 and if the output matches 'python' then print the second column and pass it to kill
lsof -i ':80' | awk '/python/{print $2;}' | xargs kill

launchctl load /Library/LaunchDaemons/com.plex.plexconnect.bash.plist

我还没有对此进行测试,但它应该可以让您了解如何进行。

你可以在另一台计算机上有一些东西:

#!/bin/bash
server_ip=1.2.3.4
ssh_cmd="ssh -oBatchMode=yes ${server_ip}"
${ssh_cmd} 'sudo /path/to/above/script.sh'

相关内容