Я написал простой script, который каждую ночь отправляет svn активности журналам нашим разработчикам. До сих пор я запускал его на том же компьютере, что и репозиторий svn, поэтому мне не нужно было беспокоиться об аутентификации, я мог бы просто использовать стиль svn file:///address.
Теперь я запускаю script на домашнем компьютере, обращаясь к удаленному репозиторию, поэтому мне пришлось перейти на svn + ssh://paths. Когда ssh-key хорошо настроен, мне никогда не нужно вводить пароли для доступа к хранилищу svn при нормальных обстоятельствах.
Однако crontab не имел доступа к моим ssh-keys/ssh-agent. Я прочитал об этой проблеме несколько мест в Интернете, и она также упоминается здесь без разрешения:
Почему ssh не работает из crontab, но выполняется при выполнении из командной строки?
Моим решением было добавить это в начало script:
### TOTAL HACK TO MAKE SSH-KEYS WORK ###
eval `ssh-agent -s`
Это похоже на работу с MacOSX 10.6.
Мой вопрос: насколько это ужасно, и есть ли лучший способ?