2011-08-25 5 views
0

backupscript에 문제가있어 OS X launchd에서 작동하지 않는 것 같습니다. 보시다시피 그것은 특별한 것이없고 launchd를 사용하지 않을 때 작동,launchd 원격 rdiff - 백업

# 
# backupscript 
# 
NOW=$(date +"%y%m%d-%H:%M:%S") 
LOGFILE=/usr/local/server/log/$NOW 
SOURCE=/ 
[email protected]::/media/backup 
INCLUDE_LIST=/usr/local/server/include-list 
KEEP_TIME=40B 

RDIFF_BACKUP=/usr/local/bin/rdiff-backup 

$RDIFF_BACKUP --print-statistics -v5 --include-globbing-filelist $INCLUDE_LIST $SOURCE $DESTINATION > $LOGFILE 
$RDIFF_BACKUP --remove-older-than $KEEP_TIME $DESTINATION 

:

내가 실행하고자하는 내 스크립트입니다. 내가 launchd 그것을 실행할 때

그러나, 그것은하지 ...는 XML 파일은 다음과 같다 않습니다 스크립트가 실행되지만

<?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>backup.plist</string> 
    <key>ProgramArguments</key> 
    <array> 
     <string>/bin/sh</string> 
     <string>/usr/local/server/backup.sh</string> 
    </array> 
    <key>LowPriorityIO</key> 
    <true/> 
    <key>AbandonProcessGroup</key> 
    <true/> 
    <key>Nice</key> 
    <integer>1</integer> 
    <key>StartCalendarInterval</key> 
    <array> 
     <dict> 
      <key>Hour</key> 
      <integer>10</integer> 
      <key>Minute</key> 
      <integer>0</integer> 
     </dict> 
     <dict> 
      <key>Hour</key> 
      <integer>14</integer> 
      <key>Minute</key> 
      <integer>0</integer> 
     </dict> 
     <dict> 
      <key>Hour</key> 
      <integer>18</integer> 
      <key>Minute</key> 
      <integer>0</integer> 
     </dict> 
     <dict> 
      <key>Hour</key> 
      <integer>22</integer> 
      <key>Minute</key> 
      <integer>54</integer> 
     </dict> 
    </array> 
</dict> 
</plist> 

원격 호스트에 만든 백업이 없습니다. backup.plist는/Library/LaunchDeamons에 있으므로 루트로 실행해야합니다.

나는 무엇이 문제인지 알지 못하지만 권한도 괜찮습니다. 이것은 며칠 동안 저를 괴롭 히고 있습니다 ...

어떤 제안이 있습니까?

답변

1

나는 분명히 잘못된 점을 발견하지 못했습니다. 그래서 내가하는 첫 번째 일은 로깅을보다 완전하게 만들고 문제가 있음을 확인하는 것입니다. stderr와 stdout을 모두 포함하고 전체 스크립트를 보려면, 주 rdiff-backup 명령 만이 아닙니다.

을하고 덮어을 유지하기 위해 나중에 > $LOGFILE 부품을 제거 : 스크립트의 시작 부분에이 같은 작업을 수행합니다. 더 자세한 정보가 필요하면 set -x을 먼저 추가하십시오. 그러면 각 명령이 실행되기 전에 인쇄됩니다.