【发布时间】:2016-11-16 17:06:13
【问题描述】:
我查看了这个并找到了很多答案,但我是一个 unix/linux 假人。无法听从人们的指示。不确定要编辑哪些文件等。
这里需要简单的分步说明
我有一个这样设置的 shell 文件:
#!/bin/bash
exec &>> /var/www/nginx/yokohama/laravel/storage/cron.log
today='date +%Y-%m-%d.%H:%M:%S';
cp /var/www/nginx/yok/yok_data.xml /var/www/nginx/yok/yok_XML_Files/backup-$(date +"%Y_%m_%d").xml
git add /var/www/nginx/yok/yok_XML_Files/backup-$(date +"%Y_%m_%d").xml
git commit -m "cool test"
git push origin staging
如果我以 root 身份手动运行它,它可以工作,我们都很好。但不能通过我的 cron..
这是我的 crontab
* * * * * /usr/bin/sh /var/www/nginx/yok/laravel/commit_data.sh
在我的 cron.log 中,我得到了
Permission denied (publickey).^M
我该如何解决这个问题?简单的说明。
【问题讨论】:
-
“如果我以 root 身份手动运行它,它可以工作”。如果您以自己而不是 root 身份手动运行它会怎样?
-
我唯一可以访问的帐户是 root.. 除非我决定在此登台服务器上创建一个新用户
-
为您的 root 用户或您的 crontab 用户帐户生成一对 ssh 密钥,并将公钥部署到远程 git 服务器。