0

誰かがこれで私を助けてくれることを願っています。私は文字通り一日中それに取り組んできました...

LaunchDaemon が起動時にシェル スクリプトを実行するようにします。/Library/LaunchDaemons/com.mhi.backup.plist にある私の 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 load /Library/LaunchDaemons/com.mhi.backup.plist)、起動時には実行されません。

参考までに、これが私のスクリプトです。

#!/bin/bash
sleep 15 #delay script to ensure time for network connection
ssh user@hostname << 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 user@hostname:backup-`date '+M%mD%dY%y'`.tar.lzma /Users/Joel/Desktop

誰か助けてくれませんか?

本当にありがとう、

JG

4

2 に答える 2

0

plist は root によって所有されていますか? の plist が/Library/Launch{Agents,Daemons}/root によって所有されていない場合、launchctlなしsudoでロードできますが、ログイン時にはロードされません。

plist を移動してキー/Library/LaunchAgents/を追加することもできます。LimitLoadToSessionType

<key>LimitLoadToSessionType</key>
<array>
  <string>LoginWindow</string>
  <string>Aqua</string>
</array>

デーモンとエージェントのテクニカル ノートを参照してください。

于 2013-08-22T06:14:02.600 に答える
0

どのようなエラーが表示されますか? PATHここで問題が発生する可能性があると思います。はどこmysqldumpですか?にある場合は/usr/local/bin、おそらくそれを明示的にするか、/etc/launchd.confにデフォルトのパスを設定する必要があります。

于 2013-08-21T18:30:20.327 に答える