シェルスクリプトでこれをどのように自動化できますか?

シェルスクリプトでこれをどのように自動化できますか?

アプリを使用しています。神経銃の接続私のホームサーバー(ヘッドレスOSXコンピュータ)では、sshを介して(iMacで)ログインする必要があり、時には次のように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'

おすすめ記事