
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