首頁>Apple>source

我建立了 plist 用於"自定義"備份代理(通過LaunchAgent). (zip)程式被呼叫,但是我不斷收到" zip錯誤:没事!" 在我的日志中。

我认為它与權限有關.我確實添加了 shzip 對我的 安全設定.但這没有帮助。

在旁註中,当我在shell(sh)指令碼中移動zip命令時,它可以工作。

我想知道為什麼使用 Full Disk Access 直接命令不是吗?

為终端執行命令也没有問题,就像這樣:

zip

LaunchAgent指令碼:

/usr/bin/zip /Users/username/Backup/test.zip /Users/username/Documents/*.pdf
<?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.myuser.DailyBackup</string> <key>Program</key> <string>/usr/bin/zip</string> <key>ProgramArguments</key> <array> <string>/Users/username/Backup/test.zip</string> <string>/Users/username/Documents/*.pdf</string> </array> <key>StandardOutPath</key> <string>/tmp/my.backup.log</string> <key>StandardErrorPath</key> <string>/tmp/my.backup.err</string> <key>Debug</key> <true/> <key>StartInterval</key> <integer>10</integer> </dict> </plist>
最新回復
  • 5月前
    1 #

    来自 man launchd.plist

    ProgramArguments <array of strings>
    This key maps to the second argument of execvp(3) and specifies the argument vector to be passed
    to the job when a process is spawned. This key is required in the absence of the Program key.
    IMPORTANT: Many people are confused by this key. Please read execvp(3) very carefully!
    

    所以您需要使用

       <key>Program</key>
        <string>/usr/bin/zip</string>
        <key>ProgramArguments</key>
        <array>
            <string>zip</string>
            <string>/Users/username/Backup/test.zip</string>
            <string>/Users/username/Documents/*.pdf</string> 
        </array>   
    

    由於 launchd,它仍然無法正常工作 不擴充套件萬用字元和 zip 也没有.使用 launchd更容易 啟動一个shell指令碼,然後完成所有工作。

  • macos:如何在應用或web應用中打開/上傳隱藏檔案?
  • 如何隱藏macOS上的持續Facetime音频通话?