2011-08-25 134 views
0

我遇到了問題,我的backupscript似乎不適用於OS X 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時的作品。

然而,當我與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中,所以它應該以root身份運行。

我不知道可能是什麼問題,權限也應該沒問題。這一直困擾着我幾天...

有什麼建議嗎?

回答

1

我沒有發現任何明顯的錯誤,所以我要做的第一件事就是讓日誌更加完整,看看它是否表明問題 - 包括stderr和stdout,以及整個腳本,不只是主要的rdiff-backup命令。做這樣的事情在腳本的開頭:

再後來取出一部分> $LOGFILE以防止它覆蓋。如果您需要更詳細的信息,請儘早添加set -x,以便在執行之前打印每個命令。