쉘 스크립트에서 이를 어떻게 자동화할 수 있나요?

쉘 스크립트에서 이를 어떻게 자동화할 수 있나요?

앱을 사용하고 있어요신경총 연결내 홈 서버(헤드리스 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'

관련 정보