我目前正在清理其他人在 CentOS 6 服务器上留下的烂摊子。有一个应用程序需要每 6 小时备份到一个 github 帐户。有一个脚本负责准备数据,它负责 git add 和 git commit。
git push 由“expect”脚本处理。这样做是为了在 ssh 请求时可以将密码短语传递给 git push。用户不想使用空密码。
当 root 用户从 bash shell 中的命令行运行时,该脚本运行良好。我可以看到传输到 github 的文件。
当脚本在由 root 创建的 crontab 下运行时,脚本似乎正在运行,但 git push 不会发生。如果我手动运行 git push,在脚本失败后,我注意到应该发生的推送与我从命令行调用的手动推送一起发生。看来应该在脚本中发生的推送已经被缓存了,没有推送到github。
谁能建议我在这里缺少什么?是否有可能让 git push 在这样的脚本中工作?
问候
理查德