Bash-Skript kann in Cronjob auf dem Mac nicht ausgeführt werden

Bash-Skript kann in Cronjob auf dem Mac nicht ausgeführt werden

Das folgende Skript kann von einem normalen Benutzer ausgeführt werden, aber ich kann das Skript nicht über einen Cronjob auf MacOS (Bigsur) ausführen: Der folgende Fehler tritt auf, wenn das Skript über die Jobsicherheit ausgeführt wird: SecKeychainSearchCopyNext: Das angegebene Element konnte im Schlüsselbund nicht gefunden werden.

#!/bin/sh

keychainItem="connectvpn"
# this name has to match "Account" for the entry you make in keychain
VPNName="DIS CVPN"   # match the name of the VPN service to run
function isnt_connected () {
 scutil --nc status "$VPNName" | sed -n 1p | grep -qv Connected
}

get_pw () {
   security 2>&1 >/dev/null find-generic-password -ga $keychainItem \
   |ruby -e 'print $1 if STDIN.gets =~ /^password: "(.*)"$/'
}



echo "fetching VPN credentials from keychain account \"$keychainItem\""
echo "Using VPN service: $VPNName"

if isnt_connected $VPNName; then
 echo "Connecting to VPN..."
 scutil --nc start "$VPNName"
 sleep 1
 osascript -e "tell application \"System Events\" to keystroke tab"
 osascript -e "tell application \"System Events\" to keystroke \"$(get_pw)\""
 osascript -e "tell application \"System Events\" to keystroke return"
else
 echo "Already Connected to VPN..."
fi

Hier ist meine Crontab-Zeile:

*/1 * * * * /Users/demo/vpn/connect.sh >> /Users/demo/vpn/vpnlog.log 2>&1

verwandte Informationen