我希望有人能幫助我解決這個問題。我一直在努力,整天...啓動時的Mac OSX LaunchDaemon,使用SSH的Shell腳本
我想LaunchDaemon在啓動時執行一個shell腳本。這裏是我的plist文件,位於/Library/LaunchDaemons/com.mhi.backup.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.mhi.backup</string>
<key>UserName</key>
<string>Joel</string>
<key>GroupName</key>
<string>Admin</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/mhi_websites_backup.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
它執行正確的,當我從終端(launchctl負載/Library/LaunchDaemons/com.mhi加載它。 backup.plist),但不是在啓動時。
這裏是我的腳本,以供參考:
#!/bin/bash
sleep 15 #delay script to ensure time for network connection
ssh [email protected] << HERE
mysqldump -u <user_name> -pPASSWORD --all-databases | lzma > alldatabases.sql.lzma
tar cfa backup-`date '+M%mD%dY%y'`.tar.lzma webapps alldatabases.sql.lzma
exit
HERE
scp [email protected]:backup-`date '+M%mD%dY%y'`.tar.lzma /Users/Joel/Desktop
可能有人請幫忙嗎?
非常感謝,
JG
Excecute'{set;出口 ; } | sort> cmdLineEnv'和'{set;出口 ; } |按照環境排序> startupEnv,然後是'diff * Env'?祝你好運。 – shellter
看起來像一個類似的plist來挖礦,但我把它放在LaunchAgents不LaunchDaemons ..不知道有什麼區別。 –
@shellter唯一的區別是PIPESTATUS。在startupEnv中,PIPESTATUS =([0] =「0」[1] =「0」);在cmdLineEnv中,PIPESTATUS =([0] =「0」)。我不知道這甚至意味着什麼...... – user1403777