我正在尝试创建一个新的启动代理文件,该文件将执行 shell 脚本以在 ftp 文件夹上执行备份。.plist 文件的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" \
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.team.backup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/jackm/Documents/Uni/backup.sh</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Hour</key>
<integer>15</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
</array>
<key>StandardErrorPath</key>
<string>/Users/jackm/Documents/Uni/backup_err.log</string>
</dict>
</plist>
backup.sh 文件如下:
#!/bin/bash
scp -r username@thehost.co.uk:/the/ftp/folder/ "/Users/jackm/morefolders/Backups/D2 Backup/$(date '+%d-%b-%H:%M')"
当我通过终端执行时,backup.sh 文件运行得非常好,要求我输入密码然后下载文件夹。但是,在使用 launchd 时,我什至没有提示输入密码,我只是在错误日志文件中得到以下信息:
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
launchctl list 将 plist 的状态设为 1。 ~/etc/ssh_config PasswordConfirmation 为 1 .plist 文件位于 launchagents 文件夹中
干杯