Я надеюсь, что кто-то может мне помочь. Я работаю над этим буквально весь день ...Mac OSX LaunchDaemon при запуске, сценарий оболочки с SSH
Я хочу, чтобы LaunchDaemon выполнял сценарий оболочки при запуске. Вот мой 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>
Это правильно выполняется, когда я загрузить его из /Library/LaunchDaemons/com.mhi терминала (launchctl нагрузки. 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; экспорт; } | sort> startupEnv' для среды, затем 'diff * Env'? Удачи. – shellter
похож на подобный plist на мой, но я положил его в LaunchAgents не LaunchDaemons .. не уверен, в чем разница. –
@shellter Единственная разница в PIPESTATUS. В startupEnv, PIPESTATUS = ([0] = "0" [1] = "0"); в cmdLineEnv, PIPESTATUS = ([0] = "0"). Я понятия не имею, что это значит ... – user1403777